A figure in a retinal-degeneration study placed just one gene at the intersection of three lists: human retinal organoids, rats and mice treated with halofantrine. That gene was ITPR3. Before interpreting the shared intersection, I wanted to recover the choices that put each gene on each list.
Using the deposited expression data linked to Kim and colleagues’ preprint, I tested nine explicit reconstructions. None recovered both the seven regions of Supplementary Figure S7A and its sole three-model intersection. The deposited rd10 mouse statistic for Itpr3 also did not directly support the text’s statement of significance in all three models. I documented those specific gaps, then separately examined which comparisons survived changes to the analysis.
The part of the study I revisited
The original study reported photoreceptor protection and functional changes after halofantrine treatment in inherited retinal-degeneration models. Its RNA analyses examined the accompanying molecular responses. Gene expression measures how much RNA is produced from particular genes; it is related to, but distinct from, counting surviving photoreceptors or measuring retinal function.
My reanalysis covered treated and DMSO-control samples from human CEP290-LCA retinal organoids, P23H rats and rd10 mice. Organoids are cultured cell systems that reproduce some features of retinal tissue; the two animal models represent particular inherited retinal diseases. I did not reanalyse the source histology or electrical measurements of retinal function.
The inputs were deposited gene-level comparison tables and normalized expression matrices from three subseries of GSE327435. Treated/control group sizes were 5/5 for the human organoids, 4/5 for P23H and 3/3 for rd10. All ten human samples carried the same patient-donor label, PEN1B, so they cannot be treated as ten independent patients. I started from the deposited estimates without repeating raw-read processing or refitting the source statistical model.
What comes before “the top 500 genes”?
Selecting the 500 most changed genes can mean several different procedures. One can rank all genes by the size of their change, or first retain only genes that pass a statistical threshold. Selecting equal numbers of increases and decreases produces another list. Converting animal genes to corresponding human identifiers introduces further choices, including whether to allow multiple matches.
For the S7A reconstruction, I specified nine rules combining rankings by effect size, p-value or test statistic; statistical and fold-change thresholds; and either a top-500 list or 250 genes in each direction. Animal genes were mapped through all returned human homologues. Homologues are corresponding genes descended from a common ancestral gene. I did not impose the stricter one-to-one mapping used later for effect comparisons on this figure-recovery exercise.
The source diagram implied mapped list sizes of 500 human, 412 P23H and 435 rd10 genes, with one gene common to all three. The closest tested reconstruction first required p<0.05, then ranked by effect magnitude and selected up to 500 genes. Even this rule left a summed absolute difference of 72 across the seven Venn regions. It also excluded rd10 Itpr3, whose deposited p-value was 0.119.
Removing the p-value filter admitted ITPR3 to all three lists, but yielded eight shared genes rather than one. Matching that gene alone was therefore insufficient. The nine failed candidates describe what I tested; they do not prove that no valid implementation of the source figure exists.
Direction and statistical significance answer different questions
I next checked the deposited ITPR3/Itpr3 rows. The log2 fold change measures the treatment-versus-control difference: positive values indicate higher expression under treatment, and negative values lower expression. A value of +1 corresponds to a doubling; −1 to a halving. Statistical threshold crossing is a separate question.
| Model | Deposited log2 fold change | Deposited p-value |
|---|---|---|
| Human CEP290-LCA | +0.713 | 0.00197 |
| P23H rat | −0.951 | 0.0125 |
| rd10 mouse | +0.387 | 0.119 |
The rd10 row did not meet the p<0.05 criterion used here, leaving the all-three significance statement unconnected to this deposited test. S7B may use another test, sample subset or matrix; I requested the figure-level values and method rather than substituting my preferred test for an unknown procedure. The opposite effect sign in P23H was recorded separately: a statement of significance does not itself assert agreement in direction.
Because thousands of genes are tested, I also inspected the deposited p-values adjusted for multiple comparisons. Only the human ITPR3 row crossed the adjusted-p<0.05 threshold. Failure to cross that threshold does not establish no molecular effect, and it does not establish absence of photoreceptor protection.
What remained stable in additional analyses
Recovering the source figures and measuring sensitivity under my own explicit choices were separate tasks. For the latter, I aligned one-to-one gene counterparts across species, compared treatment-effect patterns, and checked what changed when one sample was removed.
The full-data and single-sample-deletion states yielded 257 cross-model pairings in total. In the 77 human–rd10 pairings, rank correlations stayed positive, ranging from 0.084 to 0.422. Gene-level changes therefore retained some agreement in their ordering across every tested pairing of these two models. Both comparisons involving P23H crossed zero. These are sensitivity ranges from sample deletion, not confidence intervals or independently repeated experiments.
I also tested whether functionally related groups of genes moved together. Using 8,644 shared gene symbols, the ranked pathway analysis evaluated 277 pathways per model. Oxidative phosphorylation, a process involved in cellular energy production, had positive enrichment scores in all three models. Only P23H crossed the chosen FDR<0.05 threshold.
FDR addresses the proportion of false discoveries among findings when many hypotheses are tested. A shared positive direction and a shared crossing of that statistical threshold are different observations. This ranked analysis also differs from the source’s pathway procedure based on selected genes, so it is not an exact replication test of that procedure. The original study already describes partial molecular similarity; the additional results need to be read alongside that qualified interpretation.
Making this reanalysis executable
I released the analysis code and 12-page manuscript. On 27 September, the specified pipeline ran in a new isolated environment and empty work directory, with all five figures generated from the new outputs. Six bounded reconstruction files, four full-analysis JSON results and five SVGs matched the retained reanalysis reference outputs byte for byte.
The execution contract is limited to Windows, Python 3.12.10 and pinned dependencies. The repository instructions record input locations, hashes and commands. Changed remote files stop acquisition rather than being silently substituted. The MIT code licence does not grant rights in third-party data or the source paper. The earlier downloaded file and hash of the KEGG_2021_Human gene-set collection were not preserved. I therefore cannot establish that the collection downloaded again on 27 September is byte-for-byte identical to the input used in the historical analysis.
Reproducing my specified outputs cannot recover undocumented source choices. The remaining needs are concrete: the actual S7A lists and selection code, the S7B values and test, and the experimental units represented by PA/PB/PC/PD in the human sample names. I did not classify those prefixes as proven batches. A methods inquiry requested these details from the source authors on 27 September.
I also submitted the replication manuscript to ReScience C that day. As checked on 28 September, submission issue #135 is open; this is not an acceptance or a completed external review. The public package identifies the calculations I could not recover and makes the separate sensitivity analyses executable. It does not determine whether halofantrine protects photoreceptors, establish clinical efficacy or safety, or demonstrate a common therapeutic mechanism.
I directed the research question and reanalysis scope. OpenAI Codex assisted with analysis scripts, reproducibility checks, and manuscript drafting and editing. Author declarations and competing-interest disclosure are included in the public manuscript. Source study: Kim et al., Research Square v1 · Data: GSE327435.
