orfdata 0.35.0__tar.gz → 0.36.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {orfdata-0.35.0/orfdata.egg-info → orfdata-0.36.0}/PKG-INFO +49 -8
- {orfdata-0.35.0 → orfdata-0.36.0}/README.md +43 -5
- orfdata-0.36.0/docs/downloads.md +257 -0
- orfdata-0.36.0/docs/downstream.md +168 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/index.md +13 -3
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/proteome.md +147 -45
- orfdata-0.36.0/docs/viral.md +635 -0
- orfdata-0.36.0/lint.sh +3 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/mkdocs.yml +2 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/__init__.py +43 -6
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/cli.py +27 -6
- orfdata-0.36.0/orfdata/cli_output.py +48 -0
- orfdata-0.36.0/orfdata/data/viral/NOTICE.md +149 -0
- orfdata-0.36.0/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +205 -0
- orfdata-0.36.0/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +195 -0
- orfdata-0.36.0/orfdata/data/viral/subsets.yaml +113 -0
- orfdata-0.36.0/orfdata/download_cli.py +271 -0
- orfdata-0.36.0/orfdata/downloads.py +330 -0
- orfdata-0.36.0/orfdata/fasta.py +11 -0
- orfdata-0.36.0/orfdata/genbank.py +254 -0
- orfdata-0.36.0/orfdata/gtf.py +121 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/install.py +56 -9
- orfdata-0.36.0/orfdata/net.py +51 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/proteome.py +581 -183
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/proteome_cli.py +6 -0
- orfdata-0.36.0/orfdata/record_sources.py +298 -0
- orfdata-0.36.0/orfdata/reference_ledger.py +204 -0
- orfdata-0.36.0/orfdata/reference_table.py +118 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/refseq.py +2 -2
- orfdata-0.36.0/orfdata/version.py +1 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/viral.py +2 -4
- orfdata-0.36.0/orfdata/viral_annotation.py +453 -0
- orfdata-0.36.0/orfdata/viral_cli.py +232 -0
- orfdata-0.36.0/orfdata/viral_coverage.py +210 -0
- orfdata-0.36.0/orfdata/viral_panel.py +1219 -0
- orfdata-0.36.0/orfdata/viral_registry.py +292 -0
- orfdata-0.36.0/orfdata/viral_subsets.py +101 -0
- {orfdata-0.35.0 → orfdata-0.36.0/orfdata.egg-info}/PKG-INFO +49 -8
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/SOURCES.txt +40 -1
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/requires.txt +6 -2
- {orfdata-0.35.0 → orfdata-0.36.0}/pyproject.toml +9 -3
- orfdata-0.36.0/tests/conftest.py +210 -0
- orfdata-0.36.0/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
- orfdata-0.36.0/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
- orfdata-0.36.0/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
- orfdata-0.36.0/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
- orfdata-0.36.0/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
- orfdata-0.36.0/tests/test_downloads.py +173 -0
- orfdata-0.36.0/tests/test_genbank.py +162 -0
- orfdata-0.36.0/tests/test_genbank_equivalence.py +110 -0
- orfdata-0.36.0/tests/test_orf_gtf.py +145 -0
- orfdata-0.36.0/tests/test_protein_set.py +126 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome.py +42 -32
- orfdata-0.36.0/tests/test_proteome_external.py +265 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome_fasta_tokens.py +66 -14
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome_producer_graph.py +19 -19
- orfdata-0.36.0/tests/test_reference_ledger.py +184 -0
- orfdata-0.36.0/tests/test_reference_table.py +94 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_refseq.py +3 -3
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_viral.py +22 -12
- orfdata-0.36.0/tests/test_viral_bundle.py +228 -0
- orfdata-0.36.0/tests/test_viral_cli.py +156 -0
- orfdata-0.36.0/tests/test_viral_collections.py +132 -0
- orfdata-0.36.0/tests/test_viral_completeness.py +128 -0
- orfdata-0.36.0/tests/test_viral_coverage.py +116 -0
- orfdata-0.36.0/tests/test_viral_initiation.py +142 -0
- orfdata-0.36.0/tests/test_viral_origin_join.py +109 -0
- orfdata-0.36.0/tests/test_viral_sources.py +183 -0
- orfdata-0.36.0/tests/test_viral_subsets.py +51 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tools/build_gdc_viral_coverage.py +20 -22
- {orfdata-0.35.0 → orfdata-0.36.0}/tools/build_hpv16_cds.py +19 -17
- orfdata-0.36.0/tools/build_reference_ledger.py +73 -0
- orfdata-0.35.0/docs/viral.md +0 -154
- orfdata-0.35.0/lint.sh +0 -3
- orfdata-0.35.0/orfdata/data/viral/NOTICE.md +0 -59
- orfdata-0.35.0/orfdata/version.py +0 -1
- orfdata-0.35.0/orfdata/viral_cli.py +0 -70
- orfdata-0.35.0/orfdata/viral_coverage.py +0 -114
- orfdata-0.35.0/tests/conftest.py +0 -51
- orfdata-0.35.0/tests/test_proteome_external.py +0 -133
- orfdata-0.35.0/tests/test_viral_cli.py +0 -49
- orfdata-0.35.0/tests/test_viral_coverage.py +0 -91
- {orfdata-0.35.0 → orfdata-0.36.0}/LICENSE +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/MANIFEST.in +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/deploy.sh +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/catalogs.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/copy-yeast.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/coverage.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/dog-peptides.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/examples.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/human-tissue.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/ingolia-yeast.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/measurements.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/pairing.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/pfizer-protein.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/pfizer-rna.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/reference.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/search-references.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/source-references.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/species.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/storage.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs/stylesheets/docs.css +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/docs.sh +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/_pinned_genome.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/_structure.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/build.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog_cli.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog_manifest.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalogs.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/catalogs.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/chains.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/datasets.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/genomes.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/dataset.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/dataset_cli.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/datasets.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/evidence.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/evidence_summary.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/genomes.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/genomes_cli.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/liftover.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/liftover_cli.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/measurements.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/model.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/pairing.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/reference.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/rna.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/search_reference.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sequence.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/__init__.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/copy.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/ingolia.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/kaabinejadian.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/ncorf_mammals.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/openprot.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/peptideatlas.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/pfizer.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/pfizer_rna.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/riborf.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/wang.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/setup.cfg +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/test.sh +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/aggregate_evidence.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/readMe.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/Results.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/manifest-v1.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/sdrf.tsv +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/S3.xlsx +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human.bed +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human.pep.fa +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/mouse.bed +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/ensembl106.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/counts.csv.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/samples.xlsx +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/ensembl115.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/mitochondrial.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/uniprot_literature.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/regions/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/regions/ingolia.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/SD3.xlsx +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/dog.fasta +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/ensembl83-expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/README.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/generate.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v1.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v2.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v3.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v4.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v4.sqlite +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/viral/NC_001526.4.gb.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/NOTICE.md +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/annotation.gtf.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/copies.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/expected.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/manifest.json +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/protein.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/rna.zip +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/search.fasta.gz +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_catalog_registry.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_copy.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_dog_peptides.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ensembl_search_reference.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_evidence_rules.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_evidence_summary.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_genetic_codes.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_genomes.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ingolia.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_initiation_context.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_liftover.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_local_build_queries.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_measurements.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_merge_catalogs.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_more_species.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ncorf_mammals.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_openprot.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_orf_cases.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_paired_selectors.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pairing.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pfizer.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pfizer_rna.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_orf.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_region_targets.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_riborf.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_search_reference.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_selectors.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_storage.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_uorf_catalog.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_wang.py +0 -0
- {orfdata-0.35.0 → orfdata-0.36.0}/tools/__init__.py +0 -0
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.36.0
|
|
4
4
|
Summary: Reference proteomes with evidence-backed noncanonical ORFs on PyEnsembl genomes
|
|
5
5
|
Author: OpenVax
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Requires-Python: >=3.11
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE
|
|
10
|
+
Requires-Dist: datacache<2,>=1.25.1
|
|
11
|
+
Requires-Dist: pandas<4,>=3
|
|
12
|
+
Requires-Dist: pyyaml<7,>=6
|
|
10
13
|
Provides-Extra: pyensembl
|
|
11
14
|
Requires-Dist: pyensembl>=2.27.2; extra == "pyensembl"
|
|
12
15
|
Provides-Extra: build-data
|
|
13
16
|
Requires-Dist: openpyxl>=3.1; extra == "build-data"
|
|
14
|
-
|
|
17
|
+
Provides-Extra: viral
|
|
15
18
|
Provides-Extra: data
|
|
16
19
|
Requires-Dist: datacache<2,>=1.25.1; extra == "data"
|
|
17
20
|
Provides-Extra: columnar
|
|
@@ -22,9 +25,9 @@ Requires-Dist: ruff; extra == "dev"
|
|
|
22
25
|
Requires-Dist: build; extra == "dev"
|
|
23
26
|
Requires-Dist: twine; extra == "dev"
|
|
24
27
|
Requires-Dist: openpyxl>=3.1; extra == "dev"
|
|
25
|
-
Requires-Dist: biopython<2,>=1.80; extra == "dev"
|
|
26
28
|
Requires-Dist: pyensembl>=2.27.2; extra == "dev"
|
|
27
29
|
Requires-Dist: datacache<2,>=1.25.1; extra == "dev"
|
|
30
|
+
Requires-Dist: gb-io<0.5,>=0.4; extra == "dev"
|
|
28
31
|
Provides-Extra: docs
|
|
29
32
|
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
|
|
30
33
|
Requires-Dist: mkdocs-material<10,>=9.5; extra == "docs"
|
|
@@ -48,12 +51,37 @@ evidence.
|
|
|
48
51
|
Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
|
|
49
52
|
|
|
50
53
|
```sh
|
|
51
|
-
python -m pip install 'orfdata[pyensembl,
|
|
54
|
+
python -m pip install 'orfdata[pyensembl,build-data]'
|
|
52
55
|
pyensembl install --release 115 --species human
|
|
53
56
|
# For the ncORF evidence presets and "all":
|
|
54
57
|
orfdata setup --species human --catalogs all
|
|
55
58
|
```
|
|
56
59
|
|
|
60
|
+
List every bundled, downloadable or buildable resource and what is installed:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
orfdata download list
|
|
64
|
+
orfdata download status
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
68
|
+
200-reference GDC viral screen for human transcriptome analysis;
|
|
69
|
+
`--collections none` skips it. Viral support is part of the base install, and
|
|
70
|
+
only the data is downloaded. To acquire only the viral references:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
orfdata download viral --species human
|
|
74
|
+
orfdata viral summary
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Each viral collection keeps three layers apart — the viral genomes, one coding
|
|
78
|
+
transcript per source CDS feature with a GTF placing it on them, and the
|
|
79
|
+
proteins those transcripts encode. Because the three share identifiers, the set
|
|
80
|
+
opens as a PyEnsembl genome, so varcode, isovar, topiary and vaxrank can
|
|
81
|
+
annotate variants on viral contigs. `orfdata proteome --annotation DIR` writes
|
|
82
|
+
the same three files for noncanonical ORFs. See
|
|
83
|
+
[Downstream tools](https://openvax.github.io/orfdata/downstream/).
|
|
84
|
+
|
|
57
85
|
## Example
|
|
58
86
|
|
|
59
87
|
```python
|
|
@@ -140,6 +168,13 @@ amino acids, parent protein accession, sample, change IDs and source before
|
|
|
140
168
|
`combined.with_derived_proteins(...)` adds them. These sequences are not
|
|
141
169
|
inferred from variants or included in the reference proteome by default.
|
|
142
170
|
|
|
171
|
+
For a named, checksummed sequence input with no genomic placement, use the
|
|
172
|
+
general `ProteinSet`. `with_protein_set(...)` records a donor, transgene or
|
|
173
|
+
other selected component; `with_viral(...)` uses the same input plus a sourced
|
|
174
|
+
host association. ncORF sources with transcript coordinates and evidence stay
|
|
175
|
+
as `ORFCatalog` records and produce the same `ProteinSequence` output when
|
|
176
|
+
bound to a reference.
|
|
177
|
+
|
|
143
178
|
```sh
|
|
144
179
|
orfdata proteome --species human --release 115 --nc-orf-sources all --viral all --output human-all-proteins.fasta
|
|
145
180
|
```
|
|
@@ -159,10 +194,14 @@ packaged bases and coding paths. The functional loaders remain available.
|
|
|
159
194
|
When annotating an existing alignment, `viral_orfs(reference_dna,
|
|
160
195
|
contig="HPV16")` checks its actual reference sequence before applying the same
|
|
161
196
|
models.
|
|
162
|
-
The
|
|
163
|
-
the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
|
|
164
|
-
the host association is distinct from the virus's own taxon.
|
|
165
|
-
|
|
197
|
+
The curated [coding reference](https://openvax.github.io/orfdata/viral/)
|
|
198
|
+
contains the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
|
|
199
|
+
placements; the host association is distinct from the virus's own taxon. The
|
|
200
|
+
separate `gdc-viruses` source bundle contains all 200 GDC source genomes and
|
|
201
|
+
their annotated CDS/protein FASTAs for human analysis. It does not assert a
|
|
202
|
+
human source host for every virus; source-host metadata remains separate.
|
|
203
|
+
Promoting further source records into the curated
|
|
204
|
+
`ViralReference` API remains in the [viral roadmap](https://github.com/openvax/orfdata/issues/91).
|
|
166
205
|
|
|
167
206
|
## Measurement datasets
|
|
168
207
|
|
|
@@ -194,6 +233,8 @@ The [documentation](https://openvax.github.io/orfdata/) covers:
|
|
|
194
233
|
|
|
195
234
|
| Task | Guide |
|
|
196
235
|
| --- | --- |
|
|
236
|
+
| Discover, inspect and download data | [Discover and download data](https://openvax.github.io/orfdata/downloads/) |
|
|
237
|
+
| Use ORFs and viral references with varcode, isovar, topiary and vaxrank | [Downstream tools](https://openvax.github.io/orfdata/downstream/) |
|
|
197
238
|
| Build a proteome: evidence levels, exclusions, contigs, viral proteins | [Build a reference proteome](https://openvax.github.io/orfdata/proteome/) |
|
|
198
239
|
| ORF classes, evidence definitions, Varcode and Isovar integration | [ORFs and evidence](https://openvax.github.io/orfdata/reference/) |
|
|
199
240
|
| Species and reference identity, mitochondrial genetic codes | [Species, references and genetic codes](https://openvax.github.io/orfdata/species/) |
|
|
@@ -16,12 +16,37 @@ evidence.
|
|
|
16
16
|
Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
|
|
17
17
|
|
|
18
18
|
```sh
|
|
19
|
-
python -m pip install 'orfdata[pyensembl,
|
|
19
|
+
python -m pip install 'orfdata[pyensembl,build-data]'
|
|
20
20
|
pyensembl install --release 115 --species human
|
|
21
21
|
# For the ncORF evidence presets and "all":
|
|
22
22
|
orfdata setup --species human --catalogs all
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
List every bundled, downloadable or buildable resource and what is installed:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
orfdata download list
|
|
29
|
+
orfdata download status
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
33
|
+
200-reference GDC viral screen for human transcriptome analysis;
|
|
34
|
+
`--collections none` skips it. Viral support is part of the base install, and
|
|
35
|
+
only the data is downloaded. To acquire only the viral references:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
orfdata download viral --species human
|
|
39
|
+
orfdata viral summary
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Each viral collection keeps three layers apart — the viral genomes, one coding
|
|
43
|
+
transcript per source CDS feature with a GTF placing it on them, and the
|
|
44
|
+
proteins those transcripts encode. Because the three share identifiers, the set
|
|
45
|
+
opens as a PyEnsembl genome, so varcode, isovar, topiary and vaxrank can
|
|
46
|
+
annotate variants on viral contigs. `orfdata proteome --annotation DIR` writes
|
|
47
|
+
the same three files for noncanonical ORFs. See
|
|
48
|
+
[Downstream tools](https://openvax.github.io/orfdata/downstream/).
|
|
49
|
+
|
|
25
50
|
## Example
|
|
26
51
|
|
|
27
52
|
```python
|
|
@@ -108,6 +133,13 @@ amino acids, parent protein accession, sample, change IDs and source before
|
|
|
108
133
|
`combined.with_derived_proteins(...)` adds them. These sequences are not
|
|
109
134
|
inferred from variants or included in the reference proteome by default.
|
|
110
135
|
|
|
136
|
+
For a named, checksummed sequence input with no genomic placement, use the
|
|
137
|
+
general `ProteinSet`. `with_protein_set(...)` records a donor, transgene or
|
|
138
|
+
other selected component; `with_viral(...)` uses the same input plus a sourced
|
|
139
|
+
host association. ncORF sources with transcript coordinates and evidence stay
|
|
140
|
+
as `ORFCatalog` records and produce the same `ProteinSequence` output when
|
|
141
|
+
bound to a reference.
|
|
142
|
+
|
|
111
143
|
```sh
|
|
112
144
|
orfdata proteome --species human --release 115 --nc-orf-sources all --viral all --output human-all-proteins.fasta
|
|
113
145
|
```
|
|
@@ -127,10 +159,14 @@ packaged bases and coding paths. The functional loaders remain available.
|
|
|
127
159
|
When annotating an existing alignment, `viral_orfs(reference_dna,
|
|
128
160
|
contig="HPV16")` checks its actual reference sequence before applying the same
|
|
129
161
|
models.
|
|
130
|
-
The
|
|
131
|
-
the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
|
|
132
|
-
the host association is distinct from the virus's own taxon.
|
|
133
|
-
|
|
162
|
+
The curated [coding reference](https://openvax.github.io/orfdata/viral/)
|
|
163
|
+
contains the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
|
|
164
|
+
placements; the host association is distinct from the virus's own taxon. The
|
|
165
|
+
separate `gdc-viruses` source bundle contains all 200 GDC source genomes and
|
|
166
|
+
their annotated CDS/protein FASTAs for human analysis. It does not assert a
|
|
167
|
+
human source host for every virus; source-host metadata remains separate.
|
|
168
|
+
Promoting further source records into the curated
|
|
169
|
+
`ViralReference` API remains in the [viral roadmap](https://github.com/openvax/orfdata/issues/91).
|
|
134
170
|
|
|
135
171
|
## Measurement datasets
|
|
136
172
|
|
|
@@ -162,6 +198,8 @@ The [documentation](https://openvax.github.io/orfdata/) covers:
|
|
|
162
198
|
|
|
163
199
|
| Task | Guide |
|
|
164
200
|
| --- | --- |
|
|
201
|
+
| Discover, inspect and download data | [Discover and download data](https://openvax.github.io/orfdata/downloads/) |
|
|
202
|
+
| Use ORFs and viral references with varcode, isovar, topiary and vaxrank | [Downstream tools](https://openvax.github.io/orfdata/downstream/) |
|
|
165
203
|
| Build a proteome: evidence levels, exclusions, contigs, viral proteins | [Build a reference proteome](https://openvax.github.io/orfdata/proteome/) |
|
|
166
204
|
| ORF classes, evidence definitions, Varcode and Isovar integration | [ORFs and evidence](https://openvax.github.io/orfdata/reference/) |
|
|
167
205
|
| Species and reference identity, mitochondrial genetic codes | [Species, references and genetic codes](https://openvax.github.io/orfdata/species/) |
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Discover and download data
|
|
2
|
+
|
|
3
|
+
ORFdata has one common entry point for data acquisition:
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
orfdata download list
|
|
7
|
+
orfdata download status
|
|
8
|
+
orfdata download viral --species human
|
|
9
|
+
orfdata download catalog NAME
|
|
10
|
+
orfdata download dataset NAME
|
|
11
|
+
orfdata download reference DATASET
|
|
12
|
+
orfdata download genome NAME
|
|
13
|
+
orfdata download chains --species human
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The operation comes first so the same discovery and installation model applies
|
|
17
|
+
to every resource kind. `orfdata download viral` is therefore the primary
|
|
18
|
+
command. Focused command groups such as `orfdata viral coverage` and
|
|
19
|
+
`orfdata viral summary` remain useful for domain-specific inspection.
|
|
20
|
+
|
|
21
|
+
`list` shows every bundled, downloadable or locally buildable primary resource
|
|
22
|
+
and its current state, including native protein search references declared by
|
|
23
|
+
quantitative datasets. `status` shows resources already usable from local
|
|
24
|
+
files. Filter either command with `--kind` or `--species`; use `--installed` or
|
|
25
|
+
`--missing` with `list`, `--json` for programs, and `--verify` to hash installed
|
|
26
|
+
files. Discovery and status commands never acquire or repair data.
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
orfdata download list --kind viral --species human
|
|
30
|
+
orfdata download list --missing
|
|
31
|
+
orfdata download status --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Catalogue and dataset releases that cannot be redistributed are built from
|
|
35
|
+
their pinned sources when selected through `orfdata download`. The listing's
|
|
36
|
+
`ACQUIRE` column says `download` or `build`. Existing focused commands such as
|
|
37
|
+
`orfdata catalogs download`, `orfdata datasets build`, `orfdata genomes
|
|
38
|
+
install`, and `orfdata chains download` remain available.
|
|
39
|
+
|
|
40
|
+
The same inventory is available from Python:
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from orfdata import DataStatus, list_data
|
|
44
|
+
|
|
45
|
+
all_resources: tuple[DataStatus, ...] = list_data()
|
|
46
|
+
human_missing: tuple[DataStatus, ...] = list_data(species="human", installed=False)
|
|
47
|
+
installed: tuple[DataStatus, ...] = list_data(installed=True)
|
|
48
|
+
machine_record: dict[str, object] = all_resources[0].to_dict()
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Each `DataStatus` reports its kind, stable name and version, species,
|
|
52
|
+
nonexclusive analysis contexts, local status, acquisition method and equivalent
|
|
53
|
+
command, and resolved cache path. Status values follow DataCache: `available`,
|
|
54
|
+
`missing`, `corrupt`, or `inaccessible`. An unknown kind, species or context is
|
|
55
|
+
an error rather than an empty listing, so a typo never reads as "nothing is
|
|
56
|
+
available".
|
|
57
|
+
|
|
58
|
+
## Viral collections and contexts
|
|
59
|
+
|
|
60
|
+
The Python API uses the same collection object for discovery, inventory reads,
|
|
61
|
+
source summaries, downloads and offline opens. The target species comes from the
|
|
62
|
+
collection; pass `species` only when you want an explicit consistency check.
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
from pandas import DataFrame
|
|
66
|
+
|
|
67
|
+
from orfdata import ViralCollection, viral_collection, viral_collections
|
|
68
|
+
|
|
69
|
+
human_collections: tuple[ViralCollection, ...] = viral_collections(species="human")
|
|
70
|
+
collection: ViralCollection = viral_collection("gdc-viruses")
|
|
71
|
+
assert viral_collection(collection.panel) is collection
|
|
72
|
+
|
|
73
|
+
inventory: DataFrame = collection.inventory()
|
|
74
|
+
genbank: DataFrame = collection.source_summary() # primary source
|
|
75
|
+
pave: DataFrame = collection.source_summary("pave") # another declared source
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Names, panel names and aliases resolve through `viral_collection()` everywhere.
|
|
79
|
+
An unknown species, collection or source is an error rather than an empty
|
|
80
|
+
result. A second species is another `ViralCollection` declaration with its own
|
|
81
|
+
checked inventory and source summaries; download code does not branch on the species.
|
|
82
|
+
|
|
83
|
+
The published viral collection currently has these properties:
|
|
84
|
+
|
|
85
|
+
| Property | Value | Meaning |
|
|
86
|
+
| --- | --- | --- |
|
|
87
|
+
| Species | `human` | Current target analysis species, NCBI taxon 9606 |
|
|
88
|
+
| Collection | `gdc-viruses` | Default 200-reference GDC viral screen for human analysis |
|
|
89
|
+
| Contexts | `cancer-transcriptome-screening` (`cancer`) | GDC human cancer-transcriptome screening context |
|
|
90
|
+
|
|
91
|
+
Run the default collection with:
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
orfdata download viral --species human
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Viral support is part of a regular `pip install orfdata`; what needs acquiring
|
|
98
|
+
is the data. `orfdata setup --species human` installs this collection along
|
|
99
|
+
with the human catalogues and chains; `--collections none` sets up catalogues
|
|
100
|
+
and chains alone.
|
|
101
|
+
|
|
102
|
+
`--collection gdc-viruses` is the default and is available for explicit
|
|
103
|
+
configuration in scripts that will later choose among several collections. The
|
|
104
|
+
current collection is for human analysis. A future collection may target another
|
|
105
|
+
species. Target species does not assert a human source host for every virus.
|
|
106
|
+
Context is metadata rather than a sequence identity or a mutually exclusive
|
|
107
|
+
selector. CMV and EBV, for example, may be requested in both cancer and
|
|
108
|
+
autoimmune workflows. A future collection may carry several context tags, and
|
|
109
|
+
the same exact accession/version can belong to several collections without
|
|
110
|
+
becoming several biological references.
|
|
111
|
+
|
|
112
|
+
Pass `--context` to materialize a derived FASTA set from the shared source
|
|
113
|
+
collection. Repeated contexts select their union; `--context-match all` selects
|
|
114
|
+
their intersection. It reuses source records already downloaded for the
|
|
115
|
+
collection, so overlapping contexts do not create conflicting copies of a
|
|
116
|
+
reference.
|
|
117
|
+
|
|
118
|
+
```sh
|
|
119
|
+
orfdata viral contexts
|
|
120
|
+
orfdata download viral --context cancer # all 200 GDC screening references
|
|
121
|
+
# Once another listed context is published, select its union or intersection:
|
|
122
|
+
orfdata download viral --context cancer-transcriptome-screening --context <another-listed-context>
|
|
123
|
+
orfdata download viral --context cancer-transcriptome-screening --context <another-listed-context> --context-match all
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The target species is an admission and organization choice for the reference
|
|
127
|
+
set. It does not replace a source record's viral taxon or assert that the source
|
|
128
|
+
declared a host. Unknown source-host metadata remains unknown.
|
|
129
|
+
|
|
130
|
+
The four facts stay separate in the downloaded tables and FASTA headers:
|
|
131
|
+
the versioned viral accession and CDS feature identify the source product;
|
|
132
|
+
collection and context record where it was selected; the target species records
|
|
133
|
+
the analysis it supports; and a source-host taxon is populated only when the
|
|
134
|
+
source establishes one. This keeps the same reference idempotent when it is
|
|
135
|
+
obtained through several collections or exporter paths.
|
|
136
|
+
|
|
137
|
+
The published GDC source inventory is named `GRCh38.d1.vd1`; `gdc-viruses` is
|
|
138
|
+
the ORFdata collection name for its 200 references for human analysis.
|
|
139
|
+
|
|
140
|
+
Use the full GDC collection for broad screening. For its three cancer
|
|
141
|
+
selections, list named subsets with `orfdata viral subsets`:
|
|
142
|
+
|
|
143
|
+
```sh
|
|
144
|
+
orfdata download viral --subset cancer-integrated-driver
|
|
145
|
+
orfdata download viral --subset cancer-causing
|
|
146
|
+
orfdata download viral --subset cancer-associated
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
`cancer-causing` is the 20-reference IARC Group 1 selection.
|
|
150
|
+
`cancer-associated` is its 37-reference Group 1, 2A and 2B superset.
|
|
151
|
+
`cancer-integrated-driver` contains the 12 Group 1 HPV types, HBV, HTLV-1 and
|
|
152
|
+
MCV. The remaining 163 GDC entries are 162 HPV references outside those IARC
|
|
153
|
+
tiers plus SV40; their absence from the cancer-associated set does not establish
|
|
154
|
+
that they are biologically irrelevant. IARC Group 3 means an agent is not
|
|
155
|
+
classifiable as to carcinogenicity in humans; it is not a safety finding. Future
|
|
156
|
+
respiratory and autoimmune contexts can overlap the GDC screening context.
|
|
157
|
+
|
|
158
|
+
## Three layers, named separately
|
|
159
|
+
|
|
160
|
+
A downloaded collection keeps the molecular layers apart, and ORFdata uses the
|
|
161
|
+
same three words everywhere for them:
|
|
162
|
+
|
|
163
|
+
| Layer | Molecule | Files | What it is |
|
|
164
|
+
| --- | --- | --- | --- |
|
|
165
|
+
| `genome` | DNA | `genomes.fasta`, `genomes.tsv` | Viral genomic DNA: the same molecules a DNA reference such as `GRCh38.d1.vd1` carries as extra contigs |
|
|
166
|
+
| `transcriptome` | RNA | `transcripts.fasta`, `transcripts.tsv`, `annotation.gtf` | One coding transcript per source-annotated CDS feature, spliced, placed on the genome |
|
|
167
|
+
| `proteome` | protein | `proteins.fasta` | The source translation of each coding transcript |
|
|
168
|
+
|
|
169
|
+
A viral genome is not a transcript and a coding transcript is not a protein, so
|
|
170
|
+
nothing in the cache mixes them: each layer has its own FASTA, its own
|
|
171
|
+
identifiers and its own record count. Every transcript also records which
|
|
172
|
+
source annotated it, and which end, if either, that source marks as running
|
|
173
|
+
past the record.
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
from orfdata import open_viral_references
|
|
177
|
+
|
|
178
|
+
references = open_viral_references(species="human")
|
|
179
|
+
for layer in references.layers:
|
|
180
|
+
print(layer.name, layer.molecule, layer.records, layer.fasta)
|
|
181
|
+
transcriptome = references.layer("transcriptome")
|
|
182
|
+
print(transcriptome.annotation) # annotation.gtf
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Summarize an installed collection, or one selection of it, without writing
|
|
186
|
+
anything:
|
|
187
|
+
|
|
188
|
+
```sh
|
|
189
|
+
orfdata viral summary
|
|
190
|
+
orfdata viral summary --subset cancer-causing --json
|
|
191
|
+
orfdata viral completeness --incomplete
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Because the GTF, transcript FASTA and protein FASTA share identifiers, the set
|
|
195
|
+
opens as a PyEnsembl genome for downstream variant tools — see
|
|
196
|
+
[Downstream tools](downstream.md).
|
|
197
|
+
|
|
198
|
+
## Cache output
|
|
199
|
+
|
|
200
|
+
Downloads have a canonical, versioned path under `ORFDATA_CACHE`,
|
|
201
|
+
`OPENVAX_DATA_CACHE`, or the normal OpenVax cache. This is why the command does
|
|
202
|
+
not require `--output`: an arbitrary export path would also need to define
|
|
203
|
+
resource identity, update and verification behavior. Use `--cache-root` to put
|
|
204
|
+
the managed cache elsewhere. The command prints the installed paths; add
|
|
205
|
+
`--json` for structured output.
|
|
206
|
+
|
|
207
|
+
## Python acquisition convention
|
|
208
|
+
|
|
209
|
+
ORFdata follows the OpenVax split between explicit acquisition and offline
|
|
210
|
+
lookup:
|
|
211
|
+
|
|
212
|
+
```python
|
|
213
|
+
from orfdata import ViralReferenceFiles, download_viral_references, open_viral_references
|
|
214
|
+
|
|
215
|
+
download_viral_references(collection="gdc-viruses")
|
|
216
|
+
references: ViralReferenceFiles = open_viral_references(collection="gdc-viruses")
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
The convenience form is explicit and opt-in:
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
references = open_viral_references(collection="gdc-viruses", download_if_missing=True)
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Context selection is a separate, type-stable API. It returns paths and counts
|
|
226
|
+
for a derived reference set; it uses the installed collection above and fetches it only
|
|
227
|
+
when requested:
|
|
228
|
+
|
|
229
|
+
```python
|
|
230
|
+
from orfdata import select_viral_references
|
|
231
|
+
|
|
232
|
+
cancer = select_viral_references(
|
|
233
|
+
subsets=["cancer-causing"],
|
|
234
|
+
species="human",
|
|
235
|
+
download_if_missing=True,
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
integrated_drivers = select_viral_references(
|
|
239
|
+
subsets=["cancer-integrated-driver"],
|
|
240
|
+
download_if_missing=True,
|
|
241
|
+
)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The default is `download_if_missing=False`, so opening or inspecting a resource
|
|
245
|
+
does not unexpectedly use the network. The name matches the lower-level
|
|
246
|
+
PyEnsembl/DataCache convention; high-level PyEnsembl and MHCflurry workflows
|
|
247
|
+
also expose explicit download or fetch commands.
|
|
248
|
+
|
|
249
|
+
Across ORFdata download APIs, repeated acquisition reuses a valid installation
|
|
250
|
+
and `force=True` refreshes or repairs it, status objects provide `to_dict()`,
|
|
251
|
+
human CLI output is the default, and `--json` provides machine-readable output.
|
|
252
|
+
|
|
253
|
+
A derived selection is local: `select_viral_references(force=True)` rebuilds it from
|
|
254
|
+
the cached collection without downloading, and a damaged selection is rebuilt rather
|
|
255
|
+
than reported, since nothing in it is unrecoverable. Adding
|
|
256
|
+
`download_if_missing=True` to that call lets it repair the source collection too,
|
|
257
|
+
which does download.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Use ORFdata with varcode, isovar, topiary and vaxrank
|
|
2
|
+
|
|
3
|
+
Those tools read a [PyEnsembl](https://github.com/openvax/pyensembl) genome: a
|
|
4
|
+
GTF of transcript models, plus transcript and protein FASTAs whose identifiers
|
|
5
|
+
match the GTF. ORFdata writes exactly that for the two things a reference
|
|
6
|
+
annotation leaves out — noncanonical ORFs and viral references — so a variant
|
|
7
|
+
in either gets a coding consequence from the same tools that annotate reference
|
|
8
|
+
transcripts.
|
|
9
|
+
|
|
10
|
+
## Three layers, three jobs
|
|
11
|
+
|
|
12
|
+
ORFdata keeps the molecular layers apart and names them the same way in every
|
|
13
|
+
command and API:
|
|
14
|
+
|
|
15
|
+
| Layer | Molecule | What it answers | Who reads it |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| `genome` | DNA | Where a read or a variant call sits | Aligners; the contigs a VCF names |
|
|
18
|
+
| `transcriptome` | RNA | What a variant does to a reading frame | varcode, isovar |
|
|
19
|
+
| `proteome` | protein | Which peptide a patient could present | topiary, vaxrank, MS search |
|
|
20
|
+
|
|
21
|
+
A DNA reference such as GDC's `GRCh38.d1.vd1` is the genome layer: human
|
|
22
|
+
chromosomes plus the viral sequences as extra contigs. It carries no transcript
|
|
23
|
+
models and no proteins, which is what the other two layers supply.
|
|
24
|
+
|
|
25
|
+
## Viral transcripts in a tumour sample
|
|
26
|
+
|
|
27
|
+
Install the collection, or one cancer subset of it, and open it as a genome:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
orfdata download viral --species human --subset cancer-causing
|
|
31
|
+
orfdata viral summary --subset cancer-causing
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from varcode import Variant
|
|
36
|
+
|
|
37
|
+
from orfdata import select_viral_references, viral_genome
|
|
38
|
+
|
|
39
|
+
references = select_viral_references(
|
|
40
|
+
subsets=["cancer-causing"], species="human", download_if_missing=True
|
|
41
|
+
)
|
|
42
|
+
genome = viral_genome(references) # A PyEnsembl genome over the viral contigs.
|
|
43
|
+
|
|
44
|
+
variant = Variant(contig="AY446894.2", start=1500, ref="C", alt="T", genome=genome)
|
|
45
|
+
print(variant.effects().top_priority_effect().short_description)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`viral_genome()` indexes the set's `annotation.gtf`, `transcripts.fasta` and
|
|
49
|
+
`proteins.fasta` into a PyEnsembl database kept beside the cache, never inside
|
|
50
|
+
the checksummed reference directory. The same object goes to isovar with the
|
|
51
|
+
tumour RNA alignment, and to topiary or vaxrank with an MHC predictor, wherever
|
|
52
|
+
those take a genome.
|
|
53
|
+
|
|
54
|
+
Four things are worth knowing before the first run:
|
|
55
|
+
|
|
56
|
+
- **Contig names are the source `accession.version`**, such as `AY446894.2`,
|
|
57
|
+
because that is the record the sequences and the annotation come from.
|
|
58
|
+
`genomes.tsv` keeps the inventory's `source_genbank` and `source_refseq`
|
|
59
|
+
spellings beside it, so you can map the names your alignment used.
|
|
60
|
+
- **A non-standard genetic code is carried**, as `transl_table` on the
|
|
61
|
+
transcript and CDS rows, so PyEnsembl translates with the code the source
|
|
62
|
+
record declares.
|
|
63
|
+
- **A partial or frameshifted source CDS gets no start or stop codon rows**, so
|
|
64
|
+
effect predictors will not translate it. `annotation_complete` says which
|
|
65
|
+
transcripts are whole and `partial` says which end the source marks as
|
|
66
|
+
running past the record: 78 of 1,703, mostly HPV E4 and E5 ORFs that are
|
|
67
|
+
really expressed from spliced transcripts, plus HIV-1's `pol`, which is a
|
|
68
|
+
Gag-Pol frameshift fusion. HPV16's E6, E7, E1, E2, L1 and L2 are complete,
|
|
69
|
+
and HBV's polymerase is joined back together across the circular origin, so
|
|
70
|
+
variants on either side of it get a coding consequence.
|
|
71
|
+
- **A coding transcript here is the CDS span**, not a UTR-containing mRNA. The
|
|
72
|
+
source records annotate 1,678 CDS features but only 39 `mRNA` features, so
|
|
73
|
+
the transcriptome layer is built from the CDS features and says so rather
|
|
74
|
+
than inventing transcript bounds.
|
|
75
|
+
- **Three source records annotate no CDS at all** — HPV2, HPV8 and HPV51 — so
|
|
76
|
+
their coding features come from PaVE instead, on the identical sequence, and
|
|
77
|
+
every transcript records which source annotated it. Use `--no-annotation-fill`
|
|
78
|
+
to keep strictly to the GenBank submissions; `orfdata viral summary` then
|
|
79
|
+
names the genomes that are left without transcripts. For the opposite
|
|
80
|
+
trade — one source's uniform, spliced gene models everywhere it publishes
|
|
81
|
+
the same molecule, in place of each submission's own naming — use
|
|
82
|
+
`--alternate-annotations`, which leaves the genome FASTA byte-identical and
|
|
83
|
+
adds 235 coding transcripts across the GDC collection. `orfdata viral
|
|
84
|
+
completeness` shows what either choice leaves on the table.
|
|
85
|
+
- A transcript's `initiation` says how the source starts it (`atg`,
|
|
86
|
+
`alternative`, `declared`, `non_canonical`, `partial`, `unknown`) and
|
|
87
|
+
`recoding` names any frameshift the source claims. Effect predictors handle
|
|
88
|
+
a non-canonical start correctly, because the protein a source publishes is
|
|
89
|
+
the one in `proteins.fasta`; they do not handle a variant at the base a
|
|
90
|
+
ribosomal-frameshift join reads twice, which is two positions in HTLV-1.
|
|
91
|
+
|
|
92
|
+
## Noncanonical ORFs
|
|
93
|
+
|
|
94
|
+
Build a proteome as usual and ask for the matching annotation:
|
|
95
|
+
|
|
96
|
+
```sh
|
|
97
|
+
orfdata proteome --species human --release 115 --nc-orf-sources ms \
|
|
98
|
+
--output proteins.fasta --annotation ncorfs/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
That writes `ncorfs/annotation.gtf`, `ncorfs/transcripts.fasta` and
|
|
102
|
+
`ncorfs/proteins.fasta`: one coding transcript per ncORF, placed on its host
|
|
103
|
+
gene, with the spliced coding sequence and the translation. In Python the same
|
|
104
|
+
is `proteome.write_annotation("ncorfs")`.
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
from pyensembl import Genome
|
|
108
|
+
|
|
109
|
+
genome = Genome(
|
|
110
|
+
reference_name="GRCh38",
|
|
111
|
+
annotation_name="orfdata-ncorfs",
|
|
112
|
+
annotation_version="1",
|
|
113
|
+
gtf_path_or_url="ncorfs/annotation.gtf",
|
|
114
|
+
transcript_fasta_paths_or_urls=["ncorfs/transcripts.fasta"],
|
|
115
|
+
protein_fasta_paths_or_urls=["ncorfs/proteins.fasta"],
|
|
116
|
+
cache_directory_path="ncorfs/index",
|
|
117
|
+
)
|
|
118
|
+
genome.index()
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
A variant inside an ncORF now has a protein consequence — a stop gained in a
|
|
122
|
+
lncRNA ORF reads as `p.K2*` rather than disappearing into "non-coding
|
|
123
|
+
transcript".
|
|
124
|
+
|
|
125
|
+
To keep the reference transcripts as well, concatenate the files instead of
|
|
126
|
+
replacing them. PyEnsembl takes several FASTAs, and the ncORF GTF writes no
|
|
127
|
+
`gene` rows precisely so it can be appended to an annotation that has them:
|
|
128
|
+
|
|
129
|
+
```sh
|
|
130
|
+
cat Homo_sapiens.GRCh38.115.gtf ncorfs/annotation.gtf > combined.gtf
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
genome = Genome(
|
|
135
|
+
reference_name="GRCh38", annotation_name="ensembl-plus-ncorfs", annotation_version="115",
|
|
136
|
+
gtf_path_or_url="combined.gtf",
|
|
137
|
+
transcript_fasta_paths_or_urls=["Homo_sapiens.GRCh38.cdna.all.fa", "ncorfs/transcripts.fasta"],
|
|
138
|
+
protein_fasta_paths_or_urls=["Homo_sapiens.GRCh38.pep.all.fa", "ncorfs/proteins.fasta"],
|
|
139
|
+
cache_directory_path="combined/index",
|
|
140
|
+
)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
For the models alone, without building a proteome, the query command writes the
|
|
144
|
+
same GTF rows for any selection:
|
|
145
|
+
|
|
146
|
+
```sh
|
|
147
|
+
orfdata --evidence ms --format gtf > ncorfs.gtf
|
|
148
|
+
orfdata --gene LARP4B --format gtf
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Two deliberate choices in that file:
|
|
152
|
+
|
|
153
|
+
- ncORF transcripts are marked `transcript_biotype "protein_coding"`, because
|
|
154
|
+
each has a complete CDS with start and stop codons and effect predictors only
|
|
155
|
+
translate transcripts marked that way. The source's own category stays in
|
|
156
|
+
`orf_biotype`, and the host transcript in `host_transcript_id`.
|
|
157
|
+
- The transcript is the ORF's coding path, so its identifier is the catalogue's
|
|
158
|
+
`orf_id`. The protein is `<orf_id>.p`. Nothing is renamed to look like an
|
|
159
|
+
Ensembl accession.
|
|
160
|
+
|
|
161
|
+
## What this does not claim
|
|
162
|
+
|
|
163
|
+
An ORF model here is a catalogue ORF placed on an assembly, with the evidence
|
|
164
|
+
the source reported; a predicted coding consequence is not evidence that a
|
|
165
|
+
stable protein exists or that a peptide is presented. Viral collection and
|
|
166
|
+
context membership record where a reference was selected, not that a virus
|
|
167
|
+
drives a particular tumour. The layers stay separate so each of those questions
|
|
168
|
+
can be asked of the right one.
|
|
@@ -12,13 +12,23 @@ is a recorded host of the virus.
|
|
|
12
12
|
Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
python -m pip install 'orfdata[pyensembl,
|
|
15
|
+
python -m pip install 'orfdata[pyensembl,build-data]'
|
|
16
16
|
pyensembl install --release 115 --species human
|
|
17
17
|
orfdata setup --species human --catalogs all # For ncORF presets and "all"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
Viral support is part of the base install; only the data is downloaded. Get
|
|
21
|
+
the human GDC viral references — genomes, coding transcripts and proteins, as
|
|
22
|
+
three named layers — with `orfdata download viral --species human`. Use
|
|
23
|
+
`orfdata download list` to see every known resource and `orfdata download
|
|
24
|
+
status` to see what is local. To annotate variants in viral transcripts or
|
|
25
|
+
noncanonical ORFs with varcode, isovar, topiary or vaxrank, see
|
|
26
|
+
[Downstream tools](downstream.md).
|
|
27
|
+
|
|
28
|
+
The second command downloads and indexes Ensembl 115 for human GRCh38. Opening
|
|
29
|
+
ORFdata resources never downloads them implicitly; use the explicit commands
|
|
30
|
+
under `orfdata download` or the corresponding PyEnsembl command when data is
|
|
31
|
+
missing.
|
|
22
32
|
|
|
23
33
|
## Build a human proteome
|
|
24
34
|
|