orfdata 0.43.1__tar.gz → 0.45.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.43.1/orfdata.egg-info → orfdata-0.45.0}/PKG-INFO +6 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/README.md +5 -1
- orfdata-0.45.0/docs/cli-design.md +53 -0
- orfdata-0.45.0/docs/cli.md +142 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/downloads.md +94 -4
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/measurements.md +4 -3
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/pairing.md +3 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/proteome.md +2 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/viral.md +5 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/mkdocs.yml +2 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/__init__.py +4 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/catalog.py +59 -25
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/catalog_cli.py +61 -19
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/catalogs.py +20 -5
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/cli.py +168 -57
- orfdata-0.45.0/orfdata/cli_output.py +194 -0
- orfdata-0.45.0/orfdata/cli_parser.py +134 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data_resources.py +47 -15
- orfdata-0.45.0/orfdata/dataset_cli.py +295 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/datasets.py +39 -8
- orfdata-0.45.0/orfdata/download_cli.py +392 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/downloads.py +107 -27
- orfdata-0.45.0/orfdata/errors.py +10 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/genomes.py +4 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/genomes_cli.py +28 -10
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/install.py +45 -13
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/liftover.py +9 -5
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/liftover_cli.py +52 -21
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/net.py +2 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/proteome.py +12 -6
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/proteome_cli.py +34 -28
- orfdata-0.45.0/orfdata/version.py +1 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_cli.py +45 -29
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_coverage.py +2 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_panel.py +395 -74
- {orfdata-0.43.1 → orfdata-0.45.0/orfdata.egg-info}/PKG-INFO +6 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata.egg-info/SOURCES.txt +8 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_catalog_registry.py +11 -10
- orfdata-0.45.0/tests/test_cli_audit.py +390 -0
- orfdata-0.45.0/tests/test_cli_options.py +174 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_copy.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_cross_reference_pairing.py +2 -2
- orfdata-0.45.0/tests/test_data_resources.py +387 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_dog_peptides.py +4 -4
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_downloads.py +10 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_evidence_rules.py +7 -3
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_evidence_summary.py +2 -2
- orfdata-0.45.0/tests/test_exit_statuses.py +264 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_genbank_equivalence.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_genomes.py +2 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_ingolia.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_initiation_context.py +5 -5
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_liftover.py +7 -7
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_local_build_queries.py +6 -6
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_measurements.py +4 -4
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_openprot.py +2 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_paired_selectors.py +16 -2
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pairing.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_rna.py +3 -3
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_proteome.py +14 -14
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_reference_mapping.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_reference_orf.py +1 -1
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_region_targets.py +2 -2
- orfdata-0.45.0/tests/test_resume.py +111 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_search_reference.py +3 -3
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_selectors.py +16 -8
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_uorf_catalog.py +13 -11
- orfdata-0.45.0/tests/test_viral_bundle.py +534 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_cli.py +2 -1
- orfdata-0.43.1/orfdata/cli_output.py +0 -48
- orfdata-0.43.1/orfdata/dataset_cli.py +0 -187
- orfdata-0.43.1/orfdata/download_cli.py +0 -320
- orfdata-0.43.1/orfdata/version.py +0 -1
- orfdata-0.43.1/tests/test_data_resources.py +0 -161
- orfdata-0.43.1/tests/test_viral_bundle.py +0 -228
- {orfdata-0.43.1 → orfdata-0.45.0}/LICENSE +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/MANIFEST.in +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/deploy.sh +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/catalogs.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/copy-yeast.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/coverage.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/dog-data-sources.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/dog-peptides.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/downstream.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/examples.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/human-tissue.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/index.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/ingolia-yeast.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/mammary-stroma.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/pfizer-peptides.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/pfizer-protein.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/pfizer-rna.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/reference.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/search-references.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/source-references.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/species.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/storage.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs/stylesheets/docs.css +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/docs.sh +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/lint.sh +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/_pinned_genome.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/_structure.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/artifact_archives.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/build.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/catalog_manifest.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/catalogs.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/chains.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/datasets.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/genomes.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/data/viral/subsets.yaml +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/ensembl.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/evidence.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/evidence_summary.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/fasta.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/genbank.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/gtf.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/measurements.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/model.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/numeric_vector.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/pairing.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/record_sources.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/reference.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/reference_ledger.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/reference_table.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/refseq.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/rna.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/search_reference.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sequence.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/__init__.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/copy.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/ingolia.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/kaabinejadian.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/mammary_stroma.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/ncorf_mammals.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/openprot.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/peptideatlas.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_attribution.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_definitions.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_evidence.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_lineage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_native.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_queries.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_rna.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/pfizer_vendor.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/riborf.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/riborf_native.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/sources/wang.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_annotation.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_registry.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata/viral_subsets.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/pyproject.toml +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/setup.cfg +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/test.sh +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/conftest.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/aggregate_evidence.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/internal-stop/gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/internal-stop/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/internal-stop/ncrna.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/internal-stop/protein.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/internal-stop/rna.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/ncrna.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/protein.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ensembl/rna.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ingolia/readMe.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/kaabinejadian/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/kaabinejadian/Results.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/kaabinejadian/manifest-v1.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/kaabinejadian/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/kaabinejadian/sdrf.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/geo.soft.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/paper.xml +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/peptides.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/project.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/proteinGroups.txt +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/mammary_stroma/rna.csv.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/S3.xlsx +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/human.bed +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/human.pep.fa +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/mouse.bed +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/ensembl106.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/peptideatlas/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/peptideatlas/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/acquisition-missingness.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/definitions.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/dog-panel.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/membership-search-slice.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/memberships.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/native.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/parent-status-search-slice.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/parent-status.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/psm-parent-sets-search-slice.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/psm-parent-sets.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/search-slice.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/search-slice.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/study-slice.xml +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer/vendor/summary-samples.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/counts.csv.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/dog-expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/dog-manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/mouse-expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/pfizer_rna/samples.xlsx +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/ensembl115.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/mitochondrial.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/transcript_orf_v1_0.42.0.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/references/uniprot_literature.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/regions/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/regions/ingolia.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/SD3.xlsx +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/ensembl107.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/gencodeM25.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/gencodeM25.rna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/v3-manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/search_reference/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/search_reference/dog.fasta +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/search_reference/ensembl83-expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/search_reference/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/README.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/generate.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v1.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v2.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v3.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v4.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/storage/v4.sqlite +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/NC_001526.4.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/NOTICE.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/annotation.gtf.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/copies.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/expected.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/manifest.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/protein.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/rna.zip +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/data/wang/search.fasta.gz +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_artifact_archives.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_dog_export_read_ahead.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_dog_ncorf_search.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_ensembl.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_ensembl_search_reference.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_export_sqlite_rows.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_extraction_budget.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_ftps_sqlite.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_genbank.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_genetic_codes.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_mammary_stroma.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_merge_catalogs.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_more_species.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_ncorf_mammals.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_numeric_vector.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_orf_cases.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_orf_gtf.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_package_dog_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_package_sqlite_archive.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_attribution.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_definitions.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_evidence.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_lineage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_native.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_pfizer_vendor.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_protein_set.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_proteome_external.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_proteome_fasta_tokens.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_proteome_producer_graph.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_reference_ledger.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_reference_table.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_refseq.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_riborf.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_storage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_transcript_orf_serialization.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_verify_dog_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_collections.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_completeness.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_coverage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_initiation.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_origin_join.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_sources.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_viral_subsets.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tests/test_wang.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/README-dog-results.md +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/__init__.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/build_dog_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/build_gdc_viral_coverage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/build_hpv16_cds.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/build_reference_ledger.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/dog_result_plan.json +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/export_dog_lineage.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/export_dog_results.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/export_sqlite_rows.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/extraction_budget.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/ftps_sqlite.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/inspect_dog_results.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/normalize_dog_evidence.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/package_dog_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/package_sqlite_archive.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/verify_dog_dataset.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/verify_mammary_stroma.py +0 -0
- {orfdata-0.43.1 → orfdata-0.45.0}/tools/verify_riborf_native.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.45.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
|
|
@@ -61,9 +61,11 @@ downloaded explicitly and checked against their pinned checksums. The
|
|
|
61
61
|
database through its custom VFS; released dataset queries and rebuilds from
|
|
62
62
|
normalized sources do not need it.
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
Run `orfdata` for the command guide, or `orfdata help data` to discover data
|
|
65
|
+
subcommands. List downloadable or buildable resources and what is installed:
|
|
65
66
|
|
|
66
67
|
```sh
|
|
68
|
+
orfdata
|
|
67
69
|
orfdata data list
|
|
68
70
|
orfdata data status
|
|
69
71
|
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
@@ -75,6 +77,8 @@ orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
|
75
77
|
when no artifact is distributed. The same command handles optional catalogues
|
|
76
78
|
such as `openprot-mouse` and datasets such as `peptideatlas-dog-peptides`.
|
|
77
79
|
`downloads` and `download` are aliases for `data`; `info` and `path` stay offline.
|
|
80
|
+
Output is readable by default; use `--json` for scripts and `--limit 0` for full
|
|
81
|
+
human tables. See the [CLI guide and migration notes](https://openvax.github.io/orfdata/cli/).
|
|
78
82
|
|
|
79
83
|
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
80
84
|
200-reference GDC viral screen for human transcriptome analysis;
|
|
@@ -29,9 +29,11 @@ downloaded explicitly and checked against their pinned checksums. The
|
|
|
29
29
|
database through its custom VFS; released dataset queries and rebuilds from
|
|
30
30
|
normalized sources do not need it.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Run `orfdata` for the command guide, or `orfdata help data` to discover data
|
|
33
|
+
subcommands. List downloadable or buildable resources and what is installed:
|
|
33
34
|
|
|
34
35
|
```sh
|
|
36
|
+
orfdata
|
|
35
37
|
orfdata data list
|
|
36
38
|
orfdata data status
|
|
37
39
|
orfdata data info pfizer-atlas-dog-peptide-evidence
|
|
@@ -43,6 +45,8 @@ orfdata data path pfizer-atlas-dog-peptide-evidence
|
|
|
43
45
|
when no artifact is distributed. The same command handles optional catalogues
|
|
44
46
|
such as `openprot-mouse` and datasets such as `peptideatlas-dog-peptides`.
|
|
45
47
|
`downloads` and `download` are aliases for `data`; `info` and `path` stay offline.
|
|
48
|
+
Output is readable by default; use `--json` for scripts and `--limit 0` for full
|
|
49
|
+
human tables. See the [CLI guide and migration notes](https://openvax.github.io/orfdata/cli/).
|
|
46
50
|
|
|
47
51
|
`orfdata setup --species human` also installs `gdc-viruses`, the default
|
|
48
52
|
200-reference GDC viral screen for human transcriptome analysis;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# CLI design and audit
|
|
2
|
+
|
|
3
|
+
ORFdata's command line is for discovering data, inspecting local state, acquiring
|
|
4
|
+
explicitly selected resources, and exporting records for other tools. Running
|
|
5
|
+
`orfdata` should explain these tasks without loading a catalogue or downloading
|
|
6
|
+
anything.
|
|
7
|
+
|
|
8
|
+
The design follows the [Command Line Interface Guidelines](https://clig.dev/#help):
|
|
9
|
+
show help for bare command groups, make subcommands discoverable, keep successful
|
|
10
|
+
output brief, and offer explicit machine formats. The output conventions also
|
|
11
|
+
draw on OpenVax's OncoRef inventory summaries and MHCtools' shared table formatter.
|
|
12
|
+
|
|
13
|
+
## Conventions
|
|
14
|
+
|
|
15
|
+
- `orfdata`, `orfdata help`, and `orfdata --help` show the command index.
|
|
16
|
+
- `orfdata help COMMAND` and `orfdata COMMAND --help` show command help.
|
|
17
|
+
- Human summaries and tables are the default. `--json` selects a complete JSON
|
|
18
|
+
document. Export commands also offer explicit formats such as FASTA or JSONL.
|
|
19
|
+
- Human tables preview 25 rows; `--limit 0` shows all rows. Machine exports are
|
|
20
|
+
complete regardless of the preview limit. Wrapping is only for human output.
|
|
21
|
+
- Results go to stdout; progress and errors go to stderr. Proteome FASTA stays on
|
|
22
|
+
stdout and its build summary stays on stderr, as does the lift summary.
|
|
23
|
+
- Discovery and help never acquire resources. Downloads and builds require an
|
|
24
|
+
explicit acquisition command and continue to enforce source terms and pins.
|
|
25
|
+
- Errors identify the problem and return a status a script can branch on: 1 when
|
|
26
|
+
the command fails, 2 for a command-line mistake the parser or the command's own
|
|
27
|
+
checks catch (library code validates a few values itself, and those exit 1), and 3 when a
|
|
28
|
+
resource it needs isn't installed. Only command-line mistakes point to command
|
|
29
|
+
help; a missing installation names the command that installs it. Unexpected
|
|
30
|
+
internal errors keep their traceback rather than being reported as user errors.
|
|
31
|
+
|
|
32
|
+
## Audit
|
|
33
|
+
|
|
34
|
+
The command audit tests enumerate the parser tree, exercise help and bare groups,
|
|
35
|
+
and run each leaf with offline fixtures. Acquisition tests use tiny files or
|
|
36
|
+
replace the external acquisition boundary; they do not fetch production datasets
|
|
37
|
+
or rebuild genome indexes. Export tests check structured payloads separately from
|
|
38
|
+
human previews. This keeps the audit reproducible and small enough for CI.
|
|
39
|
+
|
|
40
|
+
Every Tests workflow run attaches `cli-audit-python-VERSION` artifacts containing
|
|
41
|
+
the actual help and command transcripts. Run the same audit locally with:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
ORFDATA_CLI_AUDIT_DIR=/tmp/orfdata-cli-audit python -m pytest tests/test_cli_audit.py
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The audit currently exercises 43 leaf commands in both human and JSON modes, plus
|
|
48
|
+
the top-level guide, version, command aliases, nested help, errors, bounded
|
|
49
|
+
previews, and complete machine exports. Its parser enumeration fails if a new
|
|
50
|
+
command has no execution case. A tiny FASTA inventory file replaces the inventory
|
|
51
|
+
download; other acquisitions use checksum-pinned fixtures and fixture viral
|
|
52
|
+
records through the real handlers. These checks are not production dataset
|
|
53
|
+
download or biological coverage validation.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Command-line guide
|
|
2
|
+
|
|
3
|
+
Run `orfdata` to see the command index and common starting points. It prints
|
|
4
|
+
help and exits without reading a catalogue or acquiring data.
|
|
5
|
+
|
|
6
|
+
```sh
|
|
7
|
+
orfdata
|
|
8
|
+
orfdata help data
|
|
9
|
+
orfdata data list --species dog
|
|
10
|
+
orfdata data status
|
|
11
|
+
orfdata data info pfizer-atlas-dog-protein
|
|
12
|
+
orfdata data fetch pfizer-atlas-dog-protein
|
|
13
|
+
orfdata data path pfizer-atlas-dog-protein
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
`list` shows registered resources, including resources that need a local build.
|
|
17
|
+
`status` shows resources with files in the selected local cache, including bundled
|
|
18
|
+
data, damaged installs that `data fetch` will repair, and unreadable ones, whose
|
|
19
|
+
permissions need fixing (or `--force` to replace them). Each damaged or unreadable
|
|
20
|
+
row's exact fetch command is printed below the table. Neither command downloads
|
|
21
|
+
anything. Use `--cache-root DIR` if your data
|
|
22
|
+
lives outside the default cache, and `--verify` when you want to hash local files.
|
|
23
|
+
|
|
24
|
+
## Finding commands
|
|
25
|
+
|
|
26
|
+
`orfdata help COMMAND` and `orfdata COMMAND --help` are equivalent. Bare command
|
|
27
|
+
groups such as `orfdata datasets` show their subcommands. `download` and
|
|
28
|
+
`downloads` are aliases for `data`.
|
|
29
|
+
|
|
30
|
+
| Command | Purpose | Subcommands |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `data` | Discover and acquire resources across all sources | `list`, `status`, `info`, `path`, `fetch`, `catalog`, `dataset`, `reference`, `genome`, `chains`, `viral` |
|
|
33
|
+
| `query` | Preview or export ORF records | Use `--gene`, `--transcript`, `--orf-id`, `--species`, or `--catalog` |
|
|
34
|
+
| `catalogs` | Manage optional ORF catalogues | `list`, `status`, `info`, `inspect`, `download`, `build`, `query` |
|
|
35
|
+
| `datasets` | Manage quantitative measurements and their source references | `list`, `info`, `inspect`, `download`, `build`, `query`, `pairs`, `references`, `download-reference`, `inspect-reference`, `query-reference` |
|
|
36
|
+
| `proteome` | Export a reference proteome as FASTA | Use `--species` and `--release`, or `--genome` |
|
|
37
|
+
| `viral` | Inspect viral reference coverage and installed layers | `coverage`, `contexts`, `subsets`, `summary`, `completeness`, `inventory download` |
|
|
38
|
+
| `setup` | Install a species' default catalogues, chains and collections | Requires `--species` |
|
|
39
|
+
| `genomes` | Manage pinned annotations | `list`, `install` |
|
|
40
|
+
| `chains` | Manage assembly mapping files | `list`, `download` |
|
|
41
|
+
| `lift` | Write an ORF catalogue on another assembly | Requires `--to` and `--output` |
|
|
42
|
+
|
|
43
|
+
`--cache-root DIR` works before or after a subcommand in every command group, so
|
|
44
|
+
these are the same (`viral coverage`, `contexts` and `subsets` read packaged data
|
|
45
|
+
only and refuse it):
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
orfdata datasets --cache-root /path/to/cache query pfizer-atlas-dog-protein
|
|
49
|
+
orfdata datasets query pfizer-atlas-dog-protein --cache-root /path/to/cache
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Every command that downloads takes `--timeout SECONDS`: how long a download may
|
|
53
|
+
stall before it is retried, then fails (default 60; `--timeout none` waits
|
|
54
|
+
indefinitely). The chromosome FASTA that `genomes install --genome-fasta` passes
|
|
55
|
+
to PyEnsembl is downloaded without a timeout. The `--registry` option of
|
|
56
|
+
`catalogs` and `datasets` stays before the subcommand:
|
|
57
|
+
`orfdata catalogs --registry registry.json list`.
|
|
58
|
+
|
|
59
|
+
## Human previews and complete exports
|
|
60
|
+
|
|
61
|
+
Tables and short field summaries are the default. Tables show up to 25 entries;
|
|
62
|
+
`--limit N` changes the preview and `--limit 0` shows every row. Tables wrap to
|
|
63
|
+
terminal width. Metadata summaries omit bulky pins, processing details and long
|
|
64
|
+
lists with a pointer to the full export.
|
|
65
|
+
|
|
66
|
+
Use explicit formats in scripts:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
orfdata data list --species dog --json
|
|
70
|
+
orfdata catalogs info ncorf-mammals-mouse --json
|
|
71
|
+
orfdata query --gene TPST1 --json
|
|
72
|
+
orfdata query --species mouse --format fasta > mouse-ncorfs.fasta
|
|
73
|
+
orfdata datasets query pfizer-atlas-dog-protein --unit iBAQ --format jsonl
|
|
74
|
+
orfdata datasets pairs canine-mammary-stroma --basis same_specimen --json
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`--json` emits one complete JSON document. Dataset `query` and `pairs` return
|
|
78
|
+
JSON arrays; `--format jsonl` streams one original record per line. ORF queries
|
|
79
|
+
also support `--format tsv`, `fasta`, and `gtf`. Viral coverage supports TSV.
|
|
80
|
+
The preview limit never truncates a machine export.
|
|
81
|
+
|
|
82
|
+
Measurement previews keep native units, scales and statuses, display values to
|
|
83
|
+
six significant digits, and abbreviate long identifiers. Exports retain full
|
|
84
|
+
identifiers and numeric precision. Reference
|
|
85
|
+
labels distinguish scoped identifiers that happen to have the same spelling.
|
|
86
|
+
Mapped measurements show the original observation and its mapping attribution;
|
|
87
|
+
pair previews show their pairing basis, temporal relationship and target
|
|
88
|
+
relationship. Full reference identities and provenance remain in JSON/JSONL.
|
|
89
|
+
|
|
90
|
+
## Exit statuses
|
|
91
|
+
|
|
92
|
+
| Status | Meaning |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| 0 | The command succeeded. |
|
|
95
|
+
| 1 | The command failed: a download or checksum failed, local data or a file you passed is damaged or inconsistent, or a name the data is searched for isn't there (for example an unknown resource name or ORF ID). |
|
|
96
|
+
| 2 | The command line is invalid, as the parser or the command's own checks find it: an unknown command or option, a missing argument, options that can't be combined, a restricted resource without `--accept-terms`, an out-of-range locus or length, or a value the command checks against the choices it lists (for example a dataset `--reference`). The message points to `--help`. |
|
|
97
|
+
| 3 | A resource the command needs isn't installed. The message names the command that installs it, such as `orfdata data fetch NAME`. |
|
|
98
|
+
|
|
99
|
+
Those checks run before anything is read, so the mistakes they catch exit 2
|
|
100
|
+
whatever is installed. Some option values are checked only by the library code
|
|
101
|
+
that uses them, and a bad one there exits 1 like any other failure: for example,
|
|
102
|
+
an unknown `orfdata viral coverage --context` or `datasets pairs --basis`.
|
|
103
|
+
|
|
104
|
+
In Python, a missing installation raises `orfdata.NotInstalledError`, which is
|
|
105
|
+
also a `FileNotFoundError` and a `ValueError`. Up to 0.43, nearly every failure
|
|
106
|
+
exited 2 (a partial `setup` exited 1); scripts that tested for 2 should test for
|
|
107
|
+
a nonzero status, or for 3 before installing what is missing.
|
|
108
|
+
|
|
109
|
+
## Output streams
|
|
110
|
+
|
|
111
|
+
Results and exports go to stdout. Progress and errors go to stderr. `data path`
|
|
112
|
+
and `viral inventory download` print a plain path by default. `proteome` writes
|
|
113
|
+
FASTA to stdout unless `--output` is supplied; its summary goes to stderr.
|
|
114
|
+
`lift` writes its catalogue to `--output` and also summarizes on stderr. For
|
|
115
|
+
these two commands, `--json` selects the summary format on stderr.
|
|
116
|
+
|
|
117
|
+
## Migrating scripts from 0.42 or 0.43
|
|
118
|
+
|
|
119
|
+
Bare `orfdata` now shows help. Use `orfdata query --json` for the previous
|
|
120
|
+
unfiltered JSON catalogue export. Existing root query flags (for example,
|
|
121
|
+
`orfdata --gene TPST1`) still select the same records, with a human preview by
|
|
122
|
+
default.
|
|
123
|
+
|
|
124
|
+
Add `--json` to management commands or ORF queries whose JSON output your script
|
|
125
|
+
parses. Add `--format jsonl` to dataset queries or paired-measurement exports to
|
|
126
|
+
retain their previous streaming representation. Explicit FASTA, TSV and GTF
|
|
127
|
+
exports retain their formats.
|
|
128
|
+
|
|
129
|
+
Check exit statuses again: failures now exit 1, command-line mistakes 2 and a
|
|
130
|
+
missing installation 3, where 0.42 and 0.43 exited 2 for nearly every failure (see
|
|
131
|
+
[Exit statuses](#exit-statuses)). `orfdata data status` and
|
|
132
|
+
`list_data(local=True)` now include damaged and unreadable installations, so a
|
|
133
|
+
script that reads them as usable installations only should filter on
|
|
134
|
+
`installed`.
|
|
135
|
+
|
|
136
|
+
Stored data keeps its format, apart from viral collections: new installs go to a
|
|
137
|
+
store that earlier versions don't read, and collections they installed still
|
|
138
|
+
open. The [release notes](https://github.com/openvax/orfdata/blob/main/CHANGELOG.md)
|
|
139
|
+
list every change, including those to Python APIs.
|
|
140
|
+
|
|
141
|
+
The [CLI design and audit](cli-design.md) explains the conventions and the
|
|
142
|
+
fixture-backed command audit that checks them in CI.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# Discover and download data
|
|
2
2
|
|
|
3
|
+
Run `orfdata` for the command guide, or `orfdata data` to see its subcommands.
|
|
3
4
|
ORFdata has one common entry point for data acquisition:
|
|
4
5
|
|
|
5
6
|
```sh
|
|
@@ -24,12 +25,20 @@ metadata, including sizes and redistribution terms where declared. `path NAME`
|
|
|
24
25
|
prints an installed file or directory for scripts; missing data is an error,
|
|
25
26
|
and never triggers a download. Use `--verify` on reads to validate local bytes,
|
|
26
27
|
`--cache-root DIR` to select a cache, and `--json` for machine output.
|
|
27
|
-
`fetch --json` returns one result per distinct requested name.
|
|
28
|
+
`fetch --json` returns one result per distinct requested name. Human tables
|
|
29
|
+
preview 25 rows; `list` and `status` take those rows from each resource kind in
|
|
30
|
+
turn, so every kind appears whenever there is room for one row of each (the
|
|
31
|
+
default always has), and say what each kind left out. Use `--limit 0` for all
|
|
32
|
+
rows. `--json` always returns complete
|
|
33
|
+
results. See the [CLI guide](cli.md) for output formats and migration notes.
|
|
28
34
|
|
|
29
35
|
Use `--kind` to disambiguate colliding resource names. For one resource,
|
|
30
36
|
`--version VERSION` selects a historical release and `--source-path ASSET=PATH`
|
|
31
37
|
provides already downloaded catalogue/dataset sources or genome files. Source
|
|
32
|
-
overrides remain checksum-checked.
|
|
38
|
+
overrides remain checksum-checked. `fetch` reuses a valid installation and
|
|
39
|
+
replaces one whose files fail verification, reporting it as `repaired`, as
|
|
40
|
+
`setup` does; `--force` installs a fresh generation even over valid files, and is
|
|
41
|
+
needed to replace files that can't be read.
|
|
33
42
|
Restricted chain downloads require `--accept-terms` after reviewing `info`.
|
|
34
43
|
|
|
35
44
|
The same operations are available in Python:
|
|
@@ -59,8 +68,12 @@ to every resource kind. Focused command groups such as `orfdata viral coverage`
|
|
|
59
68
|
|
|
60
69
|
`list` shows every bundled, downloadable or locally buildable primary resource
|
|
61
70
|
and its current state, including native protein search references declared by
|
|
62
|
-
quantitative datasets. `status` shows resources
|
|
63
|
-
|
|
71
|
+
quantitative datasets. `status` shows resources with local files: usable ones
|
|
72
|
+
and damaged or unreadable installs. `data fetch` replaces damaged files;
|
|
73
|
+
unreadable ones are left alone until their permissions are fixed or `--force` is
|
|
74
|
+
given. For catalogues, datasets, search references, genomes and chains, a repair
|
|
75
|
+
installs a fresh generation and leaves the damaged one in place until the cache
|
|
76
|
+
is pruned, as `--force` does; a viral collection is rebuilt in place. Filter either command with `--kind` or `--species`; use `--installed` or
|
|
64
77
|
`--missing` with `list`, `--json` for programs, and `--verify` to hash installed
|
|
65
78
|
files. Discovery and status commands never acquire or repair data.
|
|
66
79
|
|
|
@@ -94,6 +107,50 @@ command, and resolved cache path. Status values follow DataCache: `available`,
|
|
|
94
107
|
an error rather than an empty listing, so a typo never reads as "nothing is
|
|
95
108
|
available".
|
|
96
109
|
|
|
110
|
+
## Interrupted downloads
|
|
111
|
+
|
|
112
|
+
A published download restarts from the beginning by default. (A local build
|
|
113
|
+
already keeps the source files it finished downloading, so rerunning it fetches
|
|
114
|
+
only what is missing.) On an unreliable connection, add `--resume` to
|
|
115
|
+
`orfdata data fetch` or `orfdata setup` (`resume=True` in `fetch_data` and
|
|
116
|
+
`install_species`, or `resume="auto"` in a registry's download options).
|
|
117
|
+
Rerunning the same command with `--resume` then requests only the bytes not yet
|
|
118
|
+
received for published catalogues, genome and chain files, search references,
|
|
119
|
+
a build's source files, and split archives such as the four parts of
|
|
120
|
+
`pfizer-atlas-dog-peptide-evidence`.
|
|
121
|
+
|
|
122
|
+
Resuming costs disk space, which is why it is off by default:
|
|
123
|
+
|
|
124
|
+
- Partial downloads and their staging stay in the cache after a failure, in
|
|
125
|
+
owner-only `.staging-*` and `.datacache-resume-*` directories beside the
|
|
126
|
+
resource. Only a later successful `--resume` install of the same resource
|
|
127
|
+
removes them; an install without `--resume` uses its own staging and leaves
|
|
128
|
+
them. Delete them yourself to reclaim the space from a download you abandon.
|
|
129
|
+
- An archive keeps every downloaded part until the dataset is installed. For
|
|
130
|
+
`pfizer-atlas-dog-peptide-evidence` that adds the 6.9 GB of parts to the peak
|
|
131
|
+
space the install needs, which is otherwise about 32 GB.
|
|
132
|
+
- A finished resumed file is copied out of its partial before it is installed,
|
|
133
|
+
briefly needing twice that file's size.
|
|
134
|
+
- An archive's resumable staging isn't named per user, so in a shared cache one
|
|
135
|
+
user's interrupted `--resume` install stops another user's `--resume` install
|
|
136
|
+
of the same dataset until it is removed. Installs without `--resume` aren't
|
|
137
|
+
affected.
|
|
138
|
+
|
|
139
|
+
Datasets published as one compressed SQLite file can't resume: that is every
|
|
140
|
+
published dataset except `pfizer-atlas-dog-peptide-evidence`, including the
|
|
141
|
+
1.27 GB `pfizer-atlas-mouse-rna`. DataCache can't resume a transfer it
|
|
142
|
+
decompresses while downloading, so with `--resume` these still restart, and
|
|
143
|
+
publishing them in a resumable form is tracked in
|
|
144
|
+
[#156](https://github.com/openvax/orfdata/issues/156). Sources that `setup`
|
|
145
|
+
shares between catalogues are staged for one run and restart too. A viral
|
|
146
|
+
collection is fetched record by record and doesn't resume. `--resume` is
|
|
147
|
+
ignored when `--source-path` supplies the files.
|
|
148
|
+
|
|
149
|
+
A resumed file is checked against the same pinned SHA-256 and size as a
|
|
150
|
+
complete one. If it doesn't match, DataCache discards the partial and the
|
|
151
|
+
install fails; rerun the same command, with `--resume`, to download that file
|
|
152
|
+
again in full while keeping the other parts already received.
|
|
153
|
+
|
|
97
154
|
## Viral collections and contexts
|
|
98
155
|
|
|
99
156
|
The Python API uses the same collection object for discovery, inventory reads,
|
|
@@ -294,3 +351,36 @@ the cached collection without downloading, and a damaged selection is rebuilt ra
|
|
|
294
351
|
than reported, since nothing in it is unrecoverable. Adding
|
|
295
352
|
`download_if_missing=True` to that call lets it repair the source collection too,
|
|
296
353
|
which does download.
|
|
354
|
+
|
|
355
|
+
A viral collection or selection is replaced the way DataCache replaces its own
|
|
356
|
+
bundles. The refresh is built beside the installed copy and switched in with one
|
|
357
|
+
rename while installs of the same collection wait their turn, so a reader sees
|
|
358
|
+
the old files or the new ones, never a gap or a mix. Each refresh is a new
|
|
359
|
+
directory: `orfdata data path gdc-viruses` prints the one holding the current
|
|
360
|
+
files, so look it up again rather than saving it. Replaced copies are kept, as
|
|
361
|
+
DataCache keeps its own, because a running program may still be reading them;
|
|
362
|
+
nothing is pruned automatically. A collection installed by ORFdata 0.43 or
|
|
363
|
+
earlier still opens, and is kept like any replaced copy after its first refresh.
|
|
364
|
+
|
|
365
|
+
A collection is about 10 MB. To reclaim the space of replaced copies once no
|
|
366
|
+
program uses them, run:
|
|
367
|
+
|
|
368
|
+
```python
|
|
369
|
+
from orfdata import prune_viral_references
|
|
370
|
+
|
|
371
|
+
prune_viral_references(species="human", collection="gdc-viruses", keep=1)
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
This keeps the newest `keep` copies of the collection and of each of its
|
|
375
|
+
selections, deletes the rest with the PyEnsembl indexes built for them under
|
|
376
|
+
the same cache root, and returns `{"deleted": (...), "skipped": {path: reason}}`.
|
|
377
|
+
A store that can't be read or doesn't validate is skipped untouched, with the
|
|
378
|
+
reason, and the others are still pruned. A selection records the collection
|
|
379
|
+
copy it was built from; after a refresh, asking for the same selection builds a
|
|
380
|
+
new one from the current collection rather than reusing one built from the
|
|
381
|
+
replaced copy.
|
|
382
|
+
|
|
383
|
+
A forced install (`--force`, `force=True`) also repairs a store that lost its
|
|
384
|
+
`.datacache-store.json` marker or whose newest copy isn't a directory. A path
|
|
385
|
+
ORFdata didn't write in the store's place is never removed; the error names it
|
|
386
|
+
so you can remove it yourself.
|
|
@@ -119,10 +119,11 @@ orfdata datasets inspect DATASET --version RELEASE
|
|
|
119
119
|
orfdata datasets query DATASET --version RELEASE --quantity protein_abundance
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
-
Queries
|
|
122
|
+
Queries show a human preview by default. Use `--format jsonl` to stream original
|
|
123
|
+
JSON lines, or `--json` for one complete JSON array. `--reference ref:SHA256` selects an exact context;
|
|
123
124
|
target queries also require `--target`, `--kind` and `--namespace`. Unqualified
|
|
124
|
-
sample/assay ID queries across multiple references are rejected.
|
|
125
|
-
|
|
125
|
+
sample/assay ID queries across multiple references are rejected. ORF catalogue queries use `orfdata query --gene TPST1`; add `--json` for the
|
|
126
|
+
complete structured export. See the [CLI migration guide](cli.md#migrating-scripts-from-042-or-043).
|
|
126
127
|
|
|
127
128
|
## What each value means
|
|
128
129
|
|
|
@@ -32,10 +32,11 @@ the same species. A protein FASTA does not need an invented genomic assembly:
|
|
|
32
32
|
see [source references](source-references.md). Original targets and references
|
|
33
33
|
remain attached to both sides, even when their local IDs happen to match.
|
|
34
34
|
|
|
35
|
-
The CLI
|
|
35
|
+
The CLI previews the pairing basis, reference scopes and target relationships.
|
|
36
|
+
Export the same complete table rows with an explicit streaming format:
|
|
36
37
|
|
|
37
38
|
```sh
|
|
38
|
-
orfdata datasets pairs DATASET --version RELEASE --basis same_material
|
|
39
|
+
orfdata datasets pairs DATASET --version RELEASE --basis same_material --format jsonl
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
Select exact targets with `left_target=...` and `right_target=...`, using the
|
|
@@ -857,8 +857,8 @@ option for several specific viruses.
|
|
|
857
857
|
The FASTA goes to `--output` or
|
|
858
858
|
standard output; `--snapshot FILE` also saves a snapshot, and `--cache`
|
|
859
859
|
reuses or keeps the build in the cache; `--cache-root DIR` chooses the cache,
|
|
860
|
-
for catalogues as well as builds. A
|
|
861
|
-
JSON summary of
|
|
860
|
+
for catalogues as well as builds. A human summary goes to standard error; add
|
|
861
|
+
`--json` for the complete JSON summary of layers, identity and excluded ORFs.
|
|
862
862
|
|
|
863
863
|
## Not yet included
|
|
864
864
|
|
|
@@ -149,7 +149,10 @@ alongside the human catalogues and chains, and `--collections none` skips it.
|
|
|
149
149
|
The command above installs only this checked collection under `ORFDATA_CACHE` (or
|
|
150
150
|
the normal OpenVax cache), rather than asking for an export directory. Use
|
|
151
151
|
`--cache-root DIRECTORY` to select another cache and `--force` to refresh or
|
|
152
|
-
repair the installed files.
|
|
152
|
+
repair the installed files. A refresh replaces the collection in one step and
|
|
153
|
+
keeps the copies it replaced for programs still reading them, until
|
|
154
|
+
`prune_viral_references()` removes them. Each refresh is a new directory, so
|
|
155
|
+
look it up with `orfdata data path gdc-viruses` rather than saving it.
|
|
153
156
|
|
|
154
157
|
Here `--species human` is the target analysis species. The current collection
|
|
155
158
|
is for human transcriptome analysis; a future collection may target another
|
|
@@ -223,7 +226,7 @@ over every record in a downloaded collection:
|
|
|
223
226
|
|
|
224
227
|
```sh
|
|
225
228
|
pip install 'orfdata[dev]'
|
|
226
|
-
ORFDATA_GENBANK_CORPUS
|
|
229
|
+
ORFDATA_GENBANK_CORPUS="$(orfdata data path gdc-viruses)/records" \
|
|
227
230
|
pytest tests/test_genbank_equivalence.py
|
|
228
231
|
```
|
|
229
232
|
|
|
@@ -19,6 +19,7 @@ extra_css:
|
|
|
19
19
|
- stylesheets/docs.css
|
|
20
20
|
nav:
|
|
21
21
|
- Home: index.md
|
|
22
|
+
- Command-line guide: cli.md
|
|
22
23
|
- Discover and download data: downloads.md
|
|
23
24
|
- Downstream tools: downstream.md
|
|
24
25
|
- Proteomes:
|
|
@@ -47,6 +48,7 @@ nav:
|
|
|
47
48
|
- Dog MHC ligands and PeptideAtlas: dog-peptides.md
|
|
48
49
|
- Dog paired-data and Ribo-seq source audit: dog-data-sources.md
|
|
49
50
|
- Project:
|
|
51
|
+
- CLI design and audit: cli-design.md
|
|
50
52
|
- Release notes: https://github.com/openvax/orfdata/blob/main/CHANGELOG.md
|
|
51
53
|
- Data roadmap: https://github.com/openvax/orfdata/issues/3
|
|
52
54
|
plugins:
|
|
@@ -21,6 +21,7 @@ from .data_resources import data_info, data_path, fetch_data
|
|
|
21
21
|
from .dataset import QuantitativeDataset
|
|
22
22
|
from .datasets import DatasetRegistry, build_dataset
|
|
23
23
|
from .downloads import DataStatus, list_data
|
|
24
|
+
from .errors import NotInstalledError
|
|
24
25
|
from .evidence import MS, EvidenceRule, RiboSeq
|
|
25
26
|
from .evidence_summary import EvidenceSummary
|
|
26
27
|
from .genomes import PinnedGenome, install_genome, load_genome, pinned_genomes
|
|
@@ -96,6 +97,7 @@ from .viral_panel import (
|
|
|
96
97
|
ViralReferenceFiles,
|
|
97
98
|
download_viral_references,
|
|
98
99
|
open_viral_references,
|
|
100
|
+
prune_viral_references,
|
|
99
101
|
select_viral_references,
|
|
100
102
|
viral_annotation_survey,
|
|
101
103
|
viral_genome,
|
|
@@ -124,6 +126,7 @@ __all__ = [
|
|
|
124
126
|
"ViralReferenceFiles",
|
|
125
127
|
"download_viral_references",
|
|
126
128
|
"open_viral_references",
|
|
129
|
+
"prune_viral_references",
|
|
127
130
|
"select_viral_references",
|
|
128
131
|
"viral_genome",
|
|
129
132
|
"viral_annotation_survey",
|
|
@@ -180,6 +183,7 @@ __all__ = [
|
|
|
180
183
|
"data_info",
|
|
181
184
|
"data_path",
|
|
182
185
|
"fetch_data",
|
|
186
|
+
"NotInstalledError",
|
|
183
187
|
"DatasetManifest",
|
|
184
188
|
"SourceAsset",
|
|
185
189
|
"Sample",
|
|
@@ -9,6 +9,7 @@ import hashlib
|
|
|
9
9
|
import json
|
|
10
10
|
import os
|
|
11
11
|
import re
|
|
12
|
+
import zlib
|
|
12
13
|
from collections import Counter
|
|
13
14
|
from copy import copy, deepcopy
|
|
14
15
|
from dataclasses import asdict, dataclass, field, replace
|
|
@@ -17,6 +18,7 @@ from pathlib import Path
|
|
|
17
18
|
from typing import NamedTuple, Optional
|
|
18
19
|
from urllib.parse import quote
|
|
19
20
|
|
|
21
|
+
from .errors import NotInstalledError
|
|
20
22
|
from .evidence import EVIDENCE_METHODS as EVIDENCE_METHODS # Re-exported for existing imports.
|
|
21
23
|
from .evidence import MS_METHODS, evidence_rule, stored_method
|
|
22
24
|
from .evidence_summary import EvidenceSummary, unique_summaries
|
|
@@ -915,23 +917,52 @@ def _load_catalog(path=None, *, expected_sha256=None, resource="orf-evidence"):
|
|
|
915
917
|
raise ValueError("Packaged uORF catalogue checksum mismatch")
|
|
916
918
|
if expected_sha256 is not None and hashlib.sha256(raw).hexdigest() != expected_sha256:
|
|
917
919
|
raise ValueError("uORF catalogue checksum mismatch")
|
|
920
|
+
try:
|
|
921
|
+
records, metadata = _parse_catalog(raw)
|
|
922
|
+
except _MALFORMED as error:
|
|
923
|
+
if path is None:
|
|
924
|
+
raise
|
|
925
|
+
raise _invalid_catalog(path, error) from error
|
|
926
|
+
try:
|
|
927
|
+
return ORFCatalog(records, metadata)
|
|
928
|
+
except (KeyError, ValueError) as error: # Metadata the file lacks or gets wrong; anything else is a bug.
|
|
929
|
+
if path is None:
|
|
930
|
+
raise
|
|
931
|
+
raise _invalid_catalog(path, error) from error
|
|
932
|
+
|
|
933
|
+
|
|
934
|
+
# What reading a damaged or malformed catalogue file raises: truncated or corrupt
|
|
935
|
+
# gzip, undecodable bytes, invalid JSON, and fields that are missing or of the wrong type.
|
|
936
|
+
_MALFORMED = (ValueError, KeyError, TypeError, EOFError, zlib.error, gzip.BadGzipFile)
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
def _invalid_catalog(path, error):
|
|
940
|
+
detail = str(error) if isinstance(error, ValueError) else f"{type(error).__name__}: {error}"
|
|
941
|
+
return ValueError(f"{path} is not a valid ORF catalogue: {detail}")
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
def _parse_catalog(raw):
|
|
945
|
+
"""A catalogue file's records and metadata, checking its shape."""
|
|
918
946
|
if raw.startswith(b"\x1f\x8b"):
|
|
919
947
|
raw = gzip.decompress(raw)
|
|
920
948
|
data = json.loads(raw)
|
|
949
|
+
if not isinstance(data, dict):
|
|
950
|
+
raise ValueError("the file is not a JSON object")
|
|
921
951
|
if data.get("schema") not in ("isovar.uorf_evidence.v1", "orfdata.catalog.v1"):
|
|
922
952
|
raise ValueError("Unsupported uORF evidence schema")
|
|
923
|
-
|
|
953
|
+
metadata = data["metadata"]
|
|
954
|
+
if not isinstance(metadata, dict) or not isinstance(data["records"], list):
|
|
955
|
+
raise ValueError("metadata must be an object and records a list")
|
|
956
|
+
if metadata.get("coordinates") != "1-based-inclusive":
|
|
924
957
|
raise ValueError("Unsupported uORF coordinate convention")
|
|
925
958
|
legacy = data["schema"] == "isovar.uorf_evidence.v1"
|
|
926
|
-
metadata = data["metadata"]
|
|
927
959
|
if legacy:
|
|
928
960
|
if metadata.get("genome_build") != "GRCh38":
|
|
929
961
|
raise ValueError("Legacy Isovar data are explicitly human GRCh38 only")
|
|
930
962
|
metadata = dict(metadata, taxon_id=9606, species="homo_sapiens")
|
|
931
963
|
elif not metadata.get("sources"):
|
|
932
964
|
raise ValueError("Generic catalogues require source provenance")
|
|
933
|
-
|
|
934
|
-
return ORFCatalog(records, metadata)
|
|
965
|
+
return [_record(row, legacy) for row in data["records"]], metadata
|
|
935
966
|
|
|
936
967
|
|
|
937
968
|
def _record(row, legacy=False):
|
|
@@ -1079,7 +1110,8 @@ def load_catalog(path=None, *, species=None, genome_build=None, registry=None, e
|
|
|
1079
1110
|
"lifted or merged from several")
|
|
1080
1111
|
# Everything missing is reported at once: catalogues to install, then chains to download.
|
|
1081
1112
|
root = getattr(registry, "_cache_root", None)
|
|
1082
|
-
|
|
1113
|
+
states = [(c, _installed(c)) for c, _ in plan if c.registry is not None] # Each inspected once.
|
|
1114
|
+
needs = [_install_hint(c, state) for c, state in states if state in (None, "damaged")]
|
|
1083
1115
|
chains = list(dict.fromkeys(c for _, route in plan for c in route))
|
|
1084
1116
|
missing = [c for c in chains if not chain_downloaded(c, cache_root=root)]
|
|
1085
1117
|
cli_root = "" if root is None else f" --cache-root {root}"
|
|
@@ -1093,9 +1125,11 @@ def load_catalog(path=None, *, species=None, genome_build=None, registry=None, e
|
|
|
1093
1125
|
accept = " --accept-terms" if any(c.restricted for c in missing) else ""
|
|
1094
1126
|
chosen = ("" if catalogs is None else " --catalogs " + (
|
|
1095
1127
|
catalogs if isinstance(catalogs, str) else ",".join(catalogs)))
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1128
|
+
# Missing catalogues or chains are a missing installation; a damaged one is a failure to repair.
|
|
1129
|
+
error = ValueError if any(state == "damaged" for _, state in states) else NotInstalledError
|
|
1130
|
+
raise error(f"{species} {genome_build} ORFs need " + "; and ".join(needs)
|
|
1131
|
+
+ f". Or install everything at once with 'orfdata setup --species {species}{chosen}{accept}"
|
|
1132
|
+
f"{cli_root}'")
|
|
1099
1133
|
# Lifting and merging take seconds; one process reuses the result for exactly the same inputs.
|
|
1100
1134
|
key = (species, genome_build, expected_sha256, tuple((c.name, c.version, c.resource, _installed_at(c), tuple(
|
|
1101
1135
|
x.sha256 for x in route)) for c, route in plan))
|
|
@@ -1205,18 +1239,23 @@ def _plan(found, species, genome_build):
|
|
|
1205
1239
|
item[0].priority, item[0].name))
|
|
1206
1240
|
|
|
1207
1241
|
|
|
1208
|
-
def
|
|
1209
|
-
"""
|
|
1242
|
+
def _how_to_install(choice, state):
|
|
1243
|
+
"""How to install a registered release, or repair a damaged one, in the registry's cache."""
|
|
1244
|
+
from .downloads import install_hint
|
|
1245
|
+
|
|
1210
1246
|
registry, name, version = choice.registry, choice.name, choice.version
|
|
1211
|
-
|
|
1212
|
-
damaged = _installed(choice) == "damaged"
|
|
1247
|
+
damaged = state == "damaged"
|
|
1213
1248
|
verb = "download" if registry.published(name, version) else "build"
|
|
1214
|
-
how = " again" if damaged else ("
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1249
|
+
how = " again" if damaged else ("" if verb == "download" else " from its pinned sources")
|
|
1250
|
+
call = f"{verb}({name!r}, {version!r}{', force=True' if damaged else ''})"
|
|
1251
|
+
return f"{verb} it{how} with " + install_hint(registry, call, name, "catalog", version, force=damaged)
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
def _install_hint(choice, state):
|
|
1255
|
+
"""The catalogue a species' ORFs need, and how to install or repair it."""
|
|
1256
|
+
damaged = state == "damaged"
|
|
1257
|
+
return (f"the {choice.name} {choice.version} catalogue, which {'is damaged' if damaged else 'is not installed'}: "
|
|
1258
|
+
+ _how_to_install(choice, state))
|
|
1220
1259
|
|
|
1221
1260
|
|
|
1222
1261
|
def _open_choice(choice, expected_sha256):
|
|
@@ -1283,13 +1322,8 @@ def _open_registered(choice, expected_sha256):
|
|
|
1283
1322
|
registry, name, version = choice.registry, choice.name, choice.version
|
|
1284
1323
|
installed = _installed(choice)
|
|
1285
1324
|
if installed in (None, "damaged"):
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
how = (f"{verb} it{when} with CatalogRegistry().{verb}({name!r}, {version!r}"
|
|
1289
|
-
f"{', force=True' if installed else ''}) or 'orfdata catalogs {verb} {name} --version {version}"
|
|
1290
|
-
f"{' --force' if installed else ''}'")
|
|
1291
|
-
state = "damaged" if installed else "not installed"
|
|
1292
|
-
raise ValueError(f"The {name} {version} ORF catalogue is {state}; {how}")
|
|
1325
|
+
state, error = ("damaged", ValueError) if installed else ("not installed", NotInstalledError)
|
|
1326
|
+
raise error(f"The {name} {version} ORF catalogue is {state}; {_how_to_install(choice, installed)}")
|
|
1293
1327
|
if installed == "built":
|
|
1294
1328
|
inspected = registry.inspect_build(name, version)
|
|
1295
1329
|
if inspected.status != "available":
|