Reproducibility Review (main)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- jupyter-notebook, python, pytorch
- Área
- documentation
Línea de trabajo
Empieza por el README raíz y el README de la campaña; después inspecciona fpdesign/campaign.py alrededor de build_argparser y sus comprobaciones de salida almacenada en caché. Revisa el cuaderno in-silico-test mencionado, el README de GFP_DMS, environment.yml y las referencias a rutas obsoletas para separar las correcciones de documentación de los problemas de reproducibilidad. Se considera terminado cuando los comandos y las rutas de restauración documentados describen correctamente el comportamiento de un clon nuevo y evitan el traceback indicado o las referencias engañosas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Repository:
Arcadia-Science/FPguide
Branch:main
Commit:29935e8cb7
Reviewed: 2026-09-03 21:27 UTC
Reproducibility review — Arcadia-Science/FPguide
Summary
This repository is unusually well documented for reproducibility: every folder carries its own README with ordered commands, the root README maps each entry point onto a four-tier "what can you actually regenerate" table, the conda environment is fully pinned with lock files plus OS/driver notes, and the tracked artifacts were deliberately chosen so the cheap entry points (msa_conservation/, experiment/, Section 1 of GFP_DMS/visualization.ipynb) run from a bare clone. Someone could clone this today and, after one ~325 MB release download, re-run the GFP_DMS analysis and the EGFP campaign analysis as documented. The remaining friction is at the heavy end: the in-silico-test/ deployed checkpoints are not published and their refit is not deterministic, and the committed design CSVs make the documented campaign "run" commands no-ops on a fresh clone.
Critical issues
None found.
Warnings
- The
in-silico-test/deployed checkpoints are not published, and refitting them is not bit-reproducible.design_common.SURR_CKPT(trained_models/surrogate_final/cnn-max-d1_trainval.pt,design_common.py:147) andORAC_CKPT(trained_models/oracle_sweep/cnn-max-d1_s0.pt, line 148) fall under the repo-wide*.ptignore, as doestrained_models/surrogate_cv3.csv, from whichtrain_final_surrogate.py:40derives its epoch budget. The rebuild path is documented (root README Tier 3,in-silico-test/README.mdpipeline), but it is the full chain — ~2 GB of ESM-2/ProstT5 caches,sweep_peak_oracle.py --role both,cv_all_surrogate.py,train_final_surrogate.py— andtrain_final_surrogate.py:52sets onlytorch.manual_seed(0)with no cuDNN determinism pinned, so a reproducer's surrogate will differ slightly from the one behind the numbers inin-silico-test/README.md("Design results"). Either ship these two checkpoints alongside the reference clouds, or state in the README that exact numeric agreement is not expected. - The documented campaign run commands silently do nothing on a fresh clone. The design CSVs under
design-campaign-EGFP/*/designs*/are committed, andfpdesign/campaign.py:670–690skips any pair/cell whose CSV already covers--trials.build_argparser(campaign.py:182–214) exposes no--force— only--rescore,--backfill-ppl,--probe— sobash run_sweep.sh/bash run_campaign.shfrom the campaign README's "Run" section print "cached" and exit. Add a line telling reproducers to pass a different--outdir(or delete the CSVs) to actually re-execute.in-silico-test's equivalent_complete()skip is documented under "Notes and gotchas"; the campaign's is not.
Polish/nice to have
-
in-silico-test/sweep_results.ipynbcell 6 does a barepd.read_csv("trained_models/surrogate_cv3.csv")and raisesFileNotFoundErroron a clone, whereas the root README's Tier 3 table says those entry points "fail with the command to run, not a traceback".load_sweepin the same notebook already degrades gracefully; the CV cell could too. - Paths with spaces and parentheses —
experiment/plasmid constructs/and(bright)his-morange_msa_07-in-pet-28a.fasta— force quoting and URL-escaping (experiment/README.mdalready has to writeplasmid%20constructs). - ~175 MB of RCSB PDBx cache is committed under
structures/experimental/even thoughpockets.pyself-populates it on a miss (structures/README.mdsays as much).1G7K.pdbxand1GFL.pdbxadditionally exist at bothstructures/andstructures/experimental/, though that duplication is functional (pockets.STRUCTreads the top level,experimental_windowthe subdirectory). - The root README's Environment section documents only
conda env create -f environment.yml; the exact-restore path (environment.linux-64.lockplusrequirements.linux-64.txtpluspip install -e ./fpbase-extractor) is only in comments insideenvironment.yml. Worth surfacing. - Stale internal references:
GFP_DMS/brightness_threshold.py:16andGFP_DMS/embed_dms.py:16nametransform_dms.py, nowtransform_avgfp_dms.py; the stage bootstraps inin-silico-test/1_surrogate_oracle_training/*.pyand2_design_task_specification/*.pystill prepend a removedmsa/directory tosys.path(harmless, but misleading). -
GFP_DMS/README.mdlane A ends injupyter nbconvert --to notebook --execute --inplace visualization.ipynb, which rewrites a tracked 268 KB notebook and dirtiesgit statuson every reproduction run;--outputto a scratch path would avoid that.
Suggestions
- Publish the
in-silico-test/surrogate and oracle checkpoints (andsurrogate_cv3.csv) in the same release asreference-cloud-v1. They are small, and this is the single change that moves the pub's core design experiment from "re-derive over many GPU-hours, non-deterministically" to "download and re-run". - Give the design engines an explicit
--force, or have the wrapper scripts default to a timestamped--outdir, so "re-run the campaign" is one documented command rather than a manual delete of committed files.
Automated reproducibility review • model: claude-opus-5 • tokens: 569,237 in / 6,953 out • cache: 569,235 written, 0 read
- Lenguaje dominante
- Jupyter Notebook
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
ai_p3 bug comp-datalake
Dificultad 2/5 Medio día Aptitud para principiantes 70/100
ClickHouse/ClickHouse#128303 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 85/100
iceboundrock/fp-skills#36 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
MichaelYcJo/SpecSeal#1192 ·
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día