Skip to content

rcicr

1.5.0Package record

Reverse-Correlation Image-Classification Toolbox

0packages depend
680downloads / year
96.5%test coverage
13/13flavors OK

Overview

About

Generate stimuli and analyze data of reverse correlation image classification experiments (psychophysical tasks aimed at visualizing cognitive mental representations of faces). For the method see Dotsch and Todorov (2012) doi:10.1177/1948550611430272; for a practical primer see Brinkman, Todorov and Dotsch (2017) doi:10.1080/10463283.2017.1381469.

Changes in 1.5.0

Reproducibility impact

  • **batchGenerateCI() and batchGenerateCI2IFC() now group a tibble correctly.** Called on a tibble with more than one group in by, rcicr 1.1.0 through 1.4.1 returned a single classification image instead of one per group. That image was built from alternating trials of different groups and named after the first group. A data.frame, or a tibble with one group, was never affected, and its results do not change. (#336) You were affected if the list these functions returned had one element although your data held several participants or conditions; data read with readr or processed with dplyr is a tibble. Recompute those CIs with this version, or with an older one after as.data.frame(). No stimuli need regenerating or responses recollecting. Of the affected versions, only 1.3.0 and 1.4.1 were released on CRAN; the others were GitHub releases. The 1.1.0 entry below saying these functions accept tibble columns held only for a single group.
  • **The default InfoVal reference now needs the stimulus seed saved in the file.** Without a response_seed, the reference replays that seed. A file without one (made with generateStimuli2IFC(seed = NULL), or with the seed field removed) now stops with an error before anything is simulated. The error gives the call that stores a reproducible reference, generateReferenceDistribution2IFC(rdata, response_seed = <n>), which later computeInfoVal2IFC() calls reuse, and, for a file that cannot be written, computeInfoVal2IFC(..., response_seed = <n>). Files with a seed are unaffected. Such a file used to reseed from the clock, so its reference could not be reproduced. generateReferenceDistribution2IFC() and computeInfoVal2IFC(force_gen_ref_dist = TRUE) returned a different one on every call. The first automatic computeInfoVal2IFC() stored one that later calls reused, so the InfoVal was stable on that copy of the file and different on any other. This happened on every version back to 1.0.1 for files made with seed = NULL, and on 1.4.0 and 1.4.1 for files without the field; earlier versions stopped on those. A reference already stored by 1.4.0 or later is still used, with a message that it cannot be regenerated from the file. An older stored reference, which rcicr rebuilds, now stops like any other. Replacing either with a seeded reference makes the InfoVal reproducible; it will differ from the one reported before. (#334)

Bug fixes

  • **Saving a reference distribution no longer risks the stimulus .Rdata file.** computeInfoVal2IFC() and generateReferenceDistribution2IFC() store the reference in that file, and a save that was interrupted (Esc, an error, R killed or crashing) could leave it unloadable, losing the only record of the stimuli. The file is now backed up beside itself for the duration of the save, as <file>.rcicr-backup, and restored automatically if the save fails. It keeps its owner, group and permissions. (#333) If R is killed during the save, the backup remains, and any function that reads the damaged file says so. If the file still loads, the next save stops and asks you to delete the backup, since rcicr does not delete a file it cannot prove it made. If the file no longer loads, check that the backup holds this experiment (the error shows how), restore it with file.copy("<file>.rcicr-backup", "<file>", overwrite = TRUE, copy.mode = FALSE), check that the file loads again, and only then delete the backup. Leftover <file>.rcicr-staging-* files are incomplete copies and can be deleted. Limits: a writable file in a read-only directory (Unix), and a file name over 228 bytes, are saved as before, without a backup, with a warning. On Windows, a writable file in a folder that refuses new files now stops with an error instead of being saved, as does any save where the backup cannot be made, such as on a full disk. On Windows the backup has its folder's permissions rather than being private to you. Power loss and operating-system crashes are not covered, and two R sessions saving the same file at once remain unsafe.
  • **generateCI() stops when some, but not all, participants IDs are NA.** It used to return a CI in which every pixel was NA, with only min/max warnings, and write it as a solid black PNG; every version since 1.0.1 did this. The error names the trials without an ID. Give them one, or remove them from stimuli, responses and participants alike. An all-NA participants still means no grouping, and no valid result changes. (#337)
  • **generateStimuli2IFC() never overwrites a stimulus .Rdata file.** Its file name records the minute, so two calls into one folder with the same label and seed in the same minute used to write one file, and the first set's PNGs lost the only record of their noise parameters. The name is now reserved before anything is generated, and the call stops, having written nothing, if that file exists or if another call into the same folder with the same seed, started in the same minute, is still running. The error says to use a different label or stimulus_path, or to delete the file if the set is being regenerated on purpose. The time in the name is now the start of the call rather than its end. (#338)
  • **An img_size the noise scales cannot tile now gets an error that says so.** The finest of nscales scales tiles the image with 2^(nscales - 1) patches per side, so img_size must be divisible by that. generateNoisePattern(), and through it generateStimuli2IFC() and simulateNoiseIntensities(), used to fail with "number of items to replace is not a multiple of replacement length". The error now names the constraint, the nearest valid sizes and the largest nscales that fits. Every size that worked still works. (#339)
Show all changes in 1.5.0Hide the rest of the changes in 1.5.0

Documentation

  • Corrected help pages that disagreed with the code:
  • generateStimuli2IFC(return_as_dataframe = TRUE) returns one row per pixel and one column per trial, not the reverse.
  • generateCI() takes its scaling constant as scaling_constant, not constant.
  • batchGenerateCI() also accepts scaling = "matched".
  • plotZmap() takes a background image matrix, not an .Rdata file.
  • generateNoisePattern() returns four elements, not two.
  • ?computeInfoVal2IFC cites the published InfoVal paper (Brinkman et al., 2019) instead of a manuscript in preparation.
  • computeInfoVal2IFC() always simulates a reference distribution the .Rdata file does not hold; rcicr ships no precomputed ones.
  • Rewrote the README, both vignettes and the help pages for readability. The "no longer actively maintained" notice is removed from the README.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 6.9 min · r-release-macos-x86_64
Status changes
  • OK13 OKNow
  • OK9 OK2026-09-04
Advisories

none known

Documentation

In release 1.5.0
READMEYes · 1,663 wordsVignettesYes · 2 · dynamicNEWSYes · 100% structured · mentions 1.5.0Citation fileYes · computed when R runs itWebsiteYes · pkgdown

The repository also keeps web-only articles.

Help pages
18 (1 internal)includes a package overview page
Examples that run
100%17 run in a plain check
Exported functions with examples
100%
Documented parameters
100%
Return-value docs
100%
Help pages citing references
6%

Downloads

680
CRAN downloads in the past year
Rank #18,807 · ~2/day · ~57/mo
Daily download trend is not available in this view yet.
43430 days
67590 days
6801 year
Compare downloads with other packages →
Also on17 r2u9 autocran

Repository

9Stars
13Forks
20Open issues
2Open PRs
9Releases
370Commits
9Commit identities
370 commits · Last activity 2026-10-04 · +12.5% stars, 30d · Default branch at 1.5.0.9000, ahead of CRAN 1.5.0 (checked 2026-10-11)
Responsiveness
How these are sampled
PRs merged (all time)
93%
Median days to close, 50 most recently updated closed issues
1
Median days to close, 50 most recently updated closed PRs
0

Stars over time

2026-09-03 · 82026-09-28 · 9
PracticesBeta

15 development-tooling and community-health practices detected across 8 families in the upstream repository

Checks run against github.com/rdotsch/rcicr on 2026-10-11.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (2)
Contributing guideSecurity policy
Docs source (3)
pkgdown

GitHub Pages site last deployed 2026-10-04 · The repository has a site deploy workflow

pkgdown site last built 2026-10-04

Coverage (1)
Coverage reporting (Codecov)
Show all practicesHide 4 practices
CRAN release process (1)
cran-comments.md
Research and citation (1)
CITATION.cff
Automation and maintenance (2)
Dependabotpre-commit
Lint, format, editor (3)
lintrLint workflowRStudio project
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-07-26
    Seen in the repository: .claude, CLAUDE.md
    Named in .Rbuildignore: .claude, CLAUDE.md
    Pull request it wrote: opened by a project member
    Commits: at least 145 crediting it in the message
Shared conventions any agent may read, so they name no particular tool.
Seen in the repository: AGENTS.md
Models named in its commits
  • Claude Opus 571 commits · Jul to Sep 2026
  • Claude Opus 5.545 commits · Sep to Oct 2026
  • Claude Sonnet 527 commits · Jul to Sep 2026
  • Claude Opus 4.62 commits · Aug 2026

Some of these counts are a minimum, because the search stopped before the oldest commits.

Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
17 external dependencies (excludes base and recommended)

Installing rcicr adds 47 packages (23 with compiled code, 25 MB of source tarballs). Heaviest: ggplot2 6.0 MB, spatstat.data 2.9 MB, viridis 2.9 MB.

Depends (1)
R >= 4.1
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

People & History

People (1)
Author, Maintainer since 0.2.1 (2014)
Releases (11)

Pick two releases to compare their code metrics.

  • 1.5.0Latest
    record
    2026-09-27 · current release · diff ↗
  • 1.4.1
    record
    2026-09-20 · diff ↗
  • unarchivedReturned to CRAN
    2026-09-02
  • 1.3.0
    record
    2026-09-02 · diff ↗ ·
    added 4 exports
    computeInfoVal2IFC, deg2rad, generateReferenceDistribution2IFC, plotZmap
  • R
    R 4.6.0 released · 2026-04-24
  • R
    R 4.5.0 released · 2025-04-11
  • R
    R 4.4.0 released · 2024-04-24
  • R
    R 4.3.0 released · 2023-04-21
  • R
    R 4.2.0 released · 2022-04-22
  • archivedRemoved from CRAN
    2021-06-08
    email to the maintainer was undeliverable
  • R
    R 4.1.0 released · 2021-05-18
  • R
    R 4.0.0 released · 2020-04-24
  • R
    R 3.6.0 released · 2019-04-26
  • R
    R 3.5.0 released · 2018-04-23
  • R
    R 3.4.0 released · 2017-04-21
  • 0.3.4.1
    record
    2016-07-13 · diff ↗ ·
    added 1 export
    generateGabor
Show 10 earlier eventsHide 10 earlier events
  • R
    R 3.3.0 released · 2016-05-03
  • 0.3.2.1
    record
    2016-02-05 · diff ↗
  • 0.3.2
    record
    2015-07-20 · diff ↗ ·
    added 3 exports
    batchGenerateCI, computeCumulativeCICorrelation, generateCINoise
  • R
    R 3.2.0 released · 2015-04-16
  • 0.3.0
    record
    2015-01-23 · diff ↗
  • 0.2.6
    record
    2014-12-19 · diff ↗
  • 0.2.5
    record
    2014-11-17 · diff ↗
  • 0.2.4
    record
    2014-09-30 · diff ↗ ·
    added 1 export
    batchGenerateCI2IFC
  • 0.2.1
    record
    2014-07-31
  • R
    R 3.1.0 released · 2014-04-10

Package metadata

First published
2014-07-31
Total releases
11 / 12 yrs
License
GPL-2 OSI
Minimum R
≥ 4.1
Download size
1.1 MB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("rcicr")

The package provides a citation file that builds its entry when R runs it. Run citation() to see it.

The repository also keeps a CITATION.cff.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for rcicr version 1.5.0 [Data set]. HJJB, LLC. Data release v2026-10-17. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-17, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy