This file provides persistent guidance for AI agents working in this repository.
This repository filters ClinVar variant data by gene attributes to identify genes amenable to Multiplexed Assays of Variant Effect (MAVEs). The primary workflow is a Jupyter notebook (ClinVar_wrangle_uniprot_gencc_merge.ipynb) that produces a ranked list of MAVEable genes based on criteria such as essentiality, subcellular localization, protein complex membership, and known pathogenic variant associations.
ClinVar_wrangle_uniprot_gencc_merge.ipynb— main analysis notebook; do not restructure without understanding the full pipelineMAVEable_final_is_feasible.csv— final output with feasibility flags; treat as a derived artifactunique_gencc.csv— GenCC gene-disease associations (moderate confidence and above)uniprot_len_loc_2.csv— UniProt protein length and localization datasubcellular_location.tsv— subcellular localization referencehap1_essential.csv.xlsx— HAP1 cell essentiality dataTcell_screen.csv— T cell essentiality screenVAMPseq-ome.csv— VAMPseq toxicity dataopencell-library-metadata.csv— OpenCell complex/interaction dataRendo_2025_toxic.csv— exogenous expression toxicity datalacoste.csv— additional reference datasetinstance_order.ipynb— secondary notebook; purpose should be confirmed before editing
The large ClinVar source file (variant_summary_*.txt.gz) is not committed to this repo and must be downloaded from the NCBI FTP site.
- Python 3 with Jupyter notebooks exclusively
- Core libraries:
pandas,numpy,matplotlib - Do not introduce new dependencies without confirming with the user
- Use
pandasfor all data manipulation; avoid raw Python loops over DataFrames where vectorized operations are available - Filter steps should be explicit and commented with the biological rationale (e.g., why a ClinicalSignificance value is excluded)
- Preserve existing variable naming conventions (e.g.,
ClinVar_01_25_SNV_simple,unique_gencc) - When adding new filter steps, append them in the logical order of the existing pipeline rather than inserting mid-cell
- Use
case=False, na=Falsein.str.contains()calls for robustness - Three-letter amino acid codes should be converted to single-letter using the existing
amino_acid_mapdictionary pattern
- Treat all CSV/TSV files as read-only reference data unless the user explicitly asks to modify them
- When reading large files (e.g., ClinVar), use
low_memory=Falseor explicitdtypearguments to avoid mixed-type warnings - Do not hard-code absolute file paths; assume files are in the working directory
- The ClinVar assembly should always be filtered to
GRCh38
- Final outputs are CSV files prefixed with
MAVEable_ - Plots use
matplotlib; maintain existing plot style unless a change is requested - Do not overwrite existing output CSVs without explicit user confirmation
- Do not delete or rename existing CSV/TSV data files
- Do not reorder or consolidate notebook cells without understanding pipeline dependencies
- Do not commit the large ClinVar
.txt.gzsource file - Do not add unrelated dependencies or change the Python environment