orfdata 0.42.0__tar.gz → 0.42.2__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.42.0/orfdata.egg-info → orfdata-0.42.2}/PKG-INFO +1 -1
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/catalogs.md +13 -4
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/reference.md +12 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/catalogs.json +8 -2
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/model.py +19 -1
- orfdata-0.42.2/orfdata/version.py +1 -0
- {orfdata-0.42.0 → orfdata-0.42.2/orfdata.egg-info}/PKG-INFO +1 -1
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/SOURCES.txt +2 -0
- orfdata-0.42.2/tests/data/references/transcript_orf_v1_0.42.0.json +71 -0
- orfdata-0.42.2/tests/test_transcript_orf_serialization.py +128 -0
- orfdata-0.42.0/orfdata/version.py +0 -1
- {orfdata-0.42.0 → orfdata-0.42.2}/LICENSE +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/MANIFEST.in +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/deploy.sh +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/copy-yeast.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/coverage.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/dog-data-sources.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/dog-peptides.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/downloads.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/downstream.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/examples.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/human-tissue.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/index.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/ingolia-yeast.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/measurements.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/pairing.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-peptides.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-protein.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-rna.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/proteome.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/search-references.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/source-references.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/species.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/storage.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/stylesheets/docs.css +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs/viral.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/docs.sh +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/lint.sh +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/mkdocs.yml +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/__init__.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/_pinned_genome.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/_structure.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/artifact_archives.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/build.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog_manifest.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalogs.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/cli_output.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/chains.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/datasets.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/genomes.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/subsets.yaml +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data_resources.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/dataset_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/datasets.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/download_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/downloads.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/evidence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/evidence_summary.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/fasta.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genbank.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genomes.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genomes_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/gtf.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/initiation_context.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/install.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/liftover.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/liftover_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/measurements.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/net.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/numeric_vector.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/pairing.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/proteome.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/proteome_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/record_sources.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_ledger.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_table.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/refseq.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/rna.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/search_reference.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sequence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/__init__.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/copy.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/ingolia.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/kaabinejadian.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/ncorf_mammals.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/openprot.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/peptideatlas.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_attribution.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_definitions.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_evidence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_lineage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_native.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_queries.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_rna.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_vendor.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/riborf.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/wang.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_annotation.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_coverage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_panel.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_registry.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_subsets.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/pyproject.toml +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/setup.cfg +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/test.sh +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/conftest.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/aggregate_evidence.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/readMe.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/Results.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/manifest-v1.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/sdrf.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/S3.xlsx +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human.bed +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human.pep.fa +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/mouse.bed +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/ensembl106.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/acquisition-missingness.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/definitions.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/dog-panel.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/membership-search-slice.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/memberships.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/native.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/parent-status-search-slice.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/parent-status.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/psm-parent-sets-search-slice.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/psm-parent-sets.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/search-slice.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/search-slice.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/study-slice.xml +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/summary-samples.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/counts.csv.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/samples.xlsx +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/ensembl115.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/mitochondrial.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/uniprot_literature.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/regions/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/regions/ingolia.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/SD3.xlsx +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/dog.fasta +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/ensembl83-expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/README.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/generate.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v1.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v2.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v3.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v4.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v4.sqlite +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/NC_001526.4.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/NOTICE.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/annotation.gtf.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/copies.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/expected.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/manifest.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/protein.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/rna.zip +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/search.fasta.gz +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_artifact_archives.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_catalog_registry.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_copy.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_data_resources.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_export_read_ahead.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_ncorf_search.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_peptides.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_downloads.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ensembl_search_reference.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_evidence_rules.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_evidence_summary.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_export_sqlite_rows.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_extraction_budget.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ftps_sqlite.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genbank.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genbank_equivalence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genetic_codes.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genomes.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ingolia.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_initiation_context.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_liftover.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_local_build_queries.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_measurements.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_merge_catalogs.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_more_species.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ncorf_mammals.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_numeric_vector.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_openprot.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_orf_cases.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_orf_gtf.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_package_dog_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_package_sqlite_archive.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_paired_selectors.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pairing.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_attribution.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_definitions.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_evidence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_lineage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_native.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_rna.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_vendor.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_protein_set.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_external.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_fasta_tokens.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_producer_graph.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_context.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_ledger.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_orf.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_table.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_refseq.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_region_targets.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_riborf.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_search_reference.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_selectors.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_storage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_uorf_catalog.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_verify_dog_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_bundle.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_cli.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_collections.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_completeness.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_coverage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_initiation.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_origin_join.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_sources.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_subsets.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_wang.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/README-dog-results.md +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/__init__.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_dog_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_gdc_viral_coverage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_hpv16_cds.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_reference_ledger.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/dog_result_plan.json +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_dog_lineage.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_dog_results.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_sqlite_rows.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/extraction_budget.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/ftps_sqlite.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/inspect_dog_results.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/normalize_dog_evidence.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/package_dog_dataset.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/package_sqlite_archive.py +0 -0
- {orfdata-0.42.0 → orfdata-0.42.2}/tools/verify_dog_dataset.py +0 -0
|
@@ -17,7 +17,8 @@ original PyEnsembl transcript through `ReferenceORF`. To use several catalogues
|
|
|
17
17
|
for one species together, see
|
|
18
18
|
[merging catalogues](proteome.md#merging-catalogues).
|
|
19
19
|
|
|
20
|
-
The packaged registry
|
|
20
|
+
The packaged registry supplies catalogues as pinned downloads or builds from
|
|
21
|
+
their sources' own files:
|
|
21
22
|
|
|
22
23
|
| Species | Catalogues | ORFs |
|
|
23
24
|
| --- | --- | ---: |
|
|
@@ -78,11 +79,11 @@ existing standalone local-file workflow.
|
|
|
78
79
|
|
|
79
80
|
```sh
|
|
80
81
|
pip install "orfdata"
|
|
81
|
-
orfdata setup --species mouse --accept-terms # Three catalogues and the chains
|
|
82
|
+
orfdata setup --species mouse --accept-terms # Three catalogues and the chains
|
|
82
83
|
```
|
|
83
84
|
|
|
84
|
-
`orfdata setup`
|
|
85
|
-
and downloads the chain files (`--accept-terms` for UCSC's non-commercial
|
|
85
|
+
`orfdata setup` downloads the published Chang et al. catalogue, builds the other
|
|
86
|
+
registered mouse catalogues from their pinned sources, and downloads the chain files (`--accept-terms` for UCSC's non-commercial
|
|
86
87
|
GRCm38/GRCm39 chains). It prints what it did with each: built, downloaded,
|
|
87
88
|
already installed, repaired or skipped. If one fails, the rest are still
|
|
88
89
|
installed and it exits with status 1, naming each failure; in Python,
|
|
@@ -115,6 +116,14 @@ least two callers find it in a library, in at least two libraries, starting at
|
|
|
115
116
|
ATG, CTG, GTG or TTG. Its types are uORF (8,294), lncORF (3,576), uoORF
|
|
116
117
|
(1,950), iORF (1,749), dORF (741) and doORF (174).
|
|
117
118
|
|
|
119
|
+
- **Download.** `orfdata data fetch ncorf-mammals-mouse` installs the
|
|
120
|
+
checksum-pinned 2.22 MB catalogue. `orfdata data path ncorf-mammals-mouse`
|
|
121
|
+
returns its local path for offline use. Python callers use
|
|
122
|
+
`fetch_data("ncorf-mammals-mouse")` and `CatalogRegistry().open("ncorf-mammals-mouse")`.
|
|
123
|
+
The [data release](https://github.com/openvax/orfdata/releases/tag/data-ncorf-mammals-mouse-1)
|
|
124
|
+
includes the manifest, source access terms and acceptance receipt.
|
|
125
|
+
`orfdata catalogs build ncorf-mammals-mouse` still explicitly rebuilds from
|
|
126
|
+
the original inputs; `catalogs query ncorf-mammals-mouse --built` selects that result.
|
|
118
127
|
- **Sources.** The authors' BED and protein FASTA (MIT, pinned commit), the
|
|
119
128
|
paper's Table S3 (CC BY 4.0) and Ensembl 107's GTF; about 40 MB.
|
|
120
129
|
- **Coding paths.** The BED garbles multi-exon block sizes, so each ORF's
|
|
@@ -84,6 +84,18 @@ explicitly supplied RNA, checking its identity, reference, coding path and
|
|
|
84
84
|
sequence fingerprints. It preserves source evidence and optional catalogue
|
|
85
85
|
provenance.
|
|
86
86
|
|
|
87
|
+
Every `to_dict()` export includes `resolved_transcript.contig` and
|
|
88
|
+
`resolved_transcript.strand`, including annotated CDSs and `TranscriptORF.at`
|
|
89
|
+
placements whose `model` and `record` are `null`. These fields describe the RNA
|
|
90
|
+
actually carrying the ORF, preserving its contig spelling and `+`/`-` strand;
|
|
91
|
+
they do not substitute the original source model's locus. Unknown `SourceRNA`
|
|
92
|
+
locus values remain `null`, so unknown orientation is explicit. Saved results can be
|
|
93
|
+
interpreted without reloading a reference sequence.
|
|
94
|
+
|
|
95
|
+
These are additive fields in `orfdata.transcript_orf.v1` as of 0.42.1. The reader
|
|
96
|
+
accepts older v1 exports where they are absent. If a field is present, including
|
|
97
|
+
an explicit `null`, it must match the supplied carrier RNA during replay.
|
|
98
|
+
|
|
87
99
|
```python
|
|
88
100
|
from orfdata import extra_orfs
|
|
89
101
|
|
|
@@ -190,10 +190,16 @@
|
|
|
190
190
|
"schema": "orfdata.catalog-manifest.v1"
|
|
191
191
|
},
|
|
192
192
|
"distribution": {
|
|
193
|
-
"access_terms": "
|
|
193
|
+
"access_terms": "Redistributed from the pinned authors' ncORF files (MIT), Table S3 (CC BY 4.0) and Ensembl 107 GTF (unrestricted). Includes source provenance and one unresolved row. Cite Chang et al., eLife 2025 (doi:10.7554/eLife.109128).",
|
|
194
194
|
"redistributable": true
|
|
195
195
|
},
|
|
196
|
-
"assets": {
|
|
196
|
+
"assets": {
|
|
197
|
+
"catalog.json.gz": {
|
|
198
|
+
"url": "https://github.com/openvax/orfdata/releases/download/data-ncorf-mammals-mouse-1/catalog.json.gz",
|
|
199
|
+
"sha256": "255f1d089b1eaa88a0bed53006c05ec78350626659461086fa11164947f151f1",
|
|
200
|
+
"size": 2219659
|
|
201
|
+
}
|
|
202
|
+
}
|
|
197
203
|
}
|
|
198
204
|
},
|
|
199
205
|
"priority": 20
|
|
@@ -800,6 +800,11 @@ class TranscriptORF:
|
|
|
800
800
|
return self._source_gene[1] if self.record is None else self.model.gene_name
|
|
801
801
|
|
|
802
802
|
def to_dict(self):
|
|
803
|
+
"""Export this placement, including the carrier RNA's contig and strand.
|
|
804
|
+
|
|
805
|
+
``resolved_transcript`` always contains both locus fields; an unmapped
|
|
806
|
+
source RNA keeps its unknown values as ``None``.
|
|
807
|
+
"""
|
|
803
808
|
transcript = self.transcript
|
|
804
809
|
genome = transcript.genome
|
|
805
810
|
species = getattr(genome, "species", None)
|
|
@@ -825,6 +830,8 @@ class TranscriptORF:
|
|
|
825
830
|
},
|
|
826
831
|
resolved_transcript=dict(
|
|
827
832
|
id=transcript.id,
|
|
833
|
+
contig=transcript.contig,
|
|
834
|
+
strand=transcript.strand,
|
|
828
835
|
version=getattr(transcript, "version", None),
|
|
829
836
|
release=getattr(genome, "release", None),
|
|
830
837
|
genome_build=self.context.genome_build,
|
|
@@ -862,6 +869,8 @@ class TranscriptORF:
|
|
|
862
869
|
The complete RNA sequence, reference context, coordinates and protein
|
|
863
870
|
fingerprints must agree. Annotation and source-defined placements keep
|
|
864
871
|
``record=None``; no catalogue observation is fabricated during replay.
|
|
872
|
+
Legacy v1 exports without carrier locus fields remain readable; when
|
|
873
|
+
present, those fields must match the explicitly supplied RNA.
|
|
865
874
|
"""
|
|
866
875
|
from .catalog import ORFEvidence, _record
|
|
867
876
|
|
|
@@ -880,6 +889,9 @@ class TranscriptORF:
|
|
|
880
889
|
if (transcript.id != resolved["id"]
|
|
881
890
|
or getattr(transcript, "version", None) != resolved["version"]):
|
|
882
891
|
raise ValueError("Transcript ORF snapshot transcript identity mismatch")
|
|
892
|
+
for field in ("contig", "strand"):
|
|
893
|
+
if field in resolved and resolved[field] != getattr(transcript, field):
|
|
894
|
+
raise ValueError(f"Transcript ORF snapshot carrier {field} mismatch")
|
|
883
895
|
if value.get("record") is not None:
|
|
884
896
|
restored = cls(_record(value["record"]), transcript, context=context, any_transcript=True)
|
|
885
897
|
else:
|
|
@@ -934,7 +946,13 @@ class TranscriptORF:
|
|
|
934
946
|
elif ((restored.start_complete and origin != 0)
|
|
935
947
|
or (restored.stop_complete and origin != len(coding) - 3 * (len(restored.protein_sequence) + 1))):
|
|
936
948
|
raise ValueError("Transcript ORF snapshot coding phase contradicts its annotated boundaries")
|
|
937
|
-
|
|
949
|
+
exported = restored.to_dict()
|
|
950
|
+
# Before 0.42.1, v1 snapshots did not include the carrier's locus.
|
|
951
|
+
# Only absent fields are optional: an explicit null still must agree.
|
|
952
|
+
for field in ("contig", "strand"):
|
|
953
|
+
if field not in resolved:
|
|
954
|
+
exported["resolved_transcript"].pop(field)
|
|
955
|
+
if json.dumps(exported, sort_keys=True) != json.dumps(value, sort_keys=True):
|
|
938
956
|
raise ValueError("Transcript ORF snapshot does not round-trip to its source definition")
|
|
939
957
|
return restored
|
|
940
958
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.42.2"
|
|
@@ -188,6 +188,7 @@ tests/test_riborf.py
|
|
|
188
188
|
tests/test_search_reference.py
|
|
189
189
|
tests/test_selectors.py
|
|
190
190
|
tests/test_storage.py
|
|
191
|
+
tests/test_transcript_orf_serialization.py
|
|
191
192
|
tests/test_uorf_catalog.py
|
|
192
193
|
tests/test_verify_dog_dataset.py
|
|
193
194
|
tests/test_viral.py
|
|
@@ -311,6 +312,7 @@ tests/data/references/homo_sapiens.json
|
|
|
311
312
|
tests/data/references/mitochondrial.json
|
|
312
313
|
tests/data/references/mus_musculus.json
|
|
313
314
|
tests/data/references/saccharomyces_cerevisiae.json
|
|
315
|
+
tests/data/references/transcript_orf_v1_0.42.0.json
|
|
314
316
|
tests/data/references/uniprot_literature.json
|
|
315
317
|
tests/data/regions/NOTICE.md
|
|
316
318
|
tests/data/regions/ingolia.json
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "orfdata.transcript_orf.v1",
|
|
3
|
+
"kind": "extra_orf",
|
|
4
|
+
"orf_id": "legacy",
|
|
5
|
+
"equivalent_ids": [],
|
|
6
|
+
"source_transcript_id": "snapshot-fixture",
|
|
7
|
+
"on_source_transcript": true,
|
|
8
|
+
"model": null,
|
|
9
|
+
"record": null,
|
|
10
|
+
"evidence": {
|
|
11
|
+
"ribosome_studies": [],
|
|
12
|
+
"peptides": []
|
|
13
|
+
},
|
|
14
|
+
"reference_context": {
|
|
15
|
+
"taxon_id": 9606,
|
|
16
|
+
"species": "human",
|
|
17
|
+
"genome_build": "GRCh38",
|
|
18
|
+
"annotation_name": "synthetic",
|
|
19
|
+
"annotation_version": "1",
|
|
20
|
+
"assembly_accession": null,
|
|
21
|
+
"strain": null,
|
|
22
|
+
"strain_taxon_id": null,
|
|
23
|
+
"sequence_sha256": null,
|
|
24
|
+
"taxonomy_version": "ncbi-2026-10-12",
|
|
25
|
+
"source_sha256": null
|
|
26
|
+
},
|
|
27
|
+
"reference_key": "ref:2cd293bb014bdfd762ba5d24f5a4f7c9eb6ee91b1ba0cbd2585b60b667491fec",
|
|
28
|
+
"sequence_fingerprints": {
|
|
29
|
+
"transcript_sha256": "c5fc760ddfbe43faada474e3d39342b30a0542dd9e4583b655cec28b53867498",
|
|
30
|
+
"coding_sha256": "c5fc760ddfbe43faada474e3d39342b30a0542dd9e4583b655cec28b53867498",
|
|
31
|
+
"protein_sha256": "b2690faaaa9351ecb43b60145db79e38151129eaa426b9529f1705b2dd5168bc"
|
|
32
|
+
},
|
|
33
|
+
"resolved_transcript": {
|
|
34
|
+
"id": "snapshot-fixture",
|
|
35
|
+
"version": null,
|
|
36
|
+
"release": null,
|
|
37
|
+
"genome_build": "GRCh38",
|
|
38
|
+
"species": null,
|
|
39
|
+
"biotype": null,
|
|
40
|
+
"topology": "linear"
|
|
41
|
+
},
|
|
42
|
+
"source": "synthetic",
|
|
43
|
+
"source_gene_id": null,
|
|
44
|
+
"source_gene_name": null,
|
|
45
|
+
"orf_type": null,
|
|
46
|
+
"coding_sequence": "ATGAAATAA",
|
|
47
|
+
"protein_sequence": "MK",
|
|
48
|
+
"translation_table": 1,
|
|
49
|
+
"coding_phase": 0,
|
|
50
|
+
"coding_origin": 0,
|
|
51
|
+
"start": 0,
|
|
52
|
+
"end": 9,
|
|
53
|
+
"segments": [
|
|
54
|
+
[
|
|
55
|
+
0,
|
|
56
|
+
9
|
|
57
|
+
]
|
|
58
|
+
],
|
|
59
|
+
"cdna_interval": [
|
|
60
|
+
0,
|
|
61
|
+
9
|
|
62
|
+
],
|
|
63
|
+
"coding_blocks": [],
|
|
64
|
+
"start_complete": true,
|
|
65
|
+
"stop_complete": true,
|
|
66
|
+
"start_codon": "ATG",
|
|
67
|
+
"stop_codon": "TAA",
|
|
68
|
+
"decoded_stop_codons": [],
|
|
69
|
+
"subcodon_introns": [],
|
|
70
|
+
"coordinates": "0-based-half-open-cdna;1-based-inclusive-genome"
|
|
71
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"""Carrier loci survive export; synthetic mappings are not biological observations."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
from test_orf_cases import genome as genome
|
|
8
|
+
|
|
9
|
+
from orfdata import ORFModel, ORFRecord, ReferenceContext, SourceRNA, TranscriptORF
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Carrier:
|
|
13
|
+
"""A second RNA with the same pinned sequence/path and a contig alias."""
|
|
14
|
+
|
|
15
|
+
def __init__(self, transcript):
|
|
16
|
+
self.original = transcript
|
|
17
|
+
self.id = "carrier-" + transcript.id
|
|
18
|
+
self.versioned_id = self.id + "." + str(transcript.version)
|
|
19
|
+
self.contig = "chr" + transcript.contig
|
|
20
|
+
self.gene_id = "carrier-gene"
|
|
21
|
+
self.gene_name = "CARRIER"
|
|
22
|
+
|
|
23
|
+
def __getattr__(self, name):
|
|
24
|
+
return getattr(self.original, name)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.fixture(params=("ENST00000644866", "ENST00000395826"), ids=("plus", "minus"))
|
|
28
|
+
def placement(request, genome):
|
|
29
|
+
transcript = genome.transcript_by_id(request.param)
|
|
30
|
+
annotated = TranscriptORF.from_annotation(transcript)
|
|
31
|
+
record = ORFRecord.from_model(ORFModel(
|
|
32
|
+
"synthetic-record", transcript.id, transcript.gene_id, transcript.gene_name,
|
|
33
|
+
transcript.contig, transcript.strand, annotated.coding_blocks,
|
|
34
|
+
annotated.protein_sequence, "synthetic", "GRCh38", 9606, "homo_sapiens",
|
|
35
|
+
source="synthetic"))
|
|
36
|
+
return transcript, annotated, record
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@pytest.mark.parametrize("route", ("at", "annotated", "mapped_annotation", "record", "mapped_record"))
|
|
40
|
+
def test_every_constructor_exports_the_actual_carrier_locus(placement, route):
|
|
41
|
+
transcript, annotated, record = placement
|
|
42
|
+
carrier = Carrier(transcript) if route.startswith("mapped_") else transcript
|
|
43
|
+
if route == "at":
|
|
44
|
+
orf = TranscriptORF.at(carrier, annotated.start, orf_id="synthetic-at",
|
|
45
|
+
source="synthetic", protein=annotated.protein_sequence)
|
|
46
|
+
elif route in ("annotated", "mapped_annotation"):
|
|
47
|
+
orf = TranscriptORF.from_annotation(transcript, on=carrier)
|
|
48
|
+
else:
|
|
49
|
+
orf = TranscriptORF(record, carrier, any_transcript=route == "mapped_record")
|
|
50
|
+
snapshot = json.loads(json.dumps(orf.to_dict()))
|
|
51
|
+
resolved = snapshot["resolved_transcript"]
|
|
52
|
+
assert resolved["id"] == carrier.id
|
|
53
|
+
assert resolved["contig"] == carrier.contig
|
|
54
|
+
assert resolved["strand"] == carrier.strand
|
|
55
|
+
if route.startswith("mapped_"):
|
|
56
|
+
assert not snapshot["on_source_transcript"]
|
|
57
|
+
assert snapshot["source_transcript_id"] != resolved["id"]
|
|
58
|
+
if route == "mapped_record":
|
|
59
|
+
assert snapshot["model"]["contig"] != resolved["contig"]
|
|
60
|
+
if route in ("at", "annotated", "mapped_annotation"):
|
|
61
|
+
assert snapshot["model"] is None and snapshot["record"] is None
|
|
62
|
+
restored = TranscriptORF.from_dict(snapshot, carrier)
|
|
63
|
+
assert json.loads(json.dumps(restored.to_dict())) == snapshot
|
|
64
|
+
# Earlier v1 exports omitted both fields for every construction path.
|
|
65
|
+
legacy = json.loads(json.dumps(snapshot))
|
|
66
|
+
del legacy["resolved_transcript"]["strand"]
|
|
67
|
+
del legacy["resolved_transcript"]["contig"]
|
|
68
|
+
assert TranscriptORF.from_dict(legacy, carrier).to_dict() == orf.to_dict()
|
|
69
|
+
assert "strand" not in legacy["resolved_transcript"] # Replay does not rewrite its input.
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def source_rna(**locus):
|
|
73
|
+
return SourceRNA("snapshot-fixture", "ATGAAATAA",
|
|
74
|
+
ReferenceContext(9606, "human", "GRCh38", "synthetic", "1"),
|
|
75
|
+
"synthetic", **locus)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@pytest.mark.parametrize("strand", (None, "+", "-"))
|
|
79
|
+
def test_source_rna_locus_is_explicit_even_when_unknown(strand):
|
|
80
|
+
locus = {} if strand is None else dict(contig="2", strand=strand, exons=((100, 108),))
|
|
81
|
+
rna = source_rna(**locus)
|
|
82
|
+
orf = TranscriptORF.at(rna, 0, orf_id="source-rna", source="synthetic")
|
|
83
|
+
snapshot = json.loads(json.dumps(orf.to_dict()))
|
|
84
|
+
assert snapshot["resolved_transcript"]["strand"] == strand
|
|
85
|
+
assert snapshot["resolved_transcript"]["contig"] == (None if strand is None else "2")
|
|
86
|
+
assert TranscriptORF.from_dict(snapshot, rna).to_dict() == orf.to_dict()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@pytest.mark.parametrize("field,wrong", (("strand", "-"), ("strand", None),
|
|
90
|
+
("contig", "other"), ("contig", None)))
|
|
91
|
+
@pytest.mark.parametrize("legacy_other_field", (False, True))
|
|
92
|
+
def test_conflicting_carrier_locus_is_rejected_before_reading_sequence(field, wrong, legacy_other_field):
|
|
93
|
+
rna = source_rna(contig="2", strand="+", exons=((100, 108),))
|
|
94
|
+
snapshot = TranscriptORF.at(rna, 0, orf_id="source-rna", source="synthetic").to_dict()
|
|
95
|
+
snapshot["resolved_transcript"][field] = wrong
|
|
96
|
+
if legacy_other_field:
|
|
97
|
+
del snapshot["resolved_transcript"]["contig" if field == "strand" else "strand"]
|
|
98
|
+
|
|
99
|
+
class UnavailableSequence:
|
|
100
|
+
def __getattr__(self, name):
|
|
101
|
+
if name == "sequence":
|
|
102
|
+
pytest.fail("A contradictory carrier locus must fail before reading RNA bases")
|
|
103
|
+
return getattr(rna, name)
|
|
104
|
+
|
|
105
|
+
with pytest.raises(ValueError, match=f"carrier {field} mismatch"):
|
|
106
|
+
TranscriptORF.from_dict(snapshot, UnavailableSequence())
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@pytest.mark.parametrize("field,wrong", (("strand", "+"), ("contig", "2")))
|
|
110
|
+
def test_snapshot_cannot_assign_a_locus_to_an_unmapped_source_rna(field, wrong):
|
|
111
|
+
rna = source_rna()
|
|
112
|
+
snapshot = TranscriptORF.at(rna, 0, orf_id="unmapped", source="synthetic").to_dict()
|
|
113
|
+
snapshot["resolved_transcript"][field] = wrong
|
|
114
|
+
with pytest.raises(ValueError, match=f"carrier {field} mismatch"):
|
|
115
|
+
TranscriptORF.from_dict(snapshot, rna)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def test_published_042_snapshot_remains_readable():
|
|
119
|
+
# Frozen using the published 0.42.0 wheel, before carrier locus fields existed.
|
|
120
|
+
path = Path(__file__).parent / "data/references/transcript_orf_v1_0.42.0.json"
|
|
121
|
+
snapshot = json.loads(path.read_text())
|
|
122
|
+
restored = TranscriptORF.from_dict(snapshot, source_rna())
|
|
123
|
+
assert restored.protein_sequence == "MK" and restored.record is None
|
|
124
|
+
assert restored.to_dict()["resolved_transcript"]["strand"] is None
|
|
125
|
+
assert restored.to_dict()["resolved_transcript"]["contig"] is None
|
|
126
|
+
snapshot["sequence_fingerprints"]["protein_sha256"] = "0" * 64
|
|
127
|
+
with pytest.raises(ValueError, match="does not round-trip"):
|
|
128
|
+
TranscriptORF.from_dict(snapshot, source_rna())
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.42.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|