orfdata 0.9.0__tar.gz → 0.11.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.9.0 → orfdata-0.11.0}/MANIFEST.in +1 -0
- {orfdata-0.9.0/orfdata.egg-info → orfdata-0.11.0}/PKG-INFO +6 -4
- {orfdata-0.9.0 → orfdata-0.11.0}/README.md +5 -3
- orfdata-0.11.0/docs/coverage.md +34 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/measurements.md +2 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/pfizer-protein.md +5 -0
- orfdata-0.11.0/docs/pfizer-rna.md +86 -0
- orfdata-0.11.0/docs/search-references.md +75 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/__init__.py +5 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/datasets.json +400 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/dataset_cli.py +27 -3
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/datasets.py +43 -0
- orfdata-0.11.0/orfdata/search_reference.py +227 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/sources/__init__.py +13 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/sources/pfizer.py +12 -0
- orfdata-0.11.0/orfdata/sources/pfizer_rna.py +208 -0
- orfdata-0.11.0/orfdata/version.py +1 -0
- {orfdata-0.9.0 → orfdata-0.11.0/orfdata.egg-info}/PKG-INFO +6 -4
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata.egg-info/SOURCES.txt +22 -0
- orfdata-0.11.0/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/NOTICE.md +12 -0
- orfdata-0.11.0/tests/data/pfizer_rna/counts.csv.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/dog-expected.json +340 -0
- orfdata-0.11.0/tests/data/pfizer_rna/dog-manifest.json +186 -0
- orfdata-0.11.0/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
- orfdata-0.11.0/tests/data/pfizer_rna/mouse-expected.json +340 -0
- orfdata-0.11.0/tests/data/pfizer_rna/mouse-manifest.json +186 -0
- orfdata-0.11.0/tests/data/pfizer_rna/samples.xlsx +0 -0
- orfdata-0.11.0/tests/data/search_reference/NOTICE.md +8 -0
- orfdata-0.11.0/tests/data/search_reference/dog.fasta +33 -0
- orfdata-0.11.0/tests/data/search_reference/expected.json +44 -0
- orfdata-0.11.0/tests/test_pfizer_rna.py +215 -0
- orfdata-0.11.0/tests/test_search_reference.py +210 -0
- orfdata-0.9.0/orfdata/version.py +0 -1
- {orfdata-0.9.0 → orfdata-0.11.0}/LICENSE +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/deploy.sh +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/copy-yeast.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/design.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/pairing.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/reference.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/source-references.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/species.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/docs/storage.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/lint.sh +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/build.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/catalog.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/cli.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/dataset.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/measurements.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/model.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/pairing.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/reference.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/sequence.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata/sources/copy.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/pyproject.toml +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/setup.cfg +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/test.sh +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/conftest.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905474.soft +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905476.soft +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905478.soft +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905479.soft +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/NOTICE.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/expected.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/geo-series.soft +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/methods.pdf +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/paper.xml +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/pmc-metadata.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/qconcat.fasta +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/copy/workbook.xlsx +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/NOTICE.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/dog/expected.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/dog/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/dog/protein.tsv +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/dog/search.fasta +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/human/expected.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/human/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/human/protein.tsv +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/human/search.fasta +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/mouse/expected.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/mouse/manifest.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/pfizer/mouse/search.fasta +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/README.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/README.md +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/generate.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v1.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v1.sqlite +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v2.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v2.sqlite +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v3.json +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/data/storage/v3.sqlite +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_copy.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_initiation_context.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_measurements.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_pairing.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_pfizer.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_reference_orf.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_selectors.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_storage.py +0 -0
- {orfdata-0.9.0 → orfdata-0.11.0}/tests/test_uorf_catalog.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orfdata
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Reference open reading frames and experimental translation evidence on annotated transcripts
|
|
5
5
|
Author: OpenVax
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -104,8 +104,10 @@ Install with `pip install orfdata[pyensembl]`. See the
|
|
|
104
104
|
assays, and DataCache-managed downloads. Downloadable
|
|
105
105
|
[human, mouse and dog protein abundance](docs/pfizer-protein.md) and
|
|
106
106
|
[yeast calibrated protein/RNA abundance](docs/copy-yeast.md) use the same
|
|
107
|
-
species-scoped API
|
|
108
|
-
|
|
107
|
+
species-scoped API, as do [native dog and mouse RNA counts](docs/pfizer-rna.md).
|
|
108
|
+
Gene RNA and canonical protein measurements do not establish
|
|
109
|
+
noncanonical ORF abundance. The [native search references](docs/search-references.md)
|
|
110
|
+
preserve complete deposited sequences, including unreported entries. The
|
|
109
111
|
[quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
|
|
110
112
|
tracks further RNA abundance, ribosome occupancy, absolute quantification and
|
|
111
|
-
additional protein data releases.
|
|
113
|
+
additional protein data releases. See the [released coverage and gaps](docs/coverage.md).
|
|
@@ -77,8 +77,10 @@ Install with `pip install orfdata[pyensembl]`. See the
|
|
|
77
77
|
assays, and DataCache-managed downloads. Downloadable
|
|
78
78
|
[human, mouse and dog protein abundance](docs/pfizer-protein.md) and
|
|
79
79
|
[yeast calibrated protein/RNA abundance](docs/copy-yeast.md) use the same
|
|
80
|
-
species-scoped API
|
|
81
|
-
|
|
80
|
+
species-scoped API, as do [native dog and mouse RNA counts](docs/pfizer-rna.md).
|
|
81
|
+
Gene RNA and canonical protein measurements do not establish
|
|
82
|
+
noncanonical ORF abundance. The [native search references](docs/search-references.md)
|
|
83
|
+
preserve complete deposited sequences, including unreported entries. The
|
|
82
84
|
[quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
|
|
83
85
|
tracks further RNA abundance, ribosome occupancy, absolute quantification and
|
|
84
|
-
additional protein data releases.
|
|
86
|
+
additional protein data releases. See the [released coverage and gaps](docs/coverage.md).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Released data and gaps
|
|
2
|
+
|
|
3
|
+
ORFdata keeps datasets in separate species/reference contexts and exposes them
|
|
4
|
+
through the same discovery, download and query API. This table describes actual
|
|
5
|
+
data coverage, independently of what the API can represent.
|
|
6
|
+
|
|
7
|
+
| Species | RNA abundance | Protein abundance | RNA/protein pairing |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Human | Native Pfizer counts missing from the deposit | Pfizer: 10,352 groups, 37 channels, iBAQ/rIBAQ | Unresolved |
|
|
10
|
+
| Mouse | Pfizer: 606 libraries, 56,051 gene targets, counts | Pfizer: 12,124 groups, 63 channels, iBAQ/rIBAQ | Unresolved library-to-pool correspondence |
|
|
11
|
+
| Dog | Pfizer: 434 libraries, 30,941 gene targets, counts | Pfizer: 9,929 groups, 38 channels, iBAQ/rIBAQ | Unresolved library-to-pool correspondence |
|
|
12
|
+
| Budding yeast | CoPY: four RNA libraries plus a source aggregate, FPKM and estimated copies/cell | CoPY: calibrated SRM and separately calibrated label-free estimates | Explicit source-cohort pairing; individual cross-assay replicate matches unknown |
|
|
13
|
+
|
|
14
|
+
Gene targets include measured zeros; their presence in a matrix does not imply
|
|
15
|
+
expression in every sample. Protein-group representatives do not establish
|
|
16
|
+
unique protein attribution. TMT channels are not independent donors. CoPY RNA
|
|
17
|
+
copies/cell assume 60,000 total mRNAs; its 1,903 SRM summaries contain 1,167 point
|
|
18
|
+
estimates, 668 upper bounds and 68 unquantifiable results. Calibration and
|
|
19
|
+
uncertainty remain attached to observations.
|
|
20
|
+
|
|
21
|
+
The separate existence-evidence catalogue contains 7,264 human noncanonical
|
|
22
|
+
ORFs, including 2,186 with reported MS support. It has no released mouse, dog or
|
|
23
|
+
yeast experimental ncORF catalogue yet. Its ribosome evidence and pooled PSM
|
|
24
|
+
counts are not sample-level ribosome occupancy or protein abundance. No species
|
|
25
|
+
currently has a released quantitative Ribo-seq dataset in this registry.
|
|
26
|
+
|
|
27
|
+
See the short guides for [protein measurements](pfizer-protein.md),
|
|
28
|
+
[native dog/mouse RNA](pfizer-rna.md), [yeast RNA/protein calibration](copy-yeast.md)
|
|
29
|
+
and [complete search sequences](search-references.md). The
|
|
30
|
+
[roadmap](https://github.com/openvax/orfdata/issues/3) tracks matched human
|
|
31
|
+
comparators, quantitative Ribo-seq, further ncORF evidence and additional species.
|
|
32
|
+
Cat, cattle, rat and other taxa use the same model when source datasets are
|
|
33
|
+
added. Orthology comparisons are explicit and never transfer observations or
|
|
34
|
+
protein-existence evidence between species.
|
|
@@ -8,6 +8,8 @@ it is not a separate measurement of each ORF in that gene.
|
|
|
8
8
|
|
|
9
9
|
Install `orfdata[data]` to manage datasets. The registry includes downloadable
|
|
10
10
|
[Pfizer/Oziolor human, mouse and dog protein summaries](pfizer-protein.md);
|
|
11
|
+
[native dog/mouse RNA](pfizer-rna.md) and [yeast RNA/protein calibration](copy-yeast.md)
|
|
12
|
+
use the same objects. See [released coverage and gaps](coverage.md);
|
|
11
13
|
the [data roadmap](https://github.com/openvax/orfdata/issues/3) tracks further
|
|
12
14
|
imports. The bundled human ORF evidence catalogue remains available offline.
|
|
13
15
|
Its pooled PSM counts describe spectra, not sample-level protein abundance.
|
|
@@ -45,6 +45,11 @@ lookup does not establish all group members. Opting into unresolved mapped
|
|
|
45
45
|
views keeps the original group measurement visible, without assigning its value
|
|
46
46
|
to an individual protein. No RNA pairings are inferred in this release.
|
|
47
47
|
|
|
48
|
+
The [complete search references](search-references.md) are available through
|
|
49
|
+
`registry.download_reference(name)` and `registry.open_reference(name)` without
|
|
50
|
+
rebuilding abundance. This includes proteins without reported representatives;
|
|
51
|
+
search membership is separate from detection or protein-group assignment.
|
|
52
|
+
|
|
48
53
|
Source `NA` values remain missing and numeric zeros remain measured zeros.
|
|
49
54
|
Absent group/channel combinations have no observation. For dog, 64,039 combinations
|
|
50
55
|
are absent and eight reported rows contain `NA`, reproducing the existing
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Dog and mouse RNA abundance
|
|
2
|
+
|
|
3
|
+
The [Oziolor et al. atlas](https://doi.org/10.1038/s41597-026-07512-9) deposits
|
|
4
|
+
native gene counts alongside its [protein measurements](pfizer-protein.md).
|
|
5
|
+
ORFdata preserves each species separately, using the same measurement API.
|
|
6
|
+
|
|
7
|
+
| Dataset | RNA libraries | Measured genes | Observations | Reference |
|
|
8
|
+
| --- | ---: | ---: | ---: | --- |
|
|
9
|
+
| `pfizer-atlas-dog-rna` | 434 | 30,941 | 13,428,394 | ROS_Cfam_1.0, Ensembl 110 |
|
|
10
|
+
| `pfizer-atlas-mouse-rna` | 606 | 56,051 | 33,966,906 | GRCm39, Ensembl 110 |
|
|
11
|
+
|
|
12
|
+
The dog download is about 534 MB and installs to 3.41 GB; the mouse download is
|
|
13
|
+
1.27 GB and installs to 8.66 GB. Queries select observations from the installed
|
|
14
|
+
SQLite database without loading the whole matrix into memory.
|
|
15
|
+
|
|
16
|
+
The original `rcnt` values are integer gene counts after the authors' modified
|
|
17
|
+
nf-core/Salmon pipeline. They are neither TPM nor calibrated RNA copies per cell.
|
|
18
|
+
Zeros stay measured zeros: 4,218,202 dog observations and 18,019,555 mouse
|
|
19
|
+
observations. Every value retains the native numeric text and source line.
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
pip install 'orfdata[data]'
|
|
23
|
+
orfdata datasets download pfizer-atlas-dog-rna --version 2026-10-12.1
|
|
24
|
+
orfdata datasets query pfizer-atlas-dog-rna --sample 1 --unit counts
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
from orfdata import DatasetRegistry, ScopedTarget
|
|
29
|
+
|
|
30
|
+
registry = DatasetRegistry()
|
|
31
|
+
dataset = registry.open("pfizer-atlas-dog-rna", "2026-10-12.1")
|
|
32
|
+
reference, = dataset.manifest.references
|
|
33
|
+
gene = ScopedTarget(reference, "gene", "ENSCAFG00845000002", "ensembl")
|
|
34
|
+
for observation in dataset.measurements(target=gene, unit="counts"):
|
|
35
|
+
print(observation.sample_id, observation.value, observation.status)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
All source gene IDs were checked against the checksum-pinned Ensembl 110 GTF.
|
|
39
|
+
The import retains the source's coding and noncoding genes without a
|
|
40
|
+
protein-coding filter.
|
|
41
|
+
With that annotation already installed in PyEnsembl, construct the same target
|
|
42
|
+
from a gene object:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from pyensembl import EnsemblRelease
|
|
46
|
+
|
|
47
|
+
genome = EnsemblRelease(110, species="dog")
|
|
48
|
+
feature = genome.gene_by_id("ENSCAFG00845000002")
|
|
49
|
+
gene = ScopedTarget.from_pyensembl(feature, kind="gene", namespace="ensembl",
|
|
50
|
+
context=reference)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
An incompatible species, assembly or annotation release fails explicitly.
|
|
54
|
+
There are 180 dog and 890 mouse annotation genes outside the measured count
|
|
55
|
+
universe; querying one yields no observation, not a synthesized zero. Gene RNA
|
|
56
|
+
abundance is context for a parent RNA and does not establish the abundance or
|
|
57
|
+
translation of any particular uORF, ncORF or transcript isoform.
|
|
58
|
+
|
|
59
|
+
Samples retain original numeric SIDs, GEO/BioSample accessions, SRA runs, batches,
|
|
60
|
+
native tissue labels and the public source metadata. Mouse libraries include
|
|
61
|
+
308 source-labelled `c57` and 298 `cd1` samples; these are biological strain
|
|
62
|
+
labels, independent of the annotation reference. Donor IDs and sex are unknown
|
|
63
|
+
at the deposited sample level. More specific GEO tissue labels remain alongside
|
|
64
|
+
the count table's broader labels. There is no verified RNA-library-to-protein-pool
|
|
65
|
+
crosswalk, so this release creates no assay pairs or protein-per-RNA ratios.
|
|
66
|
+
|
|
67
|
+
GSE325522, GSE325523 and GSE325525 each carry the same decompressed count matrix.
|
|
68
|
+
ORFdata pins one input and records the equivalent mirrors instead of counting
|
|
69
|
+
the data three times. The full matrix contains 2,183 nonhuman libraries. Although
|
|
70
|
+
the metadata lists 44 human libraries, neither the native CSV nor the deposited
|
|
71
|
+
human-ortholog RDS contains their counts. That [source gap](https://github.com/openvax/orfdata/issues/37)
|
|
72
|
+
remains explicit. Rat, pig and macaque rows are present in the original matrix
|
|
73
|
+
and remain candidates for separate releases through the same importer.
|
|
74
|
+
|
|
75
|
+
`registry.build(name, source_paths=...)` or `orfdata datasets build NAME` rebuilds
|
|
76
|
+
from pinned counts, GEO metadata, factual Table S5 sample records and the
|
|
77
|
+
historical GTF; workbook rebuilding needs `orfdata[build-data]`. Python returns
|
|
78
|
+
a `QuantitativeDataset` ready to query. The CLI returns its path; explicit CLI
|
|
79
|
+
queries of local builds are tracked in [#43](https://github.com/openvax/orfdata/issues/43).
|
|
80
|
+
Normal registry queries open the independently verified published artifact.
|
|
81
|
+
|
|
82
|
+
GEO data and Ensembl annotations retain their source reuse terms and attribution.
|
|
83
|
+
The paper supplement has separate CC-BY-NC-ND-4.0 terms; the original workbook
|
|
84
|
+
is not bundled in the quantitative artifact. Source hashes, terms and processing
|
|
85
|
+
details are in each manifest. All acquisition is explicit; installed queries
|
|
86
|
+
and metadata discovery work offline.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Native protein search references
|
|
2
|
+
|
|
3
|
+
A search reference lists the sequences available to a particular MS search.
|
|
4
|
+
It is independent of reported abundance or experimental evidence that a protein
|
|
5
|
+
exists. ORFdata exposes the exact deposited FASTA, including unreported entries.
|
|
6
|
+
|
|
7
|
+
| Dataset | Search entries | FASTA bytes, downloaded and installed |
|
|
8
|
+
| --- | ---: | ---: |
|
|
9
|
+
| `pfizer-atlas-human-protein` | 20,600 | 13,831,073 |
|
|
10
|
+
| `pfizer-atlas-mouse-protein` | 21,989 | 14,325,720 |
|
|
11
|
+
| `pfizer-atlas-dog-protein` | 20,649 | 14,659,832 |
|
|
12
|
+
|
|
13
|
+
These are uncompressed, no-isoform UniProt search sets from data release
|
|
14
|
+
`2026-10-12.1`. The historical UniProt release and genomic assembly remain
|
|
15
|
+
unknown. ORFdata does not replace them with a current proteome.
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from orfdata import DatasetRegistry, ScopedTarget
|
|
19
|
+
|
|
20
|
+
registry = DatasetRegistry()
|
|
21
|
+
name, version = "pfizer-atlas-dog-protein", "2026-10-12.1"
|
|
22
|
+
spec, = registry.search_references(name, version) # Metadata only; no I/O.
|
|
23
|
+
registry.download_reference(name, version) # Explicit verified download.
|
|
24
|
+
search = registry.open_reference(name, version) # Offline; raises if missing.
|
|
25
|
+
|
|
26
|
+
entry = search.get("A0A068LEV2")
|
|
27
|
+
print(entry.header, entry.sequence, entry.sequence_sha256)
|
|
28
|
+
assert search.membership(entry.target).status == "present"
|
|
29
|
+
for entry in search.entries():
|
|
30
|
+
assert entry.target.reference == search.reference
|
|
31
|
+
|
|
32
|
+
absent = ScopedTarget(search.reference, "protein", "not-in-this-search", "uniprot")
|
|
33
|
+
assert search.membership(absent).status == "not_in_search"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Dog has 9,929 reported group representatives and 10,720 other search entries,
|
|
37
|
+
including `A0A068LEV2`. Those other entries have **no reported representative**;
|
|
38
|
+
that does not prove that their peptides were undetected. The summary table does
|
|
39
|
+
not resolve all protein-group members. Query group abundance separately through
|
|
40
|
+
[`dataset.measurements()`](pfizer-protein.md).
|
|
41
|
+
|
|
42
|
+
Membership accepts an explicitly scoped native protein target. A different
|
|
43
|
+
reference raises an error. Other namespaces, ORFs, genes and protein groups
|
|
44
|
+
return `unknown`: first supply an explicit, validated reference mapping. Search
|
|
45
|
+
membership never creates a zero, allocates a group's abundance, establishes
|
|
46
|
+
protein detectability, or supplies MHC presentation evidence. Exact accession
|
|
47
|
+
lookup does not perform sequence matching or infer coverage of a new ORF.
|
|
48
|
+
|
|
49
|
+
Each entry retains its full header, FASTA ID, residues, sequence hash, source
|
|
50
|
+
taxon, optional gene label and source line. `search.spec.to_dict()` records the
|
|
51
|
+
dataset version, reference identity, sequence-set SHA-256, source URL, size,
|
|
52
|
+
licence and attribution. The deposited records do not specify decoy/control
|
|
53
|
+
roles; those fields stay `None`. UniProt records retain CC-BY-4.0 attribution.
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
orfdata datasets references pfizer-atlas-dog-protein --version 2026-10-12.1
|
|
57
|
+
orfdata datasets download-reference pfizer-atlas-dog-protein --version 2026-10-12.1
|
|
58
|
+
orfdata datasets inspect-reference pfizer-atlas-dog-protein --version 2026-10-12.1
|
|
59
|
+
orfdata datasets query-reference pfizer-atlas-dog-protein --version 2026-10-12.1 --target A0A068LEV2
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Pin the quantitative dataset version and retain the matching search spec when
|
|
63
|
+
exporting an analysis. Both use the same native `ReferenceContext`; select
|
|
64
|
+
`reference=spec.reference` and `asset_id=spec.source.asset_id` if a dataset has
|
|
65
|
+
multiple declared search sets (`--reference KEY --asset ID` in the CLI).
|
|
66
|
+
Reference downloads use a separate DataCache store and never rebuild or download
|
|
67
|
+
abundance. Local source overrides are checksum-verified; `force=True` creates a
|
|
68
|
+
new immutable bundle and preserves already-open readers. Ordinary discovery,
|
|
69
|
+
inspection and opening stay offline. Published quantitative hashes are unchanged.
|
|
70
|
+
|
|
71
|
+
The same reference model accepts any taxon, with no inferred cross-species joins.
|
|
72
|
+
Adapters must explicitly declare their native search sets and formats. The
|
|
73
|
+
initial parser supports deposited UniProt FASTAs. CoPY yeast's QconCAT FASTA is
|
|
74
|
+
synthetic calibration material, so it is not exposed as a native yeast proteome;
|
|
75
|
+
that historical search reference remains an explicit source gap.
|
|
@@ -35,6 +35,7 @@ from .pairing import (
|
|
|
35
35
|
)
|
|
36
36
|
from .reference import ReferenceContext, ScopedTarget
|
|
37
37
|
from .reference_mapping import MappedMeasurement, ReferenceMapping
|
|
38
|
+
from .search_reference import SearchMembership, SearchReference, SearchReferenceSpec, SearchSequence
|
|
38
39
|
from .version import __version__
|
|
39
40
|
|
|
40
41
|
__all__ = [
|
|
@@ -66,6 +67,10 @@ __all__ = [
|
|
|
66
67
|
"compare_orthologs",
|
|
67
68
|
"ReferenceMapping",
|
|
68
69
|
"MappedMeasurement",
|
|
70
|
+
"SearchReferenceSpec",
|
|
71
|
+
"SearchReference",
|
|
72
|
+
"SearchSequence",
|
|
73
|
+
"SearchMembership",
|
|
69
74
|
"load_catalog",
|
|
70
75
|
"UORFCatalog",
|
|
71
76
|
"UORFRecord",
|