orfdata 0.41.0__tar.gz → 0.42.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.41.0/orfdata.egg-info → orfdata-0.42.0}/PKG-INFO +11 -3
- {orfdata-0.41.0 → orfdata-0.42.0}/README.md +10 -2
- orfdata-0.42.0/docs/dog-data-sources.md +60 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/dog-peptides.md +3 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/downloads.md +43 -4
- {orfdata-0.41.0 → orfdata-0.42.0}/mkdocs.yml +1 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/__init__.py +4 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/cli.py +3 -3
- orfdata-0.42.0/orfdata/data_resources.py +140 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/download_cli.py +49 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/downloads.py +26 -16
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/genomes.py +3 -2
- orfdata-0.42.0/orfdata/version.py +1 -0
- {orfdata-0.41.0 → orfdata-0.42.0/orfdata.egg-info}/PKG-INFO +11 -3
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata.egg-info/SOURCES.txt +3 -0
- orfdata-0.42.0/tests/test_data_resources.py +161 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_downloads.py +1 -1
- orfdata-0.41.0/orfdata/version.py +0 -1
- {orfdata-0.41.0 → orfdata-0.42.0}/LICENSE +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/MANIFEST.in +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/deploy.sh +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/catalogs.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/copy-yeast.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/coverage.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/downstream.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/examples.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/human-tissue.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/index.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/ingolia-yeast.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/measurements.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/pairing.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/pfizer-peptides.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/pfizer-protein.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/pfizer-rna.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/proteome.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/reference.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/search-references.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/source-references.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/species.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/storage.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/stylesheets/docs.css +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs/viral.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/docs.sh +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/lint.sh +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/_pinned_genome.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/_structure.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/artifact_archives.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/build.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/catalog.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/catalog_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/catalog_manifest.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/catalogs.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/cli_output.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/catalogs.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/chains.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/datasets.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/genomes.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/data/viral/subsets.yaml +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/dataset_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/datasets.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/evidence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/evidence_summary.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/fasta.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/genbank.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/genomes_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/gtf.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/install.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/liftover.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/liftover_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/measurements.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/model.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/net.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/numeric_vector.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/pairing.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/proteome.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/proteome_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/record_sources.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/reference.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/reference_ledger.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/reference_table.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/refseq.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/rna.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/search_reference.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sequence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/__init__.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/copy.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/ingolia.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/kaabinejadian.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/ncorf_mammals.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/openprot.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/peptideatlas.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_attribution.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_definitions.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_evidence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_lineage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_native.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_queries.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_rna.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/pfizer_vendor.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/riborf.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/sources/wang.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_annotation.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_coverage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_panel.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_registry.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata/viral_subsets.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/pyproject.toml +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/setup.cfg +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/test.sh +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/conftest.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/aggregate_evidence.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ingolia/readMe.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/kaabinejadian/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/kaabinejadian/Results.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/kaabinejadian/manifest-v1.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/kaabinejadian/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/kaabinejadian/sdrf.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/S3.xlsx +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/human.bed +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/human.pep.fa +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/mouse.bed +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/ensembl106.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/peptideatlas/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/peptideatlas/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/acquisition-missingness.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/definitions.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/dog-panel.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/membership-search-slice.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/memberships.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/native.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/parent-status-search-slice.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/parent-status.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/psm-parent-sets-search-slice.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/psm-parent-sets.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/search-slice.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/search-slice.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/study-slice.xml +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer/vendor/summary-samples.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/counts.csv.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/dog-expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/dog-manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/mouse-expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/pfizer_rna/samples.xlsx +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/ensembl115.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/mitochondrial.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/references/uniprot_literature.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/regions/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/regions/ingolia.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/SD3.xlsx +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/ensembl107.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/search_reference/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/search_reference/dog.fasta +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/search_reference/ensembl83-expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/search_reference/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/README.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/generate.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v1.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v2.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v3.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v4.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/storage/v4.sqlite +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/NC_001526.4.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/NOTICE.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/annotation.gtf.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/copies.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/expected.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/manifest.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/protein.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/rna.zip +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/data/wang/search.fasta.gz +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_artifact_archives.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_catalog_registry.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_copy.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_dog_export_read_ahead.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_dog_ncorf_search.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_dog_peptides.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_ensembl_search_reference.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_evidence_rules.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_evidence_summary.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_export_sqlite_rows.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_extraction_budget.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_ftps_sqlite.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_genbank.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_genbank_equivalence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_genetic_codes.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_genomes.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_ingolia.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_initiation_context.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_liftover.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_local_build_queries.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_measurements.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_merge_catalogs.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_more_species.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_ncorf_mammals.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_numeric_vector.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_openprot.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_orf_cases.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_orf_gtf.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_package_dog_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_package_sqlite_archive.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_paired_selectors.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pairing.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_attribution.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_definitions.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_evidence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_lineage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_native.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_rna.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_pfizer_vendor.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_protein_set.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_proteome.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_proteome_external.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_proteome_fasta_tokens.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_proteome_producer_graph.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_reference_ledger.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_reference_orf.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_reference_table.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_refseq.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_region_targets.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_riborf.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_search_reference.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_selectors.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_storage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_uorf_catalog.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_verify_dog_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_bundle.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_cli.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_collections.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_completeness.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_coverage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_initiation.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_origin_join.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_sources.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_viral_subsets.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tests/test_wang.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/README-dog-results.md +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/__init__.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/build_dog_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/build_gdc_viral_coverage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/build_hpv16_cds.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/build_reference_ledger.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/dog_result_plan.json +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/export_dog_lineage.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/export_dog_results.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/export_sqlite_rows.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/extraction_budget.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/ftps_sqlite.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/inspect_dog_results.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/normalize_dog_evidence.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/package_dog_dataset.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/package_sqlite_archive.py +0 -0
- {orfdata-0.41.0 → orfdata-0.42.0}/tools/verify_dog_dataset.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42.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
|
|
@@ -64,10 +64,18 @@ normalized sources do not need it.
|
|
|
64
64
|
List every bundled, downloadable or buildable resource and what is installed:
|
|
65
65
|
|
|
66
66
|
```sh
|
|
67
|
-
orfdata
|
|
68
|
-
orfdata
|
|
67
|
+
orfdata data list
|
|
68
|
+
orfdata data status
|
|
69
|
+
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
70
|
+
orfdata data fetch pfizer-atlas-dog-peptide-evidence
|
|
71
|
+
orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
69
72
|
```
|
|
70
73
|
|
|
74
|
+
`data fetch NAME` downloads a published artifact or builds from pinned sources
|
|
75
|
+
when no artifact is distributed. The same command handles optional catalogues
|
|
76
|
+
such as `openprot-mouse` and datasets such as `peptideatlas-dog-peptides`.
|
|
77
|
+
`downloads` and `download` are aliases for `data`; `info` and `path` stay offline.
|
|
78
|
+
|
|
71
79
|
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
72
80
|
200-reference GDC viral screen for human transcriptome analysis;
|
|
73
81
|
`--collections none` skips it. Viral support is part of the base install, and
|
|
@@ -32,10 +32,18 @@ normalized sources do not need it.
|
|
|
32
32
|
List every bundled, downloadable or buildable resource and what is installed:
|
|
33
33
|
|
|
34
34
|
```sh
|
|
35
|
-
orfdata
|
|
36
|
-
orfdata
|
|
35
|
+
orfdata data list
|
|
36
|
+
orfdata data status
|
|
37
|
+
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
38
|
+
orfdata data fetch pfizer-atlas-dog-peptide-evidence
|
|
39
|
+
orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
37
40
|
```
|
|
38
41
|
|
|
42
|
+
`data fetch NAME` downloads a published artifact or builds from pinned sources
|
|
43
|
+
when no artifact is distributed. The same command handles optional catalogues
|
|
44
|
+
such as `openprot-mouse` and datasets such as `peptideatlas-dog-peptides`.
|
|
45
|
+
`downloads` and `download` are aliases for `data`; `info` and `path` stay offline.
|
|
46
|
+
|
|
39
47
|
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
40
48
|
200-reference GDC viral screen for human transcriptome analysis;
|
|
41
49
|
`--collections none` skips it. Viral support is part of the base install, and
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Canine paired measurements and translation-evidence audit
|
|
2
|
+
|
|
3
|
+
Source check: **28 October 2026**. This audit identifies importable measurement
|
|
4
|
+
files and their limitations. It does not add a dataset to the registry.
|
|
5
|
+
The [machine-readable audit](data/dog-source-audit-20261028.json) contains source
|
|
6
|
+
URLs, hashes, counts, search queries and a candidate sample crosswalk.
|
|
7
|
+
|
|
8
|
+
## Paired RNA and protein: a verified study
|
|
9
|
+
|
|
10
|
+
[Amini et al., 2021](https://pmc.ncbi.nlm.nih.gov/articles/PMC8042244/)
|
|
11
|
+
studied cancer-associated and normal stroma from archived canine mammary
|
|
12
|
+
carcinomas. The authors explicitly reused the cases of their earlier RNA study.
|
|
13
|
+
Original case 7 was excluded from proteomics because its paraffin block was
|
|
14
|
+
unavailable. Measurements come from separate laser-capture preparations of
|
|
15
|
+
the same tissue cases, not identical RNA/protein aliquots.
|
|
16
|
+
|
|
17
|
+
| Source | Verified processed data | Download |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| [GSE135183](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE135183) | 18,582 genes × 30 RNA samples, 15 cases with two stromal compartments | [Raw counts, 606 KB compressed](https://ftp.ncbi.nlm.nih.gov/geo/series/GSE135nnn/GSE135183/suppl/GSE135183_raw_counts.csv.gz) |
|
|
20
|
+
| [PXD023023](https://www.ebi.ac.uk/pride/archive/projects/PXD023023) | 1,583 native protein-group rows with 28 LFQ sample columns | [Protein groups, 2.8 MB](https://ftp.pride.ebi.ac.uk/pride/data/archive/2021/03/PXD023023/proteinGroups.txt) |
|
|
21
|
+
| PXD023023 | 5,413 peptide rows with native quantitative fields | [Peptides, 4.5 MB](https://ftp.pride.ebi.ac.uk/pride/data/archive/2021/03/PXD023023/peptides.txt) |
|
|
22
|
+
|
|
23
|
+
The downloaded protein and peptide files match PRIDE's deposited SHA-1 checksums;
|
|
24
|
+
the audit also records SHA-256 for all three processed files. RNA values are
|
|
25
|
+
nonnegative integer counts. Native protein-group counts include controls and
|
|
26
|
+
contaminants and are not counts of confidently detected biological proteins.
|
|
27
|
+
|
|
28
|
+
PRIDE filenames use case numbers 1–15; GEO uses case IDs such as 109 and 135.
|
|
29
|
+
Matching the article's Table 1 to GEO by breed, age and histological subtype
|
|
30
|
+
uniquely reconciles all 14 proteomics cases. The resulting 28 sample links are
|
|
31
|
+
**metadata-derived**, not an author-supplied identifier crosswalk. Breed spelling
|
|
32
|
+
normalizations are recorded. GEO case 127 is the unmatched RNA case.
|
|
33
|
+
|
|
34
|
+
An importer must retain that pairing basis, separate stromal compartments,
|
|
35
|
+
protein-group ambiguity, controls, missing quantities and native units. The
|
|
36
|
+
deposited search used a dated canonical UniProt reference, but its FASTA is not
|
|
37
|
+
among the 31 PRIDE files. Sequence/reference qualification remains necessary;
|
|
38
|
+
these data do not establish ncORF translation. Author-derived contrasts in the
|
|
39
|
+
supplementary workbooks must stay distinct from sample-level measurements.
|
|
40
|
+
Import work remains tracked in [#20](https://github.com/openvax/orfdata/issues/20).
|
|
41
|
+
|
|
42
|
+
## Dog Ribo-seq and ncORF translation
|
|
43
|
+
|
|
44
|
+
The date-stamped dog-specific SRA, GEO and ENA queries in the audit returned no
|
|
45
|
+
matching sequencing records. This is a bounded repository search, not proof
|
|
46
|
+
that no unpublished or differently indexed experiment exists.
|
|
47
|
+
|
|
48
|
+
[Pfeffer et al., 2015](https://www.nature.com/articles/ncomms9403)
|
|
49
|
+
reports ribosome profiling and total RNA sequencing of canine pancreas rough-ER
|
|
50
|
+
preparations aligned to CanFam3.1/Ensembl 77. Its accession section lists EMDB
|
|
51
|
+
and PDB deposits, without a sequencing accession. No downloadable reads or
|
|
52
|
+
processed ORF-level counts were verified in this audit. Even if recovered, the
|
|
53
|
+
preparation would describe an enriched pancreatic compartment, not a broad
|
|
54
|
+
normal-tissue canine translatome.
|
|
55
|
+
|
|
56
|
+
Existing canine PeptideAtlas, Pfizer and DLA datasets retain their deposited
|
|
57
|
+
canonical-search scope. The experimental dog ncORF search pipeline is a route
|
|
58
|
+
to new analysis, not a released experimentally supported catalogue. Dog ncORF
|
|
59
|
+
translation coverage therefore remains unavailable pending qualified data or
|
|
60
|
+
a separately validated reanalysis. See [#12](https://github.com/openvax/orfdata/issues/12).
|
|
@@ -5,6 +5,9 @@ spectrometry has observed. Neither searched for noncanonical ORFs, so they
|
|
|
5
5
|
don't add ORFs to the dog proteome
|
|
6
6
|
([why dog has no ncORF catalogue](catalogs.md#dog)).
|
|
7
7
|
|
|
8
|
+
For a verified paired RNA/protein study and the latest bounded search for dog
|
|
9
|
+
Ribo-seq, see the [canine source audit](dog-data-sources.md).
|
|
10
|
+
|
|
8
11
|
| Dataset | What it holds | How to get it |
|
|
9
12
|
|---|---|---|
|
|
10
13
|
| `kaabinejadian-dog-dla-ligands` | DLA class I ligands from four dog tumours and three DLA-88 monoallelic cell lines | `orfdata datasets download` (CC0, 25 MB) |
|
|
@@ -3,8 +3,48 @@
|
|
|
3
3
|
ORFdata has one common entry point for data acquisition:
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
orfdata
|
|
7
|
-
orfdata
|
|
6
|
+
orfdata data list
|
|
7
|
+
orfdata data list --species dog
|
|
8
|
+
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
9
|
+
orfdata data fetch pfizer-atlas-dog-peptide-evidence
|
|
10
|
+
orfdata data fetch peptideatlas-dog-peptides openprot-mouse
|
|
11
|
+
orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
12
|
+
orfdata data status
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`data`, `downloads` and `download` are aliases for the same command group.
|
|
16
|
+
The `list/info/fetch/path` vocabulary follows other OpenVax download tools.
|
|
17
|
+
`fetch` accepts one or more explicit resource names and chooses the registered
|
|
18
|
+
acquisition route: download an artifact when available, otherwise build locally
|
|
19
|
+
from checksum-pinned source files. All names and required terms are checked
|
|
20
|
+
before the first acquisition. There is no implicit download-all operation.
|
|
21
|
+
|
|
22
|
+
`info NAME` reports the version, source/coverage manifest and distribution
|
|
23
|
+
metadata, including sizes and redistribution terms where declared. `path NAME`
|
|
24
|
+
prints an installed file or directory for scripts; missing data is an error,
|
|
25
|
+
and never triggers a download. Use `--verify` on reads to validate local bytes,
|
|
26
|
+
`--cache-root DIR` to select a cache, and `--json` for machine output.
|
|
27
|
+
`fetch --json` returns one result per distinct requested name.
|
|
28
|
+
|
|
29
|
+
Use `--kind` to disambiguate colliding resource names. For one resource,
|
|
30
|
+
`--version VERSION` selects a historical release and `--source-path ASSET=PATH`
|
|
31
|
+
provides already downloaded catalogue/dataset sources or genome files. Source
|
|
32
|
+
overrides remain checksum-checked. `--force` installs a fresh generation.
|
|
33
|
+
Restricted chain downloads require `--accept-terms` after reviewing `info`.
|
|
34
|
+
|
|
35
|
+
The same operations are available in Python:
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from orfdata import data_info, data_path, fetch_data
|
|
39
|
+
|
|
40
|
+
details = data_info("openprot-mouse") # Offline; shows the build route and terms.
|
|
41
|
+
result = fetch_data("openprot-mouse") # Explicit source download and processing.
|
|
42
|
+
path = data_path("openprot-mouse") # Offline file/directory lookup.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The focused forms remain available for additional resource-specific options:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
8
48
|
orfdata download viral --species human
|
|
9
49
|
orfdata download catalog NAME
|
|
10
50
|
orfdata download dataset NAME
|
|
@@ -14,8 +54,7 @@ orfdata download chains --species human
|
|
|
14
54
|
```
|
|
15
55
|
|
|
16
56
|
The operation comes first so the same discovery and installation model applies
|
|
17
|
-
to every resource kind. `orfdata
|
|
18
|
-
command. Focused command groups such as `orfdata viral coverage` and
|
|
57
|
+
to every resource kind. Focused command groups such as `orfdata viral coverage` and
|
|
19
58
|
`orfdata viral summary` remain useful for domain-specific inspection.
|
|
20
59
|
|
|
21
60
|
`list` shows every bundled, downloadable or locally buildable primary resource
|
|
@@ -44,6 +44,7 @@ nav:
|
|
|
44
44
|
- Yeast protein and RNA: copy-yeast.md
|
|
45
45
|
- Yeast RNA and ribosome occupancy: ingolia-yeast.md
|
|
46
46
|
- Dog MHC ligands and PeptideAtlas: dog-peptides.md
|
|
47
|
+
- Dog paired-data and Ribo-seq source audit: dog-data-sources.md
|
|
47
48
|
- Project:
|
|
48
49
|
- Release notes: https://github.com/openvax/orfdata/blob/main/CHANGELOG.md
|
|
49
50
|
- Data roadmap: https://github.com/openvax/orfdata/issues/3
|
|
@@ -17,6 +17,7 @@ from .catalog import (
|
|
|
17
17
|
)
|
|
18
18
|
from .catalog_manifest import CatalogManifest
|
|
19
19
|
from .catalogs import CatalogRegistry, build_catalog
|
|
20
|
+
from .data_resources import data_info, data_path, fetch_data
|
|
20
21
|
from .dataset import QuantitativeDataset
|
|
21
22
|
from .datasets import DatasetRegistry, build_dataset
|
|
22
23
|
from .downloads import DataStatus, list_data
|
|
@@ -176,6 +177,9 @@ __all__ = [
|
|
|
176
177
|
"build_dataset",
|
|
177
178
|
"DataStatus",
|
|
178
179
|
"list_data",
|
|
180
|
+
"data_info",
|
|
181
|
+
"data_path",
|
|
182
|
+
"fetch_data",
|
|
179
183
|
"DatasetManifest",
|
|
180
184
|
"SourceAsset",
|
|
181
185
|
"Sample",
|
|
@@ -30,10 +30,10 @@ def run(argv=None, prog=None, *, catalog_loader=load_catalog):
|
|
|
30
30
|
from .proteome_cli import run as proteome_run
|
|
31
31
|
|
|
32
32
|
return proteome_run(argv[1:], prog=(prog or "orfdata") + " proteome")
|
|
33
|
-
if argv and argv[0]
|
|
33
|
+
if argv and argv[0] in ("data", "download", "downloads"):
|
|
34
34
|
from .download_cli import run as download_run
|
|
35
35
|
|
|
36
|
-
return download_run(argv[1:], prog=
|
|
36
|
+
return download_run(argv[1:], prog=f"{prog or 'orfdata'} {argv[0]}")
|
|
37
37
|
if argv and argv[0] == "viral":
|
|
38
38
|
from .viral_cli import run as viral_run
|
|
39
39
|
|
|
@@ -56,7 +56,7 @@ def run(argv=None, prog=None, *, catalog_loader=load_catalog):
|
|
|
56
56
|
"catalogues with 'orfdata catalogs --help'; lift a catalogue to another assembly with "
|
|
57
57
|
"'orfdata lift --help' and 'orfdata chains --help'; annotations PyEnsembl lacks, such as "
|
|
58
58
|
"T2T-CHM13, with 'orfdata genomes --help'; discover and acquire data with "
|
|
59
|
-
"'orfdata
|
|
59
|
+
"'orfdata data --help' (also 'downloads' or 'download'); viral coverage, subsets and installed layers with "
|
|
60
60
|
"'orfdata viral --help'.")
|
|
61
61
|
_add_query_arguments(parser)
|
|
62
62
|
args = parser.parse_args(argv)
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"""Named access to optional data, independent of source and species."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import replace
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from .downloads import _fetch_command, list_data
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def _registry(kind, cache_root):
|
|
10
|
+
from .catalogs import CatalogRegistry
|
|
11
|
+
from .datasets import DatasetRegistry
|
|
12
|
+
|
|
13
|
+
return {"catalog": CatalogRegistry, "dataset": DatasetRegistry}[kind](cache_root=cache_root)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _resolve(name, kind, version, cache_root, verify_files):
|
|
17
|
+
rows = [r for r in list_data(kind=kind, cache_root=cache_root, verify_files=False)
|
|
18
|
+
if r.name == name]
|
|
19
|
+
if not rows:
|
|
20
|
+
raise ValueError(f"Unknown data resource {name!r}; see 'orfdata data list'")
|
|
21
|
+
if len({r.kind for r in rows}) != 1:
|
|
22
|
+
raise ValueError(f"Ambiguous data resource {name!r}; select --kind")
|
|
23
|
+
row = rows[0]
|
|
24
|
+
if row.kind in ("dataset", "catalog") and row.acquire is not None:
|
|
25
|
+
registry = _registry(row.kind, cache_root)
|
|
26
|
+
manifest = registry.info(name, version)
|
|
27
|
+
inspection = registry.inspect(name, manifest.version, verify_files=verify_files)
|
|
28
|
+
acquire = "download" if registry.published(name, manifest.version) else "build"
|
|
29
|
+
row = replace(row, version=manifest.version, title=manifest.title,
|
|
30
|
+
status=inspection.status, path=str(inspection.path), acquire=acquire,
|
|
31
|
+
origin=acquire if inspection.status == "available" else None)
|
|
32
|
+
elif row.kind == "reference":
|
|
33
|
+
from .datasets import DatasetRegistry
|
|
34
|
+
|
|
35
|
+
registry = DatasetRegistry(cache_root=cache_root)
|
|
36
|
+
dataset, asset = name.split(":", 1)
|
|
37
|
+
manifest = registry.info(dataset, version)
|
|
38
|
+
inspection = registry.inspect_reference(dataset, manifest.version, asset_id=asset,
|
|
39
|
+
verify_files=verify_files)
|
|
40
|
+
row = replace(row, version=manifest.version, status=inspection.status,
|
|
41
|
+
path=str(inspection.path),
|
|
42
|
+
origin="download" if inspection.status == "available" else None)
|
|
43
|
+
else:
|
|
44
|
+
if version is not None and version != row.version:
|
|
45
|
+
raise ValueError(f"{name!r} has version {row.version!r}, not {version!r}")
|
|
46
|
+
if verify_files:
|
|
47
|
+
row = next(r for r in list_data(kind=row.kind, cache_root=cache_root, verify_files=True)
|
|
48
|
+
if r.name == name and r.version == row.version)
|
|
49
|
+
return replace(row, command=_fetch_command(row))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def data_info(name, *, kind=None, version=None, cache_root=None, verify_files=False):
|
|
53
|
+
"""Describe a named resource, its pins and acquisition route, entirely offline."""
|
|
54
|
+
row = _resolve(name, kind, version, cache_root, verify_files)
|
|
55
|
+
result = row.to_dict()
|
|
56
|
+
if row.kind in ("catalog", "dataset") and row.acquire is not None:
|
|
57
|
+
registry = _registry(row.kind, cache_root)
|
|
58
|
+
result["manifest"] = registry.info(name, row.version).to_dict()
|
|
59
|
+
result.update(registry.download_metadata(name, row.version))
|
|
60
|
+
elif row.kind == "reference":
|
|
61
|
+
from .datasets import DatasetRegistry
|
|
62
|
+
|
|
63
|
+
dataset, asset = name.split(":", 1)
|
|
64
|
+
registry = DatasetRegistry(cache_root=cache_root)
|
|
65
|
+
result["sources"] = [s.source.to_dict() for s in registry.search_references(dataset, row.version)
|
|
66
|
+
if s.source.asset_id == asset]
|
|
67
|
+
elif row.kind == "chain":
|
|
68
|
+
from dataclasses import asdict
|
|
69
|
+
|
|
70
|
+
from .liftover import pinned_chains
|
|
71
|
+
|
|
72
|
+
result["source"] = asdict(next(c for c in pinned_chains() if c.name == name))
|
|
73
|
+
elif row.kind == "genome":
|
|
74
|
+
from dataclasses import asdict
|
|
75
|
+
|
|
76
|
+
from .genomes import pinned_genomes
|
|
77
|
+
|
|
78
|
+
result["source"] = asdict(next(g for g in pinned_genomes() if g.name == name))
|
|
79
|
+
return result
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def data_path(name, *, kind=None, version=None, cache_root=None, verify_files=False):
|
|
83
|
+
"""Return an installed file/directory; missing data never triggers acquisition."""
|
|
84
|
+
info = data_info(name, kind=kind, version=version, cache_root=cache_root,
|
|
85
|
+
verify_files=verify_files)
|
|
86
|
+
if not info["installed"] or info["path"] is None:
|
|
87
|
+
raise ValueError(f"{name!r} is {info['status']}; install it with {info['command']}")
|
|
88
|
+
return Path(info["path"])
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def fetch_data(name, *, kind=None, version=None, cache_root=None, force=False,
|
|
92
|
+
source_paths=None, timeout=60, show_progress=True, accept_terms=False):
|
|
93
|
+
"""Install one resource and return its status, downloading or building as declared.
|
|
94
|
+
|
|
95
|
+
Downloads retain their checksum validation. Builds use the same pinned source
|
|
96
|
+
adapters as the focused commands. Existing valid files are reused; discovery
|
|
97
|
+
and ordinary queries never invoke this function implicitly.
|
|
98
|
+
"""
|
|
99
|
+
row = _resolve(name, kind, version, cache_root, True)
|
|
100
|
+
if source_paths is not None and row.kind not in ("catalog", "dataset", "genome"):
|
|
101
|
+
raise ValueError("Source overrides here require a catalogue, dataset or genome; use the focused command for other kinds")
|
|
102
|
+
if row.restricted and not accept_terms:
|
|
103
|
+
raise ValueError(f"{name!r} requires --accept-terms; see 'orfdata data info {name}'")
|
|
104
|
+
if row.acquire is None or (row.installed and not force):
|
|
105
|
+
return dict(row.to_dict(), acquired="already installed")
|
|
106
|
+
if row.kind in ("catalog", "dataset"):
|
|
107
|
+
registry = _registry(row.kind, cache_root)
|
|
108
|
+
options = dict(timeout=timeout, show_progress=show_progress)
|
|
109
|
+
if row.acquire == "download":
|
|
110
|
+
registry.download(name, row.version, force=force, source_paths=source_paths, **options)
|
|
111
|
+
else:
|
|
112
|
+
registry.build(name, row.version, force=force, source_paths=source_paths,
|
|
113
|
+
download_options=options)
|
|
114
|
+
elif row.kind == "reference":
|
|
115
|
+
from .datasets import DatasetRegistry
|
|
116
|
+
|
|
117
|
+
dataset, asset = name.split(":", 1)
|
|
118
|
+
DatasetRegistry(cache_root=cache_root).download_reference(
|
|
119
|
+
dataset, row.version, asset_id=asset, force=force, timeout=timeout,
|
|
120
|
+
show_progress=show_progress)
|
|
121
|
+
elif row.kind == "genome":
|
|
122
|
+
from .genomes import install_genome
|
|
123
|
+
|
|
124
|
+
install_genome(name, cache_root=cache_root, force=force, source_paths=source_paths,
|
|
125
|
+
download_options=dict(timeout=timeout, show_progress=show_progress))
|
|
126
|
+
elif row.kind == "chain":
|
|
127
|
+
from .liftover import download_chain, pinned_chains
|
|
128
|
+
|
|
129
|
+
chain = next(c for c in pinned_chains() if c.name == name)
|
|
130
|
+
download_chain(chain.source_build, chain.target_build, species=chain.species,
|
|
131
|
+
cache_root=cache_root, force=force, accept_terms=accept_terms,
|
|
132
|
+
download_options=dict(timeout=timeout, show_progress=show_progress))
|
|
133
|
+
elif row.kind == "viral":
|
|
134
|
+
from .downloads import install_collection
|
|
135
|
+
|
|
136
|
+
install_collection(name, cache_root=cache_root, force=force, timeout=timeout)
|
|
137
|
+
result = _resolve(name, row.kind, row.version, cache_root, False)
|
|
138
|
+
if not result.installed:
|
|
139
|
+
raise RuntimeError(f"{name!r} installation finished with status {result.status}")
|
|
140
|
+
return dict(result.to_dict(), acquired="downloaded" if row.acquire == "download" else "built")
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"""Discover and acquire ORFdata resources through one command."""
|
|
2
2
|
|
|
3
3
|
import argparse
|
|
4
|
+
import sys
|
|
5
|
+
from contextlib import redirect_stdout
|
|
4
6
|
|
|
5
7
|
from .cli_output import print_fields, print_json, print_table
|
|
6
8
|
from .downloads import list_data
|
|
@@ -88,6 +90,23 @@ def run(argv=None, prog="orfdata download"):
|
|
|
88
90
|
status = commands.add_parser("status", help="Show resources already available locally")
|
|
89
91
|
_add_discovery(status, status=True)
|
|
90
92
|
|
|
93
|
+
for verb, description in (("info", "Describe a resource's source pins and download/build route"),
|
|
94
|
+
("path", "Print the installed path without downloading"),
|
|
95
|
+
("fetch", "Install named resources, downloading or building as needed")):
|
|
96
|
+
command = commands.add_parser(verb, help=description)
|
|
97
|
+
command.add_argument("names", metavar="NAME", nargs="+" if verb == "fetch" else None)
|
|
98
|
+
command.add_argument("--kind", choices=("viral", "catalog", "dataset", "reference", "genome", "chain"))
|
|
99
|
+
command.add_argument("--version", help="Exact resource version; defaults to its registered version")
|
|
100
|
+
_add_cache(command)
|
|
101
|
+
_add_json(command)
|
|
102
|
+
if verb == "fetch":
|
|
103
|
+
_add_force_timeout(command)
|
|
104
|
+
command.add_argument("--source-path", action="append", default=[], metavar="ASSET=PATH")
|
|
105
|
+
command.add_argument("--quiet", action="store_true")
|
|
106
|
+
command.add_argument("--accept-terms", action="store_true")
|
|
107
|
+
else:
|
|
108
|
+
command.add_argument("--verify", action="store_true", help="Hash and validate installed files")
|
|
109
|
+
|
|
91
110
|
viral = commands.add_parser(
|
|
92
111
|
"viral", help="Download the current human-targeted viral collection and paired FASTAs")
|
|
93
112
|
viral.add_argument("--species", default="human",
|
|
@@ -167,6 +186,36 @@ def run(argv=None, prog="orfdata download"):
|
|
|
167
186
|
|
|
168
187
|
args = parser.parse_args(argv)
|
|
169
188
|
try:
|
|
189
|
+
if args.command in ("info", "path", "fetch"):
|
|
190
|
+
from .data_resources import data_info, data_path, fetch_data
|
|
191
|
+
|
|
192
|
+
options = dict(kind=args.kind, version=args.version, cache_root=args.cache_root)
|
|
193
|
+
if args.command == "info":
|
|
194
|
+
_show_result(data_info(args.names, verify_files=args.verify, **options), args.json)
|
|
195
|
+
elif args.command == "path":
|
|
196
|
+
path = str(data_path(args.names, verify_files=args.verify, **options))
|
|
197
|
+
print_json(dict(path=path)) if args.json else print(path)
|
|
198
|
+
else:
|
|
199
|
+
names = list(dict.fromkeys(args.names))
|
|
200
|
+
if len(names) > 1 and (args.source_path or args.version):
|
|
201
|
+
raise ValueError("--source-path and --version require exactly one resource")
|
|
202
|
+
# Resolve every name and terms requirement before starting any downloads.
|
|
203
|
+
for name in names:
|
|
204
|
+
info = data_info(name, **options)
|
|
205
|
+
if info["restricted"] and not args.accept_terms:
|
|
206
|
+
raise ValueError(f"{name!r} requires --accept-terms; see 'orfdata data info {name}'")
|
|
207
|
+
paths = _source_paths(args.source_path, "Source overrides")
|
|
208
|
+
# Source processors may print progress; keep stdout machine-readable.
|
|
209
|
+
with redirect_stdout(sys.stderr):
|
|
210
|
+
output = [fetch_data(name, **options, force=args.force, source_paths=paths,
|
|
211
|
+
timeout=args.timeout, show_progress=not args.quiet and not args.json,
|
|
212
|
+
accept_terms=args.accept_terms) for name in names]
|
|
213
|
+
if args.json:
|
|
214
|
+
print_json(output)
|
|
215
|
+
else:
|
|
216
|
+
for result in output:
|
|
217
|
+
print_fields(result)
|
|
218
|
+
return
|
|
170
219
|
if args.command in ("list", "status"):
|
|
171
220
|
rows = list_data(
|
|
172
221
|
kind=args.kind, species=args.species, contexts=args.context,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"""Discover ORFdata resources and their local installation state."""
|
|
2
2
|
|
|
3
3
|
from collections.abc import Iterable
|
|
4
|
-
from dataclasses import asdict, dataclass
|
|
4
|
+
from dataclasses import asdict, dataclass, replace
|
|
5
5
|
from os import PathLike
|
|
6
|
+
from shlex import join
|
|
6
7
|
from typing import Optional
|
|
7
8
|
|
|
8
9
|
from .reference import canonical_species, species_taxon
|
|
@@ -48,6 +49,17 @@ def default_collections(species: str | int) -> tuple[str, ...]:
|
|
|
48
49
|
return tuple(collection.name for collection in viral_collections(species=species))
|
|
49
50
|
|
|
50
51
|
|
|
52
|
+
def _fetch_command(row):
|
|
53
|
+
if row.acquire is None:
|
|
54
|
+
return None
|
|
55
|
+
args = ["orfdata", "data", "fetch", row.name, "--kind", row.kind]
|
|
56
|
+
if row.version is not None:
|
|
57
|
+
args.extend(["--version", row.version])
|
|
58
|
+
if row.restricted:
|
|
59
|
+
args.append("--accept-terms")
|
|
60
|
+
return join(args)
|
|
61
|
+
|
|
62
|
+
|
|
51
63
|
def collection_state(
|
|
52
64
|
name: str,
|
|
53
65
|
*,
|
|
@@ -121,13 +133,15 @@ def _viral(cache_root, verify_files):
|
|
|
121
133
|
path=str(_bundle_path(cache_root, species, collection)),
|
|
122
134
|
origin="download" if status == "available" else None,
|
|
123
135
|
acquire="download",
|
|
124
|
-
command=
|
|
136
|
+
command=None,
|
|
125
137
|
))
|
|
126
138
|
return tuple(rows)
|
|
127
139
|
|
|
128
140
|
|
|
129
141
|
def _catalogs(cache_root, verify_files):
|
|
130
|
-
from .
|
|
142
|
+
from importlib.resources import files
|
|
143
|
+
|
|
144
|
+
from .catalog import _BUNDLED, catalog_status
|
|
131
145
|
from .catalogs import CatalogRegistry
|
|
132
146
|
|
|
133
147
|
registry = CatalogRegistry(cache_root=cache_root)
|
|
@@ -139,9 +153,6 @@ def _catalogs(cache_root, verify_files):
|
|
|
139
153
|
else:
|
|
140
154
|
inspection = registry.inspect(item.name, item.version, verify_files=verify_files)
|
|
141
155
|
status = inspection.status
|
|
142
|
-
command = None
|
|
143
|
-
if item.acquire is not None:
|
|
144
|
-
command = f"orfdata download catalog {item.name} --version {item.version}"
|
|
145
156
|
rows.append(DataStatus(
|
|
146
157
|
kind="catalog",
|
|
147
158
|
name=item.name,
|
|
@@ -151,10 +162,11 @@ def _catalogs(cache_root, verify_files):
|
|
|
151
162
|
taxon_ids=(species_taxon(item.species),),
|
|
152
163
|
contexts=(),
|
|
153
164
|
status=status,
|
|
154
|
-
path=str(inspection.path) if inspection is not None else
|
|
165
|
+
path=(str(inspection.path) if inspection is not None else
|
|
166
|
+
str(files("orfdata").joinpath(f"data/{_BUNDLED[item.species, item.genome_build]}/catalog.json.gz"))),
|
|
155
167
|
origin=item.installed if status == "available" else None,
|
|
156
168
|
acquire=item.acquire,
|
|
157
|
-
command=
|
|
169
|
+
command=None,
|
|
158
170
|
))
|
|
159
171
|
return tuple(rows)
|
|
160
172
|
|
|
@@ -184,7 +196,7 @@ def _datasets(cache_root, verify_files):
|
|
|
184
196
|
path=str(inspection.path),
|
|
185
197
|
origin=("download" if published else "build") if inspection.status == "available" else None,
|
|
186
198
|
acquire=acquire,
|
|
187
|
-
command=
|
|
199
|
+
command=None,
|
|
188
200
|
))
|
|
189
201
|
return tuple(rows)
|
|
190
202
|
|
|
@@ -211,8 +223,7 @@ def _references(cache_root, verify_files):
|
|
|
211
223
|
path=str(inspection.path),
|
|
212
224
|
origin="download" if inspection.status == "available" else None,
|
|
213
225
|
acquire="download",
|
|
214
|
-
command=
|
|
215
|
-
f"--reference {spec.reference.key} --asset {spec.source.asset_id}"),
|
|
226
|
+
command=None,
|
|
216
227
|
))
|
|
217
228
|
return tuple(rows)
|
|
218
229
|
|
|
@@ -236,7 +247,7 @@ def _genomes(cache_root, verify_files):
|
|
|
236
247
|
path=str(inspection.path),
|
|
237
248
|
origin="download" if inspection.status == "available" else None,
|
|
238
249
|
acquire="download",
|
|
239
|
-
command=
|
|
250
|
+
command=None,
|
|
240
251
|
))
|
|
241
252
|
return tuple(rows)
|
|
242
253
|
|
|
@@ -248,7 +259,6 @@ def _chains(cache_root, verify_files):
|
|
|
248
259
|
for chain in pinned_chains():
|
|
249
260
|
inspection = _chain_registry(chain, cache_root).inspect(
|
|
250
261
|
chain.name, "1", verify_files=verify_files)
|
|
251
|
-
accept = " --accept-terms" if chain.restricted else ""
|
|
252
262
|
rows.append(DataStatus(
|
|
253
263
|
kind="chain",
|
|
254
264
|
name=chain.name,
|
|
@@ -261,8 +271,7 @@ def _chains(cache_root, verify_files):
|
|
|
261
271
|
path=str(inspection.path),
|
|
262
272
|
origin="download" if inspection.status == "available" else None,
|
|
263
273
|
acquire="download",
|
|
264
|
-
command=
|
|
265
|
-
f"--species {chain.species}{accept}"),
|
|
274
|
+
command=None,
|
|
266
275
|
restricted=chain.restricted,
|
|
267
276
|
))
|
|
268
277
|
return tuple(rows)
|
|
@@ -327,4 +336,5 @@ def list_data(
|
|
|
327
336
|
if predicate(context in row.contexts for context in selected_contexts)]
|
|
328
337
|
if installed is not None:
|
|
329
338
|
rows = [row for row in rows if row.installed is installed]
|
|
330
|
-
return tuple(
|
|
339
|
+
return tuple(replace(row, command=_fetch_command(row)) for row in
|
|
340
|
+
sorted(rows, key=lambda row: (row.kind, row.name, row.version or "")))
|
|
@@ -65,7 +65,7 @@ def _registry(genome, cache_root):
|
|
|
65
65
|
store_path=lambda name, version: get_data_dir(cache_root) / "genomes" / name / _digest(assets))
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
def install_genome(name, *, force=False, source_paths=None, cache_root=None):
|
|
68
|
+
def install_genome(name, *, force=False, source_paths=None, cache_root=None, download_options=None):
|
|
69
69
|
"""Download a pinned annotation, check each file's size and SHA-256, and index it for PyEnsembl.
|
|
70
70
|
|
|
71
71
|
``source_paths`` maps ``"gtf"``, ``"transcripts"`` or ``"proteins"`` to
|
|
@@ -79,7 +79,8 @@ def install_genome(name, *, force=False, source_paths=None, cache_root=None):
|
|
|
79
79
|
if unknown:
|
|
80
80
|
raise ValueError(f"Unknown genome files {sorted(unknown)}; use {', '.join(_ROLES)}")
|
|
81
81
|
paths = {_files(genome)[role]: str(path) for role, path in source_paths.items()}
|
|
82
|
-
_registry(genome, cache_root).download(genome.name, "1", force=force, source_paths=paths
|
|
82
|
+
_registry(genome, cache_root).download(genome.name, "1", force=force, source_paths=paths,
|
|
83
|
+
**(download_options or {}))
|
|
83
84
|
return _open(genome, cache_root, rebuild=force)
|
|
84
85
|
|
|
85
86
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.42.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42.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
|
|
@@ -64,10 +64,18 @@ normalized sources do not need it.
|
|
|
64
64
|
List every bundled, downloadable or buildable resource and what is installed:
|
|
65
65
|
|
|
66
66
|
```sh
|
|
67
|
-
orfdata
|
|
68
|
-
orfdata
|
|
67
|
+
orfdata data list
|
|
68
|
+
orfdata data status
|
|
69
|
+
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
70
|
+
orfdata data fetch pfizer-atlas-dog-peptide-evidence
|
|
71
|
+
orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
69
72
|
```
|
|
70
73
|
|
|
74
|
+
`data fetch NAME` downloads a published artifact or builds from pinned sources
|
|
75
|
+
when no artifact is distributed. The same command handles optional catalogues
|
|
76
|
+
such as `openprot-mouse` and datasets such as `peptideatlas-dog-peptides`.
|
|
77
|
+
`downloads` and `download` are aliases for `data`; `info` and `path` stay offline.
|
|
78
|
+
|
|
71
79
|
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
72
80
|
200-reference GDC viral screen for human transcriptome analysis;
|
|
73
81
|
`--collections none` skips it. Viral support is part of the base install, and
|
|
@@ -10,6 +10,7 @@ test.sh
|
|
|
10
10
|
docs/catalogs.md
|
|
11
11
|
docs/copy-yeast.md
|
|
12
12
|
docs/coverage.md
|
|
13
|
+
docs/dog-data-sources.md
|
|
13
14
|
docs/dog-peptides.md
|
|
14
15
|
docs/downloads.md
|
|
15
16
|
docs/downstream.md
|
|
@@ -41,6 +42,7 @@ orfdata/catalog_manifest.py
|
|
|
41
42
|
orfdata/catalogs.py
|
|
42
43
|
orfdata/cli.py
|
|
43
44
|
orfdata/cli_output.py
|
|
45
|
+
orfdata/data_resources.py
|
|
44
46
|
orfdata/dataset.py
|
|
45
47
|
orfdata/dataset_cli.py
|
|
46
48
|
orfdata/datasets.py
|
|
@@ -130,6 +132,7 @@ tests/test_artifact_archives.py
|
|
|
130
132
|
tests/test_catalog_registry.py
|
|
131
133
|
tests/test_copy.py
|
|
132
134
|
tests/test_cross_reference_pairing.py
|
|
135
|
+
tests/test_data_resources.py
|
|
133
136
|
tests/test_dog_export_read_ahead.py
|
|
134
137
|
tests/test_dog_ncorf_search.py
|
|
135
138
|
tests/test_dog_peptides.py
|