orfdata 0.27.1__tar.gz → 0.28.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.27.1 → orfdata-0.28.0}/MANIFEST.in +2 -0
- {orfdata-0.27.1/orfdata.egg-info → orfdata-0.28.0}/PKG-INFO +10 -7
- {orfdata-0.27.1 → orfdata-0.28.0}/README.md +9 -6
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/catalogs.md +181 -38
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/coverage.md +4 -3
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/index.md +8 -7
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/proteome.md +37 -23
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/reference.md +16 -14
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/__init__.py +7 -0
- orfdata-0.28.0/orfdata/_pinned_genome.py +18 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/build.py +4 -4
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/catalog.py +97 -58
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/catalog_cli.py +8 -2
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/catalogs.py +16 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/cli.py +65 -7
- orfdata-0.28.0/orfdata/data/catalogs.json +307 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/chains.json +24 -0
- orfdata-0.28.0/orfdata/data/genomes.json +30 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/evidence.py +85 -18
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/evidence_summary.py +3 -3
- orfdata-0.28.0/orfdata/genomes.py +146 -0
- orfdata-0.28.0/orfdata/genomes_cli.py +39 -0
- orfdata-0.28.0/orfdata/install.py +137 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/liftover.py +3 -2
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/proteome.py +39 -19
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/proteome_cli.py +26 -11
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/reference.py +2 -1
- orfdata-0.28.0/orfdata/sources/ncorf_mammals.py +176 -0
- orfdata-0.28.0/orfdata/sources/riborf.py +163 -0
- orfdata-0.28.0/orfdata/version.py +1 -0
- {orfdata-0.27.1 → orfdata-0.28.0/orfdata.egg-info}/PKG-INFO +10 -7
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata.egg-info/SOURCES.txt +21 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/pyproject.toml +1 -1
- orfdata-0.28.0/tests/data/ncorf_mammals/README.md +20 -0
- orfdata-0.28.0/tests/data/ncorf_mammals/S3.xlsx +0 -0
- orfdata-0.28.0/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
- orfdata-0.28.0/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
- orfdata-0.28.0/tests/data/ncorf_mammals/mouse.bed +6 -0
- orfdata-0.28.0/tests/data/ncorf_mammals/mouse.pep.fa +12 -0
- orfdata-0.28.0/tests/data/riborf/README.md +21 -0
- orfdata-0.28.0/tests/data/riborf/SD3.xlsx +0 -0
- orfdata-0.28.0/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
- orfdata-0.28.0/tests/data/riborf/ensembl107.gtf.gz +0 -0
- orfdata-0.28.0/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_catalog_registry.py +24 -7
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_evidence_rules.py +139 -28
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_evidence_summary.py +8 -8
- orfdata-0.28.0/tests/test_genomes.py +102 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_initiation_context.py +1 -1
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_liftover.py +38 -10
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_merge_catalogs.py +10 -1
- orfdata-0.28.0/tests/test_ncorf_mammals.py +170 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_openprot.py +4 -2
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_proteome.py +14 -6
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_reference_orf.py +9 -6
- orfdata-0.28.0/tests/test_riborf.py +107 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_uorf_catalog.py +16 -16
- orfdata-0.27.1/orfdata/data/catalogs.json +0 -105
- orfdata-0.27.1/orfdata/version.py +0 -1
- {orfdata-0.27.1 → orfdata-0.28.0}/LICENSE +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/deploy.sh +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/copy-yeast.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/examples.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/human-tissue.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/ingolia-yeast.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/measurements.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/pairing.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/pfizer-protein.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/pfizer-rna.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/search-references.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/source-references.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/species.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/storage.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs/stylesheets/docs.css +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/docs.sh +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/lint.sh +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/mkdocs.yml +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/_structure.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/catalog_manifest.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/datasets.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/dataset.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/dataset_cli.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/datasets.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/liftover_cli.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/measurements.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/model.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/pairing.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/rna.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/search_reference.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sequence.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/__init__.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/copy.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/ingolia.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/openprot.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/pfizer.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/pfizer_rna.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata/sources/wang.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/setup.cfg +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/test.sh +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/conftest.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/aggregate_evidence.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/ingolia/readMe.txt.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/README.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/ensembl106.gtf.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/counts.csv.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/dog-expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/dog-manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/mouse-expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/pfizer_rna/samples.xlsx +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/README.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/ensembl115.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/mitochondrial.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/references/uniprot_literature.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/regions/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/regions/ingolia.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/search_reference/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/search_reference/dog.fasta +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/search_reference/ensembl83-expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/search_reference/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/README.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/generate.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v1.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v2.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v3.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/NOTICE.md +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/annotation.gtf.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/copies.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/expected.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/manifest.json +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/protein.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/rna.zip +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/data/wang/search.fasta.gz +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_copy.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_ensembl_search_reference.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_genetic_codes.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_ingolia.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_local_build_queries.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_measurements.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_orf_cases.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_paired_selectors.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_pairing.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_pfizer.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_pfizer_rna.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_region_targets.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_search_reference.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_selectors.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_storage.py +0 -0
- {orfdata-0.27.1 → orfdata-0.28.0}/tests/test_wang.py +0 -0
|
@@ -8,3 +8,5 @@ recursive-include tests/data/search_reference *.gz
|
|
|
8
8
|
recursive-include tests/data/wang *.zip *.gz
|
|
9
9
|
recursive-include tests/data/ingolia *.gz *.txt
|
|
10
10
|
recursive-include tests/data/openprot *.zip *.gz
|
|
11
|
+
recursive-include tests/data/ncorf_mammals *.bed *.fa *.xlsx *.gz *.md
|
|
12
|
+
recursive-include tests/data/riborf *.xlsx *.gz *.md
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.28.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
|
|
@@ -81,16 +81,19 @@ orfdata proteome --species human --release 115 --output human-e115.fasta
|
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
A translated ORF or a detected peptide does not by itself establish a stable,
|
|
84
|
-
functional protein. Most MS support in the bundled catalogue comes from
|
|
85
|
-
peptides
|
|
84
|
+
functional protein. Most MS support in the bundled human catalogue comes from
|
|
85
|
+
immunopeptidomics: peptides eluted from HLA molecules.
|
|
86
86
|
|
|
87
87
|
## Species
|
|
88
88
|
|
|
89
|
-
The bundled noncanonical ORF catalogue is human GRCh38. Mouse
|
|
90
|
-
|
|
91
|
-
from OpenProt
|
|
89
|
+
The bundled noncanonical ORF catalogue is human GRCh38. Mouse has 48,805:
|
|
90
|
+
Ribo-seq ORFs of Chang et al. 2025 and Yang et al. 2024, and 2,976 MS-supported
|
|
91
|
+
ones from OpenProt 2.2;
|
|
92
|
+
`pip install "orfdata[data,build-data]"` then `orfdata setup --species mouse`
|
|
93
|
+
builds all three from their sources' own files. After `orfdata chains download` (add
|
|
92
94
|
`--accept-terms` for UCSC's non-commercial mouse chains), older assemblies
|
|
93
|
-
(GRCh37, NCBI36, GRCm38, NCBIM37) use these catalogues lifted
|
|
95
|
+
(GRCh37, NCBI36, GRCm38, NCBIM37) and T2T-CHM13 use these catalogues lifted
|
|
96
|
+
to them; `orfdata genomes install t2t-chm13` installs a CHM13 annotation. Dog and yeast proteomes contain their
|
|
94
97
|
PyEnsembl-annotated proteins. `load_catalog(species=...)` and
|
|
95
98
|
`with_extra_orfs()` pick the catalogue for a species and raise when none is
|
|
96
99
|
available or built.
|
|
@@ -51,16 +51,19 @@ orfdata proteome --species human --release 115 --output human-e115.fasta
|
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
A translated ORF or a detected peptide does not by itself establish a stable,
|
|
54
|
-
functional protein. Most MS support in the bundled catalogue comes from
|
|
55
|
-
peptides
|
|
54
|
+
functional protein. Most MS support in the bundled human catalogue comes from
|
|
55
|
+
immunopeptidomics: peptides eluted from HLA molecules.
|
|
56
56
|
|
|
57
57
|
## Species
|
|
58
58
|
|
|
59
|
-
The bundled noncanonical ORF catalogue is human GRCh38. Mouse
|
|
60
|
-
|
|
61
|
-
from OpenProt
|
|
59
|
+
The bundled noncanonical ORF catalogue is human GRCh38. Mouse has 48,805:
|
|
60
|
+
Ribo-seq ORFs of Chang et al. 2025 and Yang et al. 2024, and 2,976 MS-supported
|
|
61
|
+
ones from OpenProt 2.2;
|
|
62
|
+
`pip install "orfdata[data,build-data]"` then `orfdata setup --species mouse`
|
|
63
|
+
builds all three from their sources' own files. After `orfdata chains download` (add
|
|
62
64
|
`--accept-terms` for UCSC's non-commercial mouse chains), older assemblies
|
|
63
|
-
(GRCh37, NCBI36, GRCm38, NCBIM37) use these catalogues lifted
|
|
65
|
+
(GRCh37, NCBI36, GRCm38, NCBIM37) and T2T-CHM13 use these catalogues lifted
|
|
66
|
+
to them; `orfdata genomes install t2t-chm13` installs a CHM13 annotation. Dog and yeast proteomes contain their
|
|
64
67
|
PyEnsembl-annotated proteins. `load_catalog(species=...)` and
|
|
65
68
|
`with_extra_orfs()` pick the catalogue for a species and raise when none is
|
|
66
69
|
available or built.
|
|
@@ -7,19 +7,23 @@ the same explicit discovery, download, build and offline-open workflow as
|
|
|
7
7
|
downloaded or built, `load_catalog(species=...)` opens it, so `extra_orfs(genome)` and
|
|
8
8
|
`Proteome.with_extra_orfs()` use it without `catalog=`; pass
|
|
9
9
|
`load_catalog(species=..., registry=...)` as `catalog=` for your own registry.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
Every catalogue for the species is used, merged: those on the requested
|
|
11
|
+
assembly as they are, and those on another assembly the pinned chains reach,
|
|
12
|
+
lifted ([details](#every-assembly-of-a-species)). Each catalogue contributes its
|
|
13
|
+
release on the requested assembly if it has one, else its default release. It
|
|
14
|
+
returns the existing `ORFCatalog`; query results still bind to the
|
|
14
15
|
original PyEnsembl transcript through `ReferenceORF`. To use several catalogues
|
|
15
16
|
for one species together, see
|
|
16
17
|
[merging catalogues](proteome.md#merging-catalogues).
|
|
17
18
|
|
|
18
|
-
The packaged registry has
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
The packaged registry has three mouse catalogues, each built from its sources'
|
|
20
|
+
own files: [OpenProt's MS-supported ORFs](#mouse-orfs-from-openprot),
|
|
21
|
+
[Chang et al.'s Ribo-seq ORFs](#mouse-ribo-seq-orfs-chang-et-al) and
|
|
22
|
+
[Yang et al.'s RibORF ORFs](#mouse-riborf-orfs-yang-et-al). `orfdata setup
|
|
23
|
+
--species mouse` installs all three, with the chain files. `orfdata catalogs status`
|
|
24
|
+
(in Python, `catalog_status()`) lists every catalogue `load_catalog` can open,
|
|
25
|
+
the bundled one included, with its species, assembly, record count, whether it
|
|
26
|
+
is installed and whether it is used:
|
|
23
27
|
|
|
24
28
|
```sh
|
|
25
29
|
orfdata catalogs status
|
|
@@ -61,22 +65,119 @@ evidence filters, and JSON/TSV/FASTA exports. They cannot override the selected
|
|
|
61
65
|
release with a local `--catalog` argument. Use `orfdata --catalog FILE` for the
|
|
62
66
|
existing standalone local-file workflow.
|
|
63
67
|
|
|
68
|
+
## Mouse
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
pip install "orfdata[data,build-data]"
|
|
72
|
+
orfdata setup --species mouse --accept-terms # Three catalogues and the chains; about 130 MB of sources
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`orfdata setup` builds each registered mouse catalogue from its pinned sources
|
|
76
|
+
and downloads the chain files (`--accept-terms` for UCSC's non-commercial
|
|
77
|
+
GRCm38/GRCm39 chains). It prints what it did with each: built, downloaded,
|
|
78
|
+
already installed, repaired or skipped. If one fails, the rest are still
|
|
79
|
+
installed and it exits with status 1, naming each failure; in Python,
|
|
80
|
+
`install_species` raises `InstallError`, whose `result` holds the same
|
|
81
|
+
report. `load_catalog(species="mouse")` then merges the three,
|
|
82
|
+
in this order, into 48,805 ORFs: 2,976 MS-supported OpenProt ORFs, 16,484
|
|
83
|
+
Ribo-seq ORFs of Chang et al. and 40,089 of Yang et al. 10,448 of Chang's and
|
|
84
|
+
Yang's ORFs are the same ORF (28 of them also in OpenProt), and 296 OpenProt
|
|
85
|
+
ORFs have Ribo-seq support from one or both, 242 from Yang et al. alone. On
|
|
86
|
+
Ensembl 115 (GRCm39):
|
|
87
|
+
|
|
88
|
+
| Evidence | Selected | Added to the proteome |
|
|
89
|
+
| --- | ---: | ---: |
|
|
90
|
+
| `"ms"` (default) | 2,976 | 2,854 |
|
|
91
|
+
| `RiboSeq()` | 46,207 | 46,094 |
|
|
92
|
+
| `RiboSeq() & MS()` | 378 | 371 |
|
|
93
|
+
| `None` | 48,805 | 48,577 |
|
|
94
|
+
|
|
95
|
+
Loading the merged catalogue takes about 10 seconds and 0.9 GB of memory, once
|
|
96
|
+
per process, whichever evidence is selected. On GRCm38 and NCBIM37 all three
|
|
97
|
+
are [lifted automatically](#every-assembly-of-a-species). Dog has no
|
|
98
|
+
experimentally supported ORF catalogue from any source: OpenProt and the
|
|
99
|
+
Ribo-seq resources have no dog data, and dog MS studies searched only canonical
|
|
100
|
+
proteins.
|
|
101
|
+
|
|
102
|
+
### Mouse Ribo-seq ORFs (Chang et al.)
|
|
103
|
+
|
|
104
|
+
`ncorf-mammals-mouse` holds the mouse ncORFs of Chang et al.
|
|
105
|
+
(eLife 2025, [doi:10.7554/eLife.109128](https://doi.org/10.7554/eLife.109128)):
|
|
106
|
+
16,484 of the source's 16,485,
|
|
107
|
+
called with PRICE, RiboCode and Ribo-TISH on Ensembl 107: an ORF is kept when at
|
|
108
|
+
least two callers find it in a library, in at least two libraries, starting at
|
|
109
|
+
ATG, CTG, GTG or TTG. Its types are uORF (8,294), lncORF (3,576), uoORF
|
|
110
|
+
(1,950), iORF (1,749), dORF (741) and doORF (174).
|
|
111
|
+
|
|
112
|
+
- **Sources.** The authors' BED and protein FASTA (MIT, pinned commit), the
|
|
113
|
+
paper's Table S3 (CC BY 4.0) and Ensembl 107's GTF; about 40 MB. Building
|
|
114
|
+
needs `orfdata[build-data]` for the spreadsheet.
|
|
115
|
+
- **Coding paths.** The BED garbles multi-exon block sizes, so each ORF's
|
|
116
|
+
path comes from its representative transcript and transcript coordinates
|
|
117
|
+
in Ensembl 107, checked against its genomic start, stop, BED span and
|
|
118
|
+
protein length. 16,484 resolve; one without a stop codon is listed as
|
|
119
|
+
unresolved. All 16,484 bind to their Ensembl 107 transcript with their exact
|
|
120
|
+
coding path and protein; 16,470 place on Ensembl 115.
|
|
121
|
+
- **Starts.** The source writes GTG-initiated proteins with valine. A
|
|
122
|
+
near-cognate start is read by the initiator methionine, so these proteins
|
|
123
|
+
begin with M, and their records declare the GTG start (CTG and TTG are
|
|
124
|
+
already starts of the standard code).
|
|
125
|
+
- **Evidence.** Each ORF's library and caller counts become aggregate
|
|
126
|
+
Ribo-seq summaries, so `RiboSeq()` selects every ORF and `MS()` none.
|
|
127
|
+
The libraries aren't named per ORF, so `RiboSeq(min_studies=2)` selects
|
|
128
|
+
none.
|
|
129
|
+
|
|
130
|
+
### Mouse RibORF ORFs (Yang et al.)
|
|
131
|
+
|
|
132
|
+
`riborf-mouse` holds the mouse ORFs that RibORF 2.0 identified as translated in
|
|
133
|
+
the Ribo-seq data of Yang et al. (Nat Commun 2024,
|
|
134
|
+
[doi:10.1038/s41467-024-46240-9](https://doi.org/10.1038/s41467-024-46240-9);
|
|
135
|
+
224 samples in 26 GEO series), of at least 5 residues: uORF (20,399), lncORF
|
|
136
|
+
(6,954), dORF (4,075), uoORF (3,037), iORF (2,370), N-terminal truncation
|
|
137
|
+
(2,047) and extension (575), and doORF (632). The source's ouORF, odORF and
|
|
138
|
+
noncoding types take Chang et al.'s names, so `--biotype uoORF` finds both
|
|
139
|
+
sources' overlapping uORFs. Annotated CDSs, likely sequencing errors,
|
|
140
|
+
stop-codon readthrough and 12,222 ORFs shorter than Chang et al.'s shortest (5
|
|
141
|
+
residues; 4,505 are a bare start and stop) are not imported.
|
|
142
|
+
|
|
143
|
+
- **Placement.** The source gives mm10 / GENCODE vM25 transcript coordinates
|
|
144
|
+
(a 1-based start, an exclusive end) and no proteins. Rather than lift mm10
|
|
145
|
+
through a restricted chain, each ORF is placed on the same transcript in
|
|
146
|
+
Ensembl 107 GRCm39 and translated from that transcript's sequence. Of the
|
|
147
|
+
41,906 rows long enough, 40,089 resolve. Listed as unresolved, with the
|
|
148
|
+
reason: 1,393 rows on 633 transcripts that changed length since GENCODE
|
|
149
|
+
vM25, 338 on 216 TEC transcripts that Ensembl 107 has in its GTF but in
|
|
150
|
+
neither FASTA, 85 on 51 transcripts that are gone, and one whose
|
|
151
|
+
transcript's sequence changed at the same length. Placing through the
|
|
152
|
+
transcript gives the same coding path as lifting the source's mm10 blocks
|
|
153
|
+
through UCSC's chain for all but 2, in a duplicated region of chr14 where
|
|
154
|
+
the chain is ambiguous. 39,983 place on Ensembl 115.
|
|
155
|
+
- **Sources.** Supplementary Data 3 (CC BY 4.0) and Ensembl 107's GTF, cDNA
|
|
156
|
+
and ncRNA FASTAs; about 115 MB, of which the 32 MB GTF is the one Chang et
|
|
157
|
+
al.'s catalogue uses, so `orfdata setup` downloads it once. Building needs
|
|
158
|
+
`orfdata[build-data]`.
|
|
159
|
+
- **Evidence.** Presence in the source's set is aggregate Ribo-seq support:
|
|
160
|
+
`RiboSeq()` selects every ORF, `RiboSeq(min_studies=2)` none.
|
|
161
|
+
- **IDs.** `riborf_` and the GRCm39 start and stop, such as
|
|
162
|
+
`riborf_4_120262600_120262620_+`, never a name Chang et al. use. Two paths
|
|
163
|
+
with the same start and stop add their transcript (`…@ENSMUST00000226495.2`),
|
|
164
|
+
and a lookup by the shared name lists both, as for OpenProt's split
|
|
165
|
+
accessions. An ORF in both sets merges by its coding path and protein,
|
|
166
|
+
whatever its name, and keeps Chang et al.'s ID; its `riborf_` ID still
|
|
167
|
+
finds it.
|
|
168
|
+
|
|
64
169
|
## Mouse ORFs from OpenProt
|
|
65
170
|
|
|
66
171
|
`openprot-mouse` holds the alternative proteins (AltProts) and novel isoforms
|
|
67
172
|
that [OpenProt 2.2](https://openprot.org) reports for mouse with at least two
|
|
68
173
|
unique MS peptides, on Ensembl 106 GRCm39 transcripts. orfdata does not
|
|
69
174
|
redistribute OpenProt's files, and OpenProt states no licence for them. You
|
|
70
|
-
build the catalogue from OpenProt's own downloads (3.4 MB, about 5 seconds)
|
|
71
|
-
each
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
After that, `load_catalog(species="mouse")`, `extra_orfs(genome)` and
|
|
79
|
-
`Proteome.build(genome)` use it for any GRCm39 Ensembl release:
|
|
175
|
+
build the catalogue from OpenProt's own downloads (3.4 MB, about 5 seconds),
|
|
176
|
+
each checked against its pinned size and SHA-256, with `orfdata setup --species
|
|
177
|
+
mouse` along with the Ribo-seq catalogue above, or alone with `orfdata catalogs
|
|
178
|
+
build openprot-mouse`. `load_catalog(species="mouse")`, `extra_orfs(genome)`
|
|
179
|
+
and `Proteome.build(genome)` use all three mouse catalogues, for any GRCm39
|
|
180
|
+
Ensembl release, so all must be installed. With only MS-supported ORFs selected, the default:
|
|
80
181
|
|
|
81
182
|
```python
|
|
82
183
|
from pyensembl import EnsemblRelease
|
|
@@ -160,25 +261,26 @@ With evidence `None` (every catalogue ORF), each assembly gets:
|
|
|
160
261
|
| Genome | ORF source | Records | Placed | Not placed: main reasons |
|
|
161
262
|
| --- | --- | ---: | ---: | --- |
|
|
162
263
|
| Human Ensembl 115, GRCh38 | bundled | 7,264 | 7,239 | 24 splice paths changed |
|
|
163
|
-
| Human Ensembl 75, GRCh37 | lifted, 1 hop | 7,247 | 6,857 |
|
|
164
|
-
| Human Ensembl 54, NCBI36 | lifted, 1 hop | 7,253 | 4,195 | 2,
|
|
165
|
-
|
|
|
166
|
-
| Mouse Ensembl
|
|
167
|
-
| Mouse Ensembl
|
|
264
|
+
| Human Ensembl 75, GRCh37 | lifted, 1 hop | 7,247 | 6,857 | 270 transcripts absent, 108 paths changed, 1 on a transcript with a different protein |
|
|
265
|
+
| Human Ensembl 54, NCBI36 | lifted, 1 hop | 7,253 | 4,195 | 2,708 transcripts absent, 2 on a transcript with a different protein |
|
|
266
|
+
| Human Ensembl rapid 2022_07, T2T-CHM13v2.0 | lifted, 1 hop | 7,208 | 6,767 | 383 on a transcript with a different protein, 58 on no transcript, 56 not lifted |
|
|
267
|
+
| Mouse Ensembl 115, GRCm39 | OpenProt, Chang et al. and Yang et al. | 48,805 | 48,577 | 110 transcripts absent, 109 without sequence |
|
|
268
|
+
| Mouse Ensembl 102, GRCm38 | all three lifted, 1 hop | 48,800 | 48,169 | 434 transcripts absent, 5 not lifted |
|
|
269
|
+
| Mouse Ensembl 67, NCBIM37 | all three lifted, 2 hops | 48,642 | 38,105 | 9,217 transcripts absent, 163 not lifted |
|
|
168
270
|
|
|
169
271
|
Older annotations lack many of the transcripts the sources name, so fewer ORFs
|
|
170
272
|
place; the rest, and any that didn't lift, are listed with the reason, never
|
|
171
273
|
silently dropped.
|
|
172
274
|
|
|
173
|
-
- **Which catalogues.**
|
|
174
|
-
requested assembly
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
275
|
+
- **Which catalogues.** Every catalogue for the species is used, merged: on
|
|
276
|
+
the requested assembly as is, on the others the pinned chains reach, lifted.
|
|
277
|
+
Each contributes one release: the one on the requested assembly if it has
|
|
278
|
+
one, else its default. The requested assembly's come first, then by fewest
|
|
279
|
+
hops; bundled first, then by the registry's priority, which decides whose ID
|
|
280
|
+
a shared ORF keeps, so a new catalogue never renames existing ORFs. A source already used from a nearer assembly, such as one catalogue
|
|
281
|
+
registered again under another name on another assembly, counts once. This
|
|
282
|
+
depends only on the registry and the pinned chains, never on what happens
|
|
283
|
+
to be installed.
|
|
182
284
|
- **What's missing.** Missing catalogues and chain files are reported together,
|
|
183
285
|
each with the command that installs it; nothing is downloaded while
|
|
184
286
|
loading. `cache_root` (or `--cache-root`) is where both are looked for.
|
|
@@ -193,7 +295,44 @@ silently dropped.
|
|
|
193
295
|
through GRCm38. `lift_to(catalog, build)` lifts through it.
|
|
194
296
|
`catalog_status()` lists, for each catalogue, the assemblies it reaches and
|
|
195
297
|
whether their chains are downloaded.
|
|
196
|
-
- **Cost.** Lifting
|
|
298
|
+
- **Cost.** Lifting takes a few seconds (about 2 s for the human catalogue to
|
|
299
|
+
GRCh37 or CHM13); a process reuses the result for the same installed
|
|
300
|
+
catalogues and chains.
|
|
301
|
+
- **Unlifted ORFs.** `ExtraORFs.unlifted` lists the ORFs the evidence rule
|
|
302
|
+
selects that a lift left out; proteomes count them as `unlifted` and list
|
|
303
|
+
them among their exclusions. `ExtraORFs.excluded` holds only records of its
|
|
304
|
+
catalogue, which is what Varcode looks up.
|
|
305
|
+
|
|
306
|
+
### T2T-CHM13
|
|
307
|
+
|
|
308
|
+
PyEnsembl's `EnsemblRelease` has no T2T-CHM13 annotation, so orfdata pins
|
|
309
|
+
Ensembl's rapid-release one (2022_07) and installs it on request, checking each
|
|
310
|
+
file's size and SHA-256 (it needs `orfdata[pyensembl]`). The T2T Consortium's
|
|
311
|
+
GRCh38-to-CHM13 chain is public domain (CC0):
|
|
312
|
+
|
|
313
|
+
```sh
|
|
314
|
+
orfdata genomes install t2t-chm13 # 143 MB of Ensembl files, plus about 1.1 GB of PyEnsembl index
|
|
315
|
+
orfdata chains download GRCh38 T2T-CHM13v2.0
|
|
316
|
+
orfdata proteome --genome t2t-chm13 --output chm13.fasta
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
```python
|
|
320
|
+
from orfdata import Proteome, load_genome
|
|
321
|
+
|
|
322
|
+
genome = load_genome("t2t-chm13") # A PyEnsembl Genome named T2T-CHM13v2.0, offline
|
|
323
|
+
proteome = Proteome.build(genome) # 104,957 annotated proteins + 2,039 MS-supported ORFs
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
The bundled GRCh38 catalogue lifts automatically: 7,208 of 7,264 ORFs lift, and
|
|
327
|
+
6,767 place on CHM13 transcripts with their exact coding path and protein.
|
|
328
|
+
Ensembl gave CHM13 transcripts new IDs, so placement is by path. Of the 441 that
|
|
329
|
+
don't place, 383 lie on a CHM13 transcript with their exact coding path whose
|
|
330
|
+
sequence, from CHM13's own alleles, encodes a different protein (in 15, the
|
|
331
|
+
start codon itself differs); the exclusion reason names that transcript. The
|
|
332
|
+
other 58 are on no CHM13 transcript. The genome keeps its species and assembly
|
|
333
|
+
accession when pickled, for multiprocessing and Varcode. Your own CHM13 genome
|
|
334
|
+
works too if its `reference_name` is `T2T-CHM13v2.0` and it has a `species`
|
|
335
|
+
(or you pass `context=`); `hs1` or `chm13` get an error saying so.
|
|
197
336
|
|
|
198
337
|
## Lifting a catalogue by hand
|
|
199
338
|
|
|
@@ -235,11 +374,12 @@ print(len(grch37.records), len(grch37.metadata["liftover"]["unmapped"]), grch37.
|
|
|
235
374
|
7247 17 orfdata-catalog:2026-10-11.1@GRCh37
|
|
236
375
|
```
|
|
237
376
|
|
|
238
|
-
- **Pinned chain files.**
|
|
377
|
+
- **Pinned chain files.** The T2T Consortium's GRCh38 to and from
|
|
378
|
+
[T2T-CHM13v2.0](https://github.com/marbl/CHM13) are public domain. Ensembl's human GRCh38 to and from
|
|
239
379
|
[GRCh37 and NCBI36](https://ftp.ensembl.org/pub/assembly_mapping/homo_sapiens/),
|
|
240
380
|
and mouse GRCm38 to and from
|
|
241
381
|
[NCBIM37](https://ftp.ensembl.org/pub/assembly_mapping/mus_musculus/),
|
|
242
|
-
have no usage restrictions. `orfdata chains list` shows all
|
|
382
|
+
have no usage restrictions. `orfdata chains list` shows all ten. UCSC's mouse
|
|
243
383
|
[`mm10ToMm39`](https://hgdownload.soe.ucsc.edu/goldenPath/mm10/liftOver/README.txt)
|
|
244
384
|
and [`mm39ToMm10`](https://hgdownload.soe.ucsc.edu/goldenPath/mm39/liftOver/README.txt)
|
|
245
385
|
(GRCm38 and GRCm39) are free only for non-commercial use, so downloading
|
|
@@ -285,7 +425,7 @@ print(len(grch37.records), len(grch37.metadata["liftover"]["unmapped"]), grch37.
|
|
|
285
425
|
2,186 MS-supported ORFs: 2,097 place, and 3 of the 89 excluded didn't lift.
|
|
286
426
|
- **Size.** Each lifted record carries its original, so a lifted catalogue is
|
|
287
427
|
about twice the size of its input (33 MB for the bundled one as JSON).
|
|
288
|
-
- **Errors.** When no pinned chains reach an assembly, such as
|
|
428
|
+
- **Errors.** When no pinned chains reach an assembly, such as HG002,
|
|
289
429
|
`load_catalog(species=..., genome_build=...)` gives the `orfdata lift
|
|
290
430
|
--chain` command and the Python call that lifts with your own chain file.
|
|
291
431
|
|
|
@@ -306,7 +446,10 @@ use separate locations.
|
|
|
306
446
|
|
|
307
447
|
## Defining a release
|
|
308
448
|
|
|
309
|
-
A registry definition maps a name to `default_version` and
|
|
449
|
+
A registry definition maps a name to `default_version`, `versions` and an
|
|
450
|
+
optional integer `priority` (default 100): when catalogues are merged, lower
|
|
451
|
+
priorities come first, and the first catalogue's ID names an ORF several
|
|
452
|
+
share. Each
|
|
310
453
|
version contains a `CatalogManifest`, `distribution` access terms and an
|
|
311
454
|
`assets` entry for raw `catalog.json.gz` bytes, pinned by URL, SHA-256 and size.
|
|
312
455
|
The manifest declares references, original `SourceAsset` inputs, citations,
|
|
@@ -31,9 +31,10 @@ Calibration and uncertainty remain attached to observations:
|
|
|
31
31
|
## ORF evidence and ribosome profiling
|
|
32
32
|
|
|
33
33
|
The separate existence-evidence catalogue contains 7,264 human noncanonical
|
|
34
|
-
ORFs, including 2,186 with reported MS support. Mouse has
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
ORFs, including 2,186 with reported MS support. Mouse has 48,805 ORFs: Ribo-seq ORFs
|
|
35
|
+
from Chang et al. and Yang et al., and 2,976 OpenProt 2.2 ORFs with at least
|
|
36
|
+
two unique MS peptides, built from their sources' files; dog and yeast have no experimental
|
|
37
|
+
ncORF catalogue yet. Its
|
|
37
38
|
ribosome evidence and pooled PSM counts are not sample-level ribosome
|
|
38
39
|
occupancy or protein abundance.
|
|
39
40
|
|
|
@@ -53,12 +53,13 @@ orfdata proteome --species human --release 115 --output human-e115.fasta
|
|
|
53
53
|
|
|
54
54
|
| `evidence=` | Selects ORFs with | Human ORFs | Encoded in Ensembl 115 |
|
|
55
55
|
| --- | --- | ---: | ---: |
|
|
56
|
-
| `"ribosome"` | Ribosome profiling (all bundled ORFs) | 7,264 | 7,239 |
|
|
56
|
+
| `"ribosome"` or `"riboseq"` | Ribosome profiling (all bundled ORFs) | 7,264 | 7,239 |
|
|
57
57
|
| `"ms"` (default) | Any supporting MS peptide | 2,186 | 2,181 |
|
|
58
|
-
| `"
|
|
59
|
-
| `"
|
|
58
|
+
| `"immunopeptidomics"` | Peptides eluted from MHC (in human, HLA) molecules | 1,881 | 1,879 |
|
|
59
|
+
| `"proteomics"` | Peptides from digested cellular proteins | 73 | 72 |
|
|
60
|
+
| `"all"` | Every catalogue ORF | 7,264 | 7,239 |
|
|
60
61
|
|
|
61
|
-
Most MS support in the bundled human catalogue comes from
|
|
62
|
+
Most MS support in the bundled human catalogue comes from
|
|
62
63
|
immunopeptidomics. A presented peptide shows that the ORF was translated; it
|
|
63
64
|
does not establish a stable protein. See
|
|
64
65
|
[building a reference proteome](proteome.md#choose-the-evidence) for
|
|
@@ -95,9 +96,9 @@ transcript alongside them.
|
|
|
95
96
|
|
|
96
97
|
| Species | Annotated proteins | Noncanonical ORFs |
|
|
97
98
|
| --- | --- | --- |
|
|
98
|
-
| Human | From PyEnsembl | 7,264 GRCh38 ORFs, bundled; lifted to GRCh37 and
|
|
99
|
-
| Mouse | From PyEnsembl |
|
|
100
|
-
| Dog | From PyEnsembl | None
|
|
99
|
+
| Human | From PyEnsembl; T2T-CHM13 from a pinned Ensembl annotation | 7,264 GRCh38 ORFs, bundled; lifted to GRCh37, NCBI36 and [T2T-CHM13](catalogs.md#t2t-chm13) |
|
|
100
|
+
| Mouse | From PyEnsembl | 48,805 ORFs on GRCm39: Ribo-seq ORFs of Chang et al. and Yang et al., and 2,976 MS-supported ones (OpenProt 2.2), [built locally](catalogs.md#mouse) with `orfdata setup --species mouse`; lifted to GRCm38 and NCBIM37 |
|
|
101
|
+
| Dog | From PyEnsembl | None: no experimentally supported dog ORF set exists |
|
|
101
102
|
| Budding yeast | From PyEnsembl | None released |
|
|
102
103
|
|
|
103
104
|
Other assemblies use a catalogue lifted to them once `orfdata chains download`
|
|
@@ -52,11 +52,12 @@ the bundled human catalogue (dataset `2026-10-11.1`) and Ensembl 115:
|
|
|
52
52
|
|
|
53
53
|
| Selection | Human ORFs | Encoded in Ensembl 115 |
|
|
54
54
|
| --- | ---: | ---: |
|
|
55
|
-
| `evidence=None` or `"
|
|
55
|
+
| `evidence=None` or `"all"`: every catalogue ORF | 7,264 | 7,239 |
|
|
56
|
+
| `evidence="ribosome"` or `"riboseq"`: translated in ribosome profiling | 7,264 | 7,239 |
|
|
56
57
|
| `evidence="ms"` (default): any supporting MS peptide | 2,186 | 2,181 |
|
|
57
|
-
| `evidence="
|
|
58
|
+
| `evidence="immunopeptidomics"`: peptides eluted from MHC (in human, HLA) molecules | 1,881 | 1,879 |
|
|
58
59
|
| `evidence="ms_unclassified"`: MS with an unreported assay type | 537 | 535 |
|
|
59
|
-
| `evidence="
|
|
60
|
+
| `evidence="proteomics"`: peptides from digested cellular proteins | 73 | 72 |
|
|
60
61
|
| `"ms"` with `require_unique=True` | 1,623 | 1,621 |
|
|
61
62
|
| `"ms"` with `require_reviewed=True` | 44 | 44 |
|
|
62
63
|
|
|
@@ -64,19 +65,28 @@ All bundled ORFs come from ribosome-profiling catalogues, so `"ribosome"`
|
|
|
64
65
|
selects all of them. An MS-supported ORF can have peptides from several assay
|
|
65
66
|
types. `require_unique` keeps peptides that map to one protein *within the MS
|
|
66
67
|
source's search*, which is not uniqueness across every possible protein; in
|
|
67
|
-
this catalogue only the author HLA mappings report it. `require_reviewed`
|
|
68
|
+
this catalogue only the author HLA ligand mappings report it. `require_reviewed`
|
|
68
69
|
keeps peptides with convincing community spectrum reviews. Because those two
|
|
69
70
|
properties come from different sources, no bundled peptide has both.
|
|
70
71
|
`require_resolved` excludes support that consists only of aggregate counts.
|
|
71
72
|
See [ORFs and evidence](reference.md#evidence) for the full definitions.
|
|
72
73
|
|
|
74
|
+
A list (or tuple or set) of names selects ORFs with any of them:
|
|
75
|
+
`evidence=["proteomics", "immunopeptidomics"]` keeps ORFs with either kind of
|
|
76
|
+
MS peptide, unlike `"ms"`, which also counts unclassified MS. For ORFs that
|
|
77
|
+
need two kinds of evidence at once, combine rules with `&`, below.
|
|
78
|
+
|
|
73
79
|
### Separate Ribo-seq and MS stringency
|
|
74
80
|
|
|
75
81
|
For more control, pass a rule. `RiboSeq(min_studies=n)` needs ribosome
|
|
76
82
|
profiling in at least `n` independent studies the source names, and
|
|
77
|
-
`MS(min_peptides=n, unique=..., reviewed=...,
|
|
78
|
-
distinct supporting peptide sequences.
|
|
79
|
-
|
|
83
|
+
`MS(min_peptides=n, unique=..., reviewed=..., mhc=...)` needs at least `n`
|
|
84
|
+
distinct supporting peptide sequences. `MS(mhc=True)` counts only peptides
|
|
85
|
+
eluted from MHC molecules (the immunopeptidome) and `MS(mhc=False)` only
|
|
86
|
+
peptides from digested cellular proteins (the whole proteome). `MS()` counts
|
|
87
|
+
both, and the MS peptides whose source doesn't say which. `methods=` names the
|
|
88
|
+
kinds directly, for combinations such as `("proteomics", "ms_unclassified")`.
|
|
89
|
+
`&` requires both rules and `|` accepts either:
|
|
80
90
|
|
|
81
91
|
```python
|
|
82
92
|
from orfdata import MS, RiboSeq
|
|
@@ -84,7 +94,8 @@ from orfdata import MS, RiboSeq
|
|
|
84
94
|
annotated.with_extra_orfs(RiboSeq(min_studies=2)) # replicated Ribo-seq
|
|
85
95
|
annotated.with_extra_orfs(RiboSeq(min_studies=2) & MS()) # Ribo-seq and MS
|
|
86
96
|
annotated.with_extra_orfs(RiboSeq(min_studies=2) | MS()) # either
|
|
87
|
-
annotated.with_extra_orfs(MS(
|
|
97
|
+
annotated.with_extra_orfs(RiboSeq() & MS(mhc=True)) # Ribo-seq and an MHC ligand
|
|
98
|
+
annotated.with_extra_orfs(MS(methods=("proteomics", "ms_unclassified"))) # not immunopeptidomics-only
|
|
88
99
|
```
|
|
89
100
|
|
|
90
101
|
| Rule | Human ORFs | Encoded in Ensembl 115 |
|
|
@@ -92,23 +103,26 @@ annotated.with_extra_orfs(MS(methods=("shotgun", "ms_unclassified"))) # not
|
|
|
92
103
|
| `RiboSeq(min_studies=2)` | 3,085 | 3,072 |
|
|
93
104
|
| `RiboSeq(min_studies=3)` | 1,675 | 1,671 |
|
|
94
105
|
| `MS(min_peptides=2)` | 682 | 681 |
|
|
95
|
-
| `MS(methods=("
|
|
106
|
+
| `MS(methods=("proteomics", "ms_unclassified"))` | 610 | 607 |
|
|
96
107
|
| `RiboSeq(min_studies=2) & MS()` | 1,296 | 1,293 |
|
|
97
108
|
| `RiboSeq(min_studies=2) & MS(min_peptides=2)` | 457 | 456 |
|
|
98
109
|
| `RiboSeq(min_studies=2) \| MS()` | 3,975 | 3,960 |
|
|
99
110
|
|
|
100
111
|
GENCODE's `c…riboseqorf…` IDs are the 3,085 ORFs seen in two or more studies.
|
|
101
|
-
Each method name above is the simplest rule: `"ms"` is `MS()`,
|
|
102
|
-
`
|
|
112
|
+
Each method name above is the simplest rule: `"ms"` is `MS()`,
|
|
113
|
+
`"immunopeptidomics"` is `MS(mhc=True)`, `"proteomics"` is `MS(mhc=False)` and
|
|
114
|
+
`"ribosome"` (or `"riboseq"`) is `RiboSeq()`. The names before 0.28.0 (`"shotgun"`, and `"mhc"` or `"hla"`)
|
|
115
|
+
still work, with a deprecation warning, and catalogues that use them still
|
|
116
|
+
load. A peptide counts once
|
|
103
117
|
however many assay types report it, and so do peptides that differ only by I
|
|
104
|
-
and L (equal in mass). Nested peptides, such as
|
|
118
|
+
and L (equal in mass). Nested peptides, such as MHC ligand length variants, count as
|
|
105
119
|
one: the count is the largest set of supporting peptides none of which lies
|
|
106
120
|
inside another, so a long peptide never hides two shorter, separate ones, and
|
|
107
121
|
a stricter rule always selects a subset of a looser one. Of the 916 ORFs with
|
|
108
122
|
two or more distinct peptide sequences, 234 have fewer than two that aren't
|
|
109
123
|
nested. Each rule in `&` is checked on its own:
|
|
110
|
-
`MS(
|
|
111
|
-
peptide, not one unique
|
|
124
|
+
`MS(mhc=False) & MS(unique=True)` needs a proteomics peptide and a
|
|
125
|
+
unique peptide, not one unique proteomics peptide. A source's aggregate count stands for one observation:
|
|
112
126
|
it satisfies `RiboSeq()` and `MS()` but never `min_studies` or `min_peptides`
|
|
113
127
|
above 1, `unique`, `reviewed` or `resolved=True`. The layer stores the rule,
|
|
114
128
|
so a snapshot records exactly how its ORFs were chosen; `EvidenceRule.from_dict`
|
|
@@ -154,8 +168,8 @@ identical sequences, for example before an exact peptide search.
|
|
|
154
168
|
|
|
155
169
|
Without `catalog=`, `load_catalog` picks the catalogue for the genome's species
|
|
156
170
|
and assembly: a bundled one, or else one installed through
|
|
157
|
-
[`CatalogRegistry`](catalogs.md). Human GRCh38 has the bundled
|
|
158
|
-
GRCm39
|
|
171
|
+
[`CatalogRegistry`](catalogs.md), several merged. Human GRCh38 has the bundled
|
|
172
|
+
one, and mouse GRCm39 three once [installed](catalogs.md#mouse); for
|
|
159
173
|
other species the error names the catalogues that exist. Pass `catalog=` to use
|
|
160
174
|
another, such as `load_catalog(path)`. A catalogue for a different species or
|
|
161
175
|
assembly is rejected.
|
|
@@ -187,7 +201,7 @@ other.
|
|
|
187
201
|
differently counts once when their `ribosome_study_pmids` metadata give it
|
|
188
202
|
the same PMID, as the bundled catalogue's does; without PMIDs it counts
|
|
189
203
|
twice toward `RiboSeq(min_studies=...)`.
|
|
190
|
-
- **Lookups.** Queries by transcript or
|
|
204
|
+
- **Lookups.** Queries by transcript, gene or biotype, `for_transcript` and
|
|
191
205
|
`ExtraORFs.for_gene(..., source=True)` match every source's labels, and an
|
|
192
206
|
ORF is on its source transcript when it is on any source's.
|
|
193
207
|
- **Annotation pins.** Sources pinned to different annotation releases of the
|
|
@@ -288,15 +302,15 @@ protein ID. Fields that apply follow as `key=value`:
|
|
|
288
302
|
|
|
289
303
|
```text
|
|
290
304
|
>ENSP00000269305.4 kind=annotated taxon=9606 source=ensembl:115 gene=ENSG00000141510 gene_name=TP53 transcript=ENST00000269305.9 contig=17 transcript_biotype=protein_coding
|
|
291
|
-
>c7riboseqorf56 kind=extra_orf taxon=9606 source=orfdata-catalog:2026-10-11.1 gene=ENSG00000169902 gene_name=TPST1 transcript=ENST00000304842.6 contig=7 transcript_biotype=protein_coding orf_type=uORF evidence=ribosome,
|
|
292
|
-
>c10riboseqorf115 kind=extra_orf taxon=9606 source=orfdata-catalog:2026-10-11.1 gene=ENSG00000099204 gene_name=ABLIM1 transcript=ENST00000369253.6 contig=10 transcript_biotype=protein_coding orf_type=intORF evidence=ribosome,
|
|
305
|
+
>c7riboseqorf56 kind=extra_orf taxon=9606 source=orfdata-catalog:2026-10-11.1 gene=ENSG00000169902 gene_name=TPST1 transcript=ENST00000304842.6 contig=7 transcript_biotype=protein_coding orf_type=uORF evidence=ribosome,immunopeptidomics transcripts=18
|
|
306
|
+
>c10riboseqorf115 kind=extra_orf taxon=9606 source=orfdata-catalog:2026-10-11.1 gene=ENSG00000099204 gene_name=ABLIM1 transcript=ENST00000369253.6 contig=10 transcript_biotype=protein_coding orf_type=intORF evidence=ribosome,immunopeptidomics source_transcript=ENST00000277895 transcripts=10
|
|
293
307
|
```
|
|
294
308
|
|
|
295
309
|
For extra ORFs, the accession is the source ORF ID, `transcript` is its host
|
|
296
310
|
transcript in this genome, and `gene`, `gene_name` and `transcript_biotype`
|
|
297
311
|
describe that transcript in this genome. `orf_type` is the source's ORF
|
|
298
312
|
category, kept verbatim; see [ORF categories](reference.md#orf-categories).
|
|
299
|
-
`evidence` lists the supporting evidence types
|
|
313
|
+
`evidence` lists the supporting evidence types.
|
|
300
314
|
`transcripts` counts the encoding transcripts when there are several, and
|
|
301
315
|
`source_transcript` names the source's transcript when the header's transcript
|
|
302
316
|
is a different one, as for ABLIM1 above, whose source transcript is gone. See
|
|
@@ -319,7 +333,7 @@ options. Rules have their own options:
|
|
|
319
333
|
```sh
|
|
320
334
|
orfdata proteome --species human --release 115 --min-ribo-seq-studies 2 --min-ms-peptides 1
|
|
321
335
|
orfdata proteome --species human --release 115 --min-ribo-seq-studies 3 --min-ms-peptides 2 --either
|
|
322
|
-
orfdata proteome --species human --release 115 --min-ms-peptides 1 --ms-methods
|
|
336
|
+
orfdata proteome --species human --release 115 --min-ms-peptides 1 --ms-methods proteomics,ms_unclassified
|
|
323
337
|
```
|
|
324
338
|
|
|
325
339
|
Given both a Ribo-seq and an MS requirement, an ORF needs both unless
|
|
@@ -332,8 +346,8 @@ JSON summary of the layers, identity and excluded ORFs goes to standard error.
|
|
|
332
346
|
|
|
333
347
|
## Not yet included
|
|
334
348
|
|
|
335
|
-
Mouse noncanonical ORFs come from
|
|
336
|
-
|
|
349
|
+
Mouse noncanonical ORFs come from Chang et al.'s and Yang et al.'s Ribo-seq and
|
|
350
|
+
OpenProt's MS catalogues once you install them; see [Mouse](catalogs.md#mouse). Dog
|
|
337
351
|
noncanonical ORFs, and translated endogenous retrovirus (ERV) ORFs without
|
|
338
352
|
annotated transcripts, need new source data; see the
|
|
339
353
|
[data roadmap](https://github.com/openvax/orfdata/issues/3). Products from
|
|
@@ -167,10 +167,12 @@ The host is one of possibly several transcripts that carry the same ORF; see
|
|
|
167
167
|
|
|
168
168
|
## Evidence
|
|
169
169
|
|
|
170
|
-
Use `orf.evidence.has_evidence("ribosome")
|
|
171
|
-
|
|
172
|
-
`"
|
|
173
|
-
MS assay type is unspecified remain labelled
|
|
170
|
+
Use `orf.evidence.has_evidence("ribosome")` (or `"riboseq"`), `"proteomics"` (peptides from
|
|
171
|
+
digested cellular proteins), `"immunopeptidomics"` (peptides eluted from MHC
|
|
172
|
+
molecules; HLA in human), or `"ms"` (any supporting MS observation). Source
|
|
173
|
+
observations whose MS assay type is unspecified remain labelled
|
|
174
|
+
`"ms_unclassified"`. Catalogues from before 0.28.0 say `"shotgun"`, `"mhc"`
|
|
175
|
+
and `"hla"`; they load with the current names.
|
|
174
176
|
|
|
175
177
|
```python
|
|
176
178
|
orf.evidence.has_evidence("ms", require_unique=True, require_reviewed=True)
|
|
@@ -302,17 +304,18 @@ another annotation release of the same species, strain and assembly is also
|
|
|
302
304
|
accepted. ORFs on another assembly can be
|
|
303
305
|
[lifted over](catalogs.md#every-assembly-of-a-species).
|
|
304
306
|
|
|
305
|
-
`load_catalog(species="mouse")` returns a species'
|
|
306
|
-
or
|
|
307
|
-
|
|
308
|
-
`genome_build=` chooses
|
|
307
|
+
`load_catalog(species="mouse")` returns a species' ORFs: the bundled
|
|
308
|
+
catalogue, or those downloaded or built through
|
|
309
|
+
[`CatalogRegistry`](catalogs.md), merged when there are several, as mouse's
|
|
310
|
+
[three](catalogs.md#mouse) are. `genome_build=` chooses the assembly. It never downloads, and for a
|
|
309
311
|
species without a catalogue the error lists the catalogues that exist.
|
|
310
312
|
|
|
311
313
|
`load_catalog(path)` reads a custom versioned JSON catalogue. Each catalogue is
|
|
312
314
|
scoped to one species and assembly; each model records its NCBI taxon, scientific
|
|
313
315
|
name, assembly, translation table and source. Human evidence is never transferred
|
|
314
|
-
to a mouse ortholog. Mouse ORFs come from OpenProt, and
|
|
315
|
-
tested with real
|
|
316
|
+
to a mouse ortholog. Mouse ORFs come from OpenProt, Chang et al. and Yang et
|
|
317
|
+
al., and each importer is tested with real source rows on real Ensembl
|
|
318
|
+
transcripts.
|
|
316
319
|
|
|
317
320
|
To build a catalogue, create `ORFModel` objects from source coordinates and
|
|
318
321
|
sequences, attach source observations with `ORFRecord.from_model(model, evidence)`,
|
|
@@ -320,10 +323,9 @@ and construct `ORFCatalog(records, metadata)`. Its `to_dict()` produces the
|
|
|
320
323
|
`orfdata.catalog.v1` JSON representation. Genomic coding blocks are 1-based,
|
|
321
324
|
inclusive, sorted by genomic position, and include the terminal stop codon.
|
|
322
325
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
and yeast files are not imported yet.
|
|
326
|
+
The mouse catalogues come from pinned importers that check every row's
|
|
327
|
+
coordinates and protein; see [Mouse](catalogs.md#mouse). OpenProt's human and
|
|
328
|
+
yeast files are not imported yet.
|
|
327
329
|
|
|
328
330
|
## Rebuild and verify
|
|
329
331
|
|