orfdata 0.5.0__tar.gz → 0.6.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.5.0 → orfdata-0.6.0}/MANIFEST.in +1 -1
- {orfdata-0.5.0/orfdata.egg-info → orfdata-0.6.0}/PKG-INFO +8 -4
- {orfdata-0.5.0 → orfdata-0.6.0}/README.md +7 -3
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/measurements.md +9 -2
- orfdata-0.6.0/docs/pfizer-protein.md +71 -0
- orfdata-0.6.0/orfdata/data/datasets.json +388 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/dataset_cli.py +22 -2
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/datasets.py +10 -0
- orfdata-0.6.0/orfdata/sources/__init__.py +10 -0
- orfdata-0.6.0/orfdata/sources/pfizer.py +213 -0
- orfdata-0.6.0/orfdata/version.py +1 -0
- {orfdata-0.5.0 → orfdata-0.6.0/orfdata.egg-info}/PKG-INFO +8 -4
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata.egg-info/SOURCES.txt +17 -0
- orfdata-0.6.0/tests/data/pfizer/NOTICE.md +14 -0
- orfdata-0.6.0/tests/data/pfizer/dog/expected.json +192 -0
- orfdata-0.6.0/tests/data/pfizer/dog/manifest.json +117 -0
- orfdata-0.6.0/tests/data/pfizer/dog/protein.tsv +6 -0
- orfdata-0.6.0/tests/data/pfizer/dog/search.fasta +6 -0
- orfdata-0.6.0/tests/data/pfizer/human/expected.json +190 -0
- orfdata-0.6.0/tests/data/pfizer/human/manifest.json +115 -0
- orfdata-0.6.0/tests/data/pfizer/human/protein.tsv +6 -0
- orfdata-0.6.0/tests/data/pfizer/human/search.fasta +6 -0
- orfdata-0.6.0/tests/data/pfizer/mouse/expected.json +193 -0
- orfdata-0.6.0/tests/data/pfizer/mouse/manifest.json +118 -0
- orfdata-0.6.0/tests/data/pfizer/mouse/protein.tsv +6 -0
- orfdata-0.6.0/tests/data/pfizer/mouse/search.fasta +6 -0
- orfdata-0.6.0/tests/test_pfizer.py +199 -0
- orfdata-0.5.0/orfdata/data/datasets.json +0 -1
- orfdata-0.5.0/orfdata/version.py +0 -1
- {orfdata-0.5.0 → orfdata-0.6.0}/LICENSE +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/deploy.sh +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/design.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/pairing.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/reference.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/source-references.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/docs/species.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/lint.sh +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/__init__.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/build.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/catalog.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/cli.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/orf-evidence/manifest.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/dataset.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/initiation_context.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/measurements.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/model.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/pairing.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/reference.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/reference_mapping.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata/sequence.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata.egg-info/dependency_links.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata.egg-info/entry_points.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata.egg-info/requires.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/orfdata.egg-info/top_level.txt +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/pyproject.toml +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/setup.cfg +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/test.sh +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/conftest.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/README.md +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/context-keys-v0.4.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/homo_sapiens.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/mus_musculus.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_cross_reference_pairing.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_initiation_context.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_measurements.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_pairing.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_reference_context.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_reference_mapping.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.0}/tests/test_reference_orf.py +0 -0
- {orfdata-0.5.0 → orfdata-0.6.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.6.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
|
|
@@ -95,12 +95,16 @@ RNA products. Reference evidence stays separate from evidence for a variant or
|
|
|
95
95
|
fusion. See the [API and integration guide](docs/reference.md).
|
|
96
96
|
|
|
97
97
|
The catalogue API supports other species, with explicit species and assembly
|
|
98
|
-
checks. **
|
|
98
|
+
checks. **The bundled experimental ORF catalogue is currently human-only**. Offline tests
|
|
99
99
|
bind real human, mouse, dog and yeast reference slices; those fixtures are not
|
|
100
100
|
new experimental ORF catalogues. [Species and reference identity](docs/species.md).
|
|
101
101
|
|
|
102
102
|
Install with `pip install orfdata[pyensembl]`. See the
|
|
103
103
|
[measurement API](docs/measurements.md) for native units, explicit samples and
|
|
104
|
-
assays, and DataCache-managed downloads
|
|
104
|
+
assays, and DataCache-managed downloads. Downloadable
|
|
105
|
+
[human, mouse and dog protein abundance](docs/pfizer-protein.md) uses the same
|
|
106
|
+
species-scoped API. These canonical-search protein groups do not establish
|
|
107
|
+
noncanonical ORF abundance. The
|
|
105
108
|
[quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
|
|
106
|
-
|
|
109
|
+
tracks RNA abundance, ribosome occupancy, yeast absolute quantification and
|
|
110
|
+
additional protein data releases.
|
|
@@ -68,12 +68,16 @@ RNA products. Reference evidence stays separate from evidence for a variant or
|
|
|
68
68
|
fusion. See the [API and integration guide](docs/reference.md).
|
|
69
69
|
|
|
70
70
|
The catalogue API supports other species, with explicit species and assembly
|
|
71
|
-
checks. **
|
|
71
|
+
checks. **The bundled experimental ORF catalogue is currently human-only**. Offline tests
|
|
72
72
|
bind real human, mouse, dog and yeast reference slices; those fixtures are not
|
|
73
73
|
new experimental ORF catalogues. [Species and reference identity](docs/species.md).
|
|
74
74
|
|
|
75
75
|
Install with `pip install orfdata[pyensembl]`. See the
|
|
76
76
|
[measurement API](docs/measurements.md) for native units, explicit samples and
|
|
77
|
-
assays, and DataCache-managed downloads
|
|
77
|
+
assays, and DataCache-managed downloads. Downloadable
|
|
78
|
+
[human, mouse and dog protein abundance](docs/pfizer-protein.md) uses the same
|
|
79
|
+
species-scoped API. These canonical-search protein groups do not establish
|
|
80
|
+
noncanonical ORF abundance. The
|
|
78
81
|
[quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
|
|
79
|
-
|
|
82
|
+
tracks RNA abundance, ribosome occupancy, yeast absolute quantification and
|
|
83
|
+
additional protein data releases.
|
|
@@ -6,8 +6,9 @@ proteins, protein groups and peptides. A measurement stays at the resolution
|
|
|
6
6
|
the experiment supports. Parent-gene RNA abundance is useful context for an ORF;
|
|
7
7
|
it is not a separate measurement of each ORF in that gene.
|
|
8
8
|
|
|
9
|
-
Install `orfdata[data]` to manage datasets. The
|
|
10
|
-
|
|
9
|
+
Install `orfdata[data]` to manage datasets. The registry includes downloadable
|
|
10
|
+
[Pfizer/Oziolor human, mouse and dog protein summaries](pfizer-protein.md);
|
|
11
|
+
the [data roadmap](https://github.com/openvax/orfdata/issues/3) tracks further
|
|
11
12
|
imports. The bundled human ORF evidence catalogue remains available offline.
|
|
12
13
|
Its pooled PSM counts describe spectra, not sample-level protein abundance.
|
|
13
14
|
|
|
@@ -130,6 +131,12 @@ definitions = {
|
|
|
130
131
|
```
|
|
131
132
|
|
|
132
133
|
CLI users can supply this JSON with `orfdata datasets --registry FILE ...`.
|
|
134
|
+
|
|
135
|
+
Rebuild supported releases from their pinned original inputs with
|
|
136
|
+
`registry.build(name, version, source_paths={"asset_id": "/local/file"})` or
|
|
137
|
+
`orfdata datasets build NAME --source-path ASSET=PATH`. Local overrides still
|
|
138
|
+
require the published hashes. Rebuilds use a separate import cache and preserve
|
|
139
|
+
installed releases. Unsupported source importers fail explicitly.
|
|
133
140
|
`ORFDATA_CACHE`, then `OPENVAX_DATA_CACHE`, then the platform's OpenVax cache
|
|
134
141
|
select the root. ORFdata owns its `orfdata/` child. Release cache identities
|
|
135
142
|
include manifest/reference and content hashes. SQLite partitions every table
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Human, mouse and dog protein abundance
|
|
2
|
+
|
|
3
|
+
The [Oziolor et al. atlas](https://doi.org/10.1038/s41597-026-07512-9) provides
|
|
4
|
+
parallel TMT protein measurements. ORFdata keeps each species in a separate
|
|
5
|
+
dataset, using the same samples, assays, measurements and query API.
|
|
6
|
+
|
|
7
|
+
| Dataset | Reported protein groups | Source channels | Source rows |
|
|
8
|
+
|---|---:|---:|---:|
|
|
9
|
+
| `pfizer-atlas-human-protein` | 10,352 | 37 | 325,702 |
|
|
10
|
+
| `pfizer-atlas-mouse-protein` | 12,124 | 63 | 615,991 |
|
|
11
|
+
| `pfizer-atlas-dog-protein` | 9,929 | 38 | 313,263 |
|
|
12
|
+
|
|
13
|
+
Release `2026-10-12.1` contains the complete March 23, 2026 summary tables from
|
|
14
|
+
MassIVE MSV000099729, MSV000099754 and MSV000099744, respectively. Each source
|
|
15
|
+
row contributes two observations: native `iBAQ` and `rIBAQ`. Neither is calibrated
|
|
16
|
+
copies per cell. These are pooled tissue samples; rodent condition labels also
|
|
17
|
+
include sex. Channels and technical runs do not count as independent donors.
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
pip install 'orfdata[data]'
|
|
21
|
+
orfdata datasets list --species dog
|
|
22
|
+
orfdata datasets download pfizer-atlas-dog-protein
|
|
23
|
+
orfdata datasets query pfizer-atlas-dog-protein --quantity protein_abundance
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
from orfdata import DatasetRegistry, ScopedTarget
|
|
28
|
+
|
|
29
|
+
registry = DatasetRegistry()
|
|
30
|
+
dataset = registry.open("pfizer-atlas-dog-protein") # After explicit download.
|
|
31
|
+
reference, = dataset.manifest.references
|
|
32
|
+
group = ScopedTarget(reference, "protein_group", "A0A0A0MPB0", "MSV000099744:ProteinGroup")
|
|
33
|
+
for value in dataset.measurements(target=group):
|
|
34
|
+
print(value.sample_id, value.unit, value.value, value.status)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Every target retains its species and the checksum of the deposited UniProt
|
|
38
|
+
search FASTA. The original genomic assembly and UniProt release are unknown.
|
|
39
|
+
They stay unknown; a future annotation mapping must be explicit and validated.
|
|
40
|
+
Group representatives can be inspected through `reference_mappings()`, but their
|
|
41
|
+
lookup does not establish all group members. Opting into unresolved mapped
|
|
42
|
+
views keeps the original group measurement visible, without assigning its value
|
|
43
|
+
to an individual protein. No RNA pairings are inferred in this release.
|
|
44
|
+
|
|
45
|
+
Source `NA` values remain missing and numeric zeros remain measured zeros.
|
|
46
|
+
Absent group/channel combinations have no observation. For dog, 64,039 combinations
|
|
47
|
+
are absent and eight reported rows contain `NA`, reproducing the existing
|
|
48
|
+
64,047 missing iBAQ matrix cells. Each value retains its source line, column,
|
|
49
|
+
original numeric text, representative, normalization sum and native `Abundance`
|
|
50
|
+
field. Nonfinite transformed strings such as `-Inf` are kept as provenance only.
|
|
51
|
+
|
|
52
|
+
These searches used UniProt sequences without spliced isoforms. Coverage does
|
|
53
|
+
not establish that an unreported ncORF was searched or absent, nor does bulk
|
|
54
|
+
tissue MS establish MHC presentation. The article and deposit disagree on the
|
|
55
|
+
instrument name; that discrepancy remains explicit in assay metadata.
|
|
56
|
+
|
|
57
|
+
Downloads are 87.3 MB (human), 154.8 MB (mouse) and 84.4 MB (dog). Installed
|
|
58
|
+
SQLite files occupy 1.46 GB, 2.72 GB and 1.40 GB, respectively. Queries stream
|
|
59
|
+
observations; they do not load the entire file or a dense matrix into memory.
|
|
60
|
+
|
|
61
|
+
Source tables are CC0 according to the MassIVE deposits; UniProt search records
|
|
62
|
+
retain UniProt Consortium attribution and CC-BY-4.0 terms. Both sources have
|
|
63
|
+
pinned hashes and sizes. The data artifact is separate from the Python package.
|
|
64
|
+
Discovery and installed queries work offline. `download` verifies and installs
|
|
65
|
+
the compressed artifact; it does not fetch the large vendor search database.
|
|
66
|
+
|
|
67
|
+
To reproduce a source import, use `registry.build(name, source_paths=...)`,
|
|
68
|
+
`orfdata datasets build NAME`, or `orfdata.sources.pfizer.build_protein("dog")`.
|
|
69
|
+
The source overrides are `protein.tsv` and `search.fasta`; DataCache verifies
|
|
70
|
+
their original checksums before running the importer. Source slices with actual
|
|
71
|
+
positive, zero and missing values test the same importer for all three species.
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pfizer-atlas-human-protein": {
|
|
3
|
+
"default_version": "2026-10-12.1",
|
|
4
|
+
"versions": {
|
|
5
|
+
"2026-10-12.1": {
|
|
6
|
+
"manifest": {
|
|
7
|
+
"dataset_id": "pfizer-atlas-human-protein",
|
|
8
|
+
"version": "2026-10-12.1",
|
|
9
|
+
"title": "Pfizer/Oziolor human native protein-group abundance",
|
|
10
|
+
"references": [
|
|
11
|
+
{
|
|
12
|
+
"taxon_id": 9606,
|
|
13
|
+
"species": "human",
|
|
14
|
+
"genome_build": null,
|
|
15
|
+
"annotation_name": "uniprot",
|
|
16
|
+
"annotation_version": null,
|
|
17
|
+
"assembly_accession": null,
|
|
18
|
+
"strain": null,
|
|
19
|
+
"strain_taxon_id": null,
|
|
20
|
+
"sequence_sha256": "3793b9bfcc956a278494734bb775a010513f5764d8047fcdb283d2aeaa7fefb8",
|
|
21
|
+
"taxonomy_version": "ncbi-2026-10-12",
|
|
22
|
+
"source_sha256": null
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"sources": [
|
|
26
|
+
{
|
|
27
|
+
"asset_id": "protein.tsv",
|
|
28
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099729/updates/2026-03-23_jfederspiel_ca08c7ac/other/t04_protein_postbridge_ibaq_pd.txt",
|
|
29
|
+
"sha256": "ca4dc37b764a352d12820e82c4e2e25099feeee3e70d24d12685a34fbe24e8e8",
|
|
30
|
+
"size": 49345047,
|
|
31
|
+
"access_terms": "MassIVE dataset CC0-1.0; source numeric table",
|
|
32
|
+
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
|
33
|
+
"redistributable": true,
|
|
34
|
+
"metadata": {
|
|
35
|
+
"attribution": "Oziolor et al. and Joel D. Federspiel, Pfizer",
|
|
36
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=bd0ccc49e0924d14ba14e9ed6ceffe0e",
|
|
37
|
+
"source_update": "2026-03-23",
|
|
38
|
+
"terms_verified": "2026-10-12"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"asset_id": "search.fasta",
|
|
43
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099729/sequence/Human_UP000005640_9606_noisoform.fasta",
|
|
44
|
+
"sha256": "3793b9bfcc956a278494734bb775a010513f5764d8047fcdb283d2aeaa7fefb8",
|
|
45
|
+
"size": 13831073,
|
|
46
|
+
"access_terms": "UniProt Consortium CC-BY-4.0; deposited search FASTA",
|
|
47
|
+
"license_url": "https://creativecommons.org/licenses/by/4.0/",
|
|
48
|
+
"redistributable": true,
|
|
49
|
+
"metadata": {
|
|
50
|
+
"attribution": "UniProt Consortium",
|
|
51
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=bd0ccc49e0924d14ba14e9ed6ceffe0e",
|
|
52
|
+
"source_update": "deposited original FASTA; UniProt release unspecified",
|
|
53
|
+
"terms_verified": "2026-10-12"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"citations": [
|
|
58
|
+
"https://doi.org/10.1038/s41597-026-07512-9",
|
|
59
|
+
"https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=bd0ccc49e0924d14ba14e9ed6ceffe0e",
|
|
60
|
+
"https://www.uniprot.org/help/license"
|
|
61
|
+
],
|
|
62
|
+
"assay_kinds": [
|
|
63
|
+
"digest_ms"
|
|
64
|
+
],
|
|
65
|
+
"coverage": {
|
|
66
|
+
"accession": "MSV000099729",
|
|
67
|
+
"family": "pfizer-nonclinical-atlas-2026",
|
|
68
|
+
"measurement_limits": "Intensity quantities; no calibrated copies per cell; no implicit cross-species absolute comparison",
|
|
69
|
+
"missingness": "NA is missing; zero is measured zero; absent group/sample combinations have no observation",
|
|
70
|
+
"nc_orf_search": "not established; missing groups do not establish ORF absence",
|
|
71
|
+
"pooling": "tissue by sex for rodents; tissue for human/dog; individual member IDs unresolved",
|
|
72
|
+
"reference_limits": "No genomic assembly or UniProt release declared; exact deposited FASTA pinned",
|
|
73
|
+
"sample_pairing": "RNA and peptide imports pending; no same-material pairing inferred",
|
|
74
|
+
"search_sequences": 20600,
|
|
75
|
+
"search_space": "deposited UniProt FASTA without spliced isoforms",
|
|
76
|
+
"source_counts": {
|
|
77
|
+
"IBAQ:missing": 9,
|
|
78
|
+
"IBAQ:positive": 325061,
|
|
79
|
+
"IBAQ:zero": 632,
|
|
80
|
+
"absent_matrix_cells": 57322,
|
|
81
|
+
"assays": 37,
|
|
82
|
+
"groups": 10352,
|
|
83
|
+
"rIBAQ:missing": 9,
|
|
84
|
+
"rIBAQ:positive": 325061,
|
|
85
|
+
"rIBAQ:zero": 632,
|
|
86
|
+
"rows": 325702
|
|
87
|
+
},
|
|
88
|
+
"source_table": "t04_protein_postbridge_ibaq_pd.txt",
|
|
89
|
+
"strain_or_breed_reported": null,
|
|
90
|
+
"target_resolution": "protein_group"
|
|
91
|
+
},
|
|
92
|
+
"processing": {
|
|
93
|
+
"importer": "pfizer-protein-v1",
|
|
94
|
+
"operations": [
|
|
95
|
+
"retain native IBAQ and rIBAQ",
|
|
96
|
+
"preserve NA, zeros and source row/column",
|
|
97
|
+
"retain transformed Abundance and sumIBAQ as source text",
|
|
98
|
+
"resolve reported representative in pinned FASTA without assigning group abundance"
|
|
99
|
+
],
|
|
100
|
+
"parameters": {
|
|
101
|
+
"aggregate_replicates": false,
|
|
102
|
+
"infer_group_members": false
|
|
103
|
+
},
|
|
104
|
+
"software": "orfdata",
|
|
105
|
+
"source_update": "2026-03-23",
|
|
106
|
+
"version": "0.6.0"
|
|
107
|
+
},
|
|
108
|
+
"schema": "orfdata.measurements.v1"
|
|
109
|
+
},
|
|
110
|
+
"distribution": {
|
|
111
|
+
"access_terms": "Numeric source tables: MassIVE CC0-1.0. UniProt search-record annotations: CC-BY-4.0, attribution to UniProt Consortium. ORFdata transformation code: Apache-2.0.",
|
|
112
|
+
"redistributable": true,
|
|
113
|
+
"download_size": 87293488,
|
|
114
|
+
"download_sha256": "51c48a28f3db7d02154715f07cb8d908cc2898577b526e1275af33f52dda766d",
|
|
115
|
+
"installed_size": 1464070144,
|
|
116
|
+
"data_release": "data-pfizer-protein-2026-10-12.1"
|
|
117
|
+
},
|
|
118
|
+
"assets": {
|
|
119
|
+
"dataset.sqlite": {
|
|
120
|
+
"url": "https://github.com/openvax/orfdata/releases/download/data-pfizer-protein-2026-10-12.1/pfizer-atlas-human-protein-2026-10-12.1.sqlite.gz",
|
|
121
|
+
"sha256": "e5fc22a9214732a2626c2269ca99c2a576a9ee31d9f94c4b29e430657ddaef04",
|
|
122
|
+
"size": 1464070144,
|
|
123
|
+
"decompress": true
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"pfizer-atlas-mouse-protein": {
|
|
130
|
+
"default_version": "2026-10-12.1",
|
|
131
|
+
"versions": {
|
|
132
|
+
"2026-10-12.1": {
|
|
133
|
+
"manifest": {
|
|
134
|
+
"dataset_id": "pfizer-atlas-mouse-protein",
|
|
135
|
+
"version": "2026-10-12.1",
|
|
136
|
+
"title": "Pfizer/Oziolor mouse native protein-group abundance",
|
|
137
|
+
"references": [
|
|
138
|
+
{
|
|
139
|
+
"taxon_id": 10090,
|
|
140
|
+
"species": "mouse",
|
|
141
|
+
"genome_build": null,
|
|
142
|
+
"annotation_name": "uniprot",
|
|
143
|
+
"annotation_version": null,
|
|
144
|
+
"assembly_accession": null,
|
|
145
|
+
"strain": null,
|
|
146
|
+
"strain_taxon_id": null,
|
|
147
|
+
"sequence_sha256": "f6e080958003abfa54718f9465127a8225661fab1ad0738cc9301ad0d0a5c49f",
|
|
148
|
+
"taxonomy_version": "ncbi-2026-10-12",
|
|
149
|
+
"source_sha256": null
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"sources": [
|
|
153
|
+
{
|
|
154
|
+
"asset_id": "protein.tsv",
|
|
155
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099754/updates/2026-03-23_jfederspiel_6db4ede2/other/t04_protein_postbridge_ibaq_pd.txt",
|
|
156
|
+
"sha256": "b627bec35d1f3011e68f3083a9b0fbfac4beec9fd4da975c15bfb590eb9e9659",
|
|
157
|
+
"size": 94851860,
|
|
158
|
+
"access_terms": "MassIVE dataset CC0-1.0; source numeric table",
|
|
159
|
+
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
|
160
|
+
"redistributable": true,
|
|
161
|
+
"metadata": {
|
|
162
|
+
"attribution": "Oziolor et al. and Joel D. Federspiel, Pfizer",
|
|
163
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=068ade8643b2433c99b243fd29d5be78",
|
|
164
|
+
"source_update": "2026-03-23",
|
|
165
|
+
"terms_verified": "2026-10-12"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"asset_id": "search.fasta",
|
|
170
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099754/sequence/Mouse_UP000000589_10090_noisoform.fasta",
|
|
171
|
+
"sha256": "f6e080958003abfa54718f9465127a8225661fab1ad0738cc9301ad0d0a5c49f",
|
|
172
|
+
"size": 14325720,
|
|
173
|
+
"access_terms": "UniProt Consortium CC-BY-4.0; deposited search FASTA",
|
|
174
|
+
"license_url": "https://creativecommons.org/licenses/by/4.0/",
|
|
175
|
+
"redistributable": true,
|
|
176
|
+
"metadata": {
|
|
177
|
+
"attribution": "UniProt Consortium",
|
|
178
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=068ade8643b2433c99b243fd29d5be78",
|
|
179
|
+
"source_update": "deposited original FASTA; UniProt release unspecified",
|
|
180
|
+
"terms_verified": "2026-10-12"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"citations": [
|
|
185
|
+
"https://doi.org/10.1038/s41597-026-07512-9",
|
|
186
|
+
"https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=068ade8643b2433c99b243fd29d5be78",
|
|
187
|
+
"https://www.uniprot.org/help/license"
|
|
188
|
+
],
|
|
189
|
+
"assay_kinds": [
|
|
190
|
+
"digest_ms"
|
|
191
|
+
],
|
|
192
|
+
"coverage": {
|
|
193
|
+
"accession": "MSV000099754",
|
|
194
|
+
"family": "pfizer-nonclinical-atlas-2026",
|
|
195
|
+
"measurement_limits": "Intensity quantities; no calibrated copies per cell; no implicit cross-species absolute comparison",
|
|
196
|
+
"missingness": "NA is missing; zero is measured zero; absent group/sample combinations have no observation",
|
|
197
|
+
"nc_orf_search": "not established; missing groups do not establish ORF absence",
|
|
198
|
+
"pooling": "tissue by sex for rodents; tissue for human/dog; individual member IDs unresolved",
|
|
199
|
+
"reference_limits": "No genomic assembly or UniProt release declared; exact deposited FASTA pinned",
|
|
200
|
+
"sample_pairing": "RNA and peptide imports pending; no same-material pairing inferred",
|
|
201
|
+
"search_sequences": 21989,
|
|
202
|
+
"search_space": "deposited UniProt FASTA without spliced isoforms",
|
|
203
|
+
"source_counts": {
|
|
204
|
+
"IBAQ:missing": 102,
|
|
205
|
+
"IBAQ:positive": 615056,
|
|
206
|
+
"IBAQ:zero": 833,
|
|
207
|
+
"absent_matrix_cells": 147821,
|
|
208
|
+
"assays": 63,
|
|
209
|
+
"groups": 12124,
|
|
210
|
+
"rIBAQ:missing": 102,
|
|
211
|
+
"rIBAQ:positive": 615056,
|
|
212
|
+
"rIBAQ:zero": 833,
|
|
213
|
+
"rows": 615991
|
|
214
|
+
},
|
|
215
|
+
"source_table": "t04_protein_postbridge_ibaq_pd.txt",
|
|
216
|
+
"strain_or_breed_reported": [
|
|
217
|
+
"CD1",
|
|
218
|
+
"C57BL6"
|
|
219
|
+
],
|
|
220
|
+
"target_resolution": "protein_group"
|
|
221
|
+
},
|
|
222
|
+
"processing": {
|
|
223
|
+
"importer": "pfizer-protein-v1",
|
|
224
|
+
"operations": [
|
|
225
|
+
"retain native IBAQ and rIBAQ",
|
|
226
|
+
"preserve NA, zeros and source row/column",
|
|
227
|
+
"retain transformed Abundance and sumIBAQ as source text",
|
|
228
|
+
"resolve reported representative in pinned FASTA without assigning group abundance"
|
|
229
|
+
],
|
|
230
|
+
"parameters": {
|
|
231
|
+
"aggregate_replicates": false,
|
|
232
|
+
"infer_group_members": false
|
|
233
|
+
},
|
|
234
|
+
"software": "orfdata",
|
|
235
|
+
"source_update": "2026-03-23",
|
|
236
|
+
"version": "0.6.0"
|
|
237
|
+
},
|
|
238
|
+
"schema": "orfdata.measurements.v1"
|
|
239
|
+
},
|
|
240
|
+
"distribution": {
|
|
241
|
+
"access_terms": "Numeric source tables: MassIVE CC0-1.0. UniProt search-record annotations: CC-BY-4.0, attribution to UniProt Consortium. ORFdata transformation code: Apache-2.0.",
|
|
242
|
+
"redistributable": true,
|
|
243
|
+
"download_size": 154779449,
|
|
244
|
+
"download_sha256": "71e0a340b3102a73f2e0e63d0c69258642bcb29386018f4cb8fcc4a9c37be377",
|
|
245
|
+
"installed_size": 2717151232,
|
|
246
|
+
"data_release": "data-pfizer-protein-2026-10-12.1"
|
|
247
|
+
},
|
|
248
|
+
"assets": {
|
|
249
|
+
"dataset.sqlite": {
|
|
250
|
+
"url": "https://github.com/openvax/orfdata/releases/download/data-pfizer-protein-2026-10-12.1/pfizer-atlas-mouse-protein-2026-10-12.1.sqlite.gz",
|
|
251
|
+
"sha256": "0e1dec8f1ff3bfe1b557816e0360b720cd8106a06cc9573b5a2e9ab1334b1f97",
|
|
252
|
+
"size": 2717151232,
|
|
253
|
+
"decompress": true
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"pfizer-atlas-dog-protein": {
|
|
260
|
+
"default_version": "2026-10-12.1",
|
|
261
|
+
"versions": {
|
|
262
|
+
"2026-10-12.1": {
|
|
263
|
+
"manifest": {
|
|
264
|
+
"dataset_id": "pfizer-atlas-dog-protein",
|
|
265
|
+
"version": "2026-10-12.1",
|
|
266
|
+
"title": "Pfizer/Oziolor dog native protein-group abundance",
|
|
267
|
+
"references": [
|
|
268
|
+
{
|
|
269
|
+
"taxon_id": 9615,
|
|
270
|
+
"species": "dog",
|
|
271
|
+
"genome_build": null,
|
|
272
|
+
"annotation_name": "uniprot",
|
|
273
|
+
"annotation_version": null,
|
|
274
|
+
"assembly_accession": null,
|
|
275
|
+
"strain": null,
|
|
276
|
+
"strain_taxon_id": null,
|
|
277
|
+
"sequence_sha256": "d8488bf283de653efcff2e5de6d413b116e1ba4a2eb89298bd31205e72fef682",
|
|
278
|
+
"taxonomy_version": "ncbi-2026-10-12",
|
|
279
|
+
"source_sha256": null
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"sources": [
|
|
283
|
+
{
|
|
284
|
+
"asset_id": "protein.tsv",
|
|
285
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099744/updates/2026-03-23_jfederspiel_6c91304a/other/t04_protein_postbridge_ibaq_pd.txt",
|
|
286
|
+
"sha256": "ae2953c3fe3c31bc5fa06a9a0b222815376faea25489e6626af3736b7f4cbef2",
|
|
287
|
+
"size": 48196601,
|
|
288
|
+
"access_terms": "MassIVE dataset CC0-1.0; source numeric table",
|
|
289
|
+
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
|
|
290
|
+
"redistributable": true,
|
|
291
|
+
"metadata": {
|
|
292
|
+
"attribution": "Oziolor et al. and Joel D. Federspiel, Pfizer",
|
|
293
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=062b109e9adf461ba619369dd0d85aa9",
|
|
294
|
+
"source_update": "2026-03-23",
|
|
295
|
+
"terms_verified": "2026-10-12"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"asset_id": "search.fasta",
|
|
300
|
+
"url": "https://massive.ucsd.edu/ProteoSAFe/DownloadResultFile?file=f.MSV000099744/sequence/Dog_UP000002254_9615_noisoform.fasta",
|
|
301
|
+
"sha256": "d8488bf283de653efcff2e5de6d413b116e1ba4a2eb89298bd31205e72fef682",
|
|
302
|
+
"size": 14659832,
|
|
303
|
+
"access_terms": "UniProt Consortium CC-BY-4.0; deposited search FASTA",
|
|
304
|
+
"license_url": "https://creativecommons.org/licenses/by/4.0/",
|
|
305
|
+
"redistributable": true,
|
|
306
|
+
"metadata": {
|
|
307
|
+
"attribution": "UniProt Consortium",
|
|
308
|
+
"deposit": "https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=062b109e9adf461ba619369dd0d85aa9",
|
|
309
|
+
"source_update": "deposited original FASTA; UniProt release unspecified",
|
|
310
|
+
"terms_verified": "2026-10-12"
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
],
|
|
314
|
+
"citations": [
|
|
315
|
+
"https://doi.org/10.1038/s41597-026-07512-9",
|
|
316
|
+
"https://massive.ucsd.edu/ProteoSAFe/dataset.jsp?task=062b109e9adf461ba619369dd0d85aa9",
|
|
317
|
+
"https://www.uniprot.org/help/license"
|
|
318
|
+
],
|
|
319
|
+
"assay_kinds": [
|
|
320
|
+
"digest_ms"
|
|
321
|
+
],
|
|
322
|
+
"coverage": {
|
|
323
|
+
"accession": "MSV000099744",
|
|
324
|
+
"family": "pfizer-nonclinical-atlas-2026",
|
|
325
|
+
"measurement_limits": "Intensity quantities; no calibrated copies per cell; no implicit cross-species absolute comparison",
|
|
326
|
+
"missingness": "NA is missing; zero is measured zero; absent group/sample combinations have no observation",
|
|
327
|
+
"nc_orf_search": "not established; missing groups do not establish ORF absence",
|
|
328
|
+
"pooling": "tissue by sex for rodents; tissue for human/dog; individual member IDs unresolved",
|
|
329
|
+
"reference_limits": "No genomic assembly or UniProt release declared; exact deposited FASTA pinned",
|
|
330
|
+
"sample_pairing": "RNA and peptide imports pending; no same-material pairing inferred",
|
|
331
|
+
"search_sequences": 20649,
|
|
332
|
+
"search_space": "deposited UniProt FASTA without spliced isoforms",
|
|
333
|
+
"source_counts": {
|
|
334
|
+
"IBAQ:missing": 8,
|
|
335
|
+
"IBAQ:positive": 312143,
|
|
336
|
+
"IBAQ:zero": 1112,
|
|
337
|
+
"absent_matrix_cells": 64039,
|
|
338
|
+
"assays": 38,
|
|
339
|
+
"groups": 9929,
|
|
340
|
+
"rIBAQ:missing": 8,
|
|
341
|
+
"rIBAQ:positive": 312143,
|
|
342
|
+
"rIBAQ:zero": 1112,
|
|
343
|
+
"rows": 313263
|
|
344
|
+
},
|
|
345
|
+
"source_table": "t04_protein_postbridge_ibaq_pd.txt",
|
|
346
|
+
"strain_or_breed_reported": [
|
|
347
|
+
"beagle"
|
|
348
|
+
],
|
|
349
|
+
"target_resolution": "protein_group"
|
|
350
|
+
},
|
|
351
|
+
"processing": {
|
|
352
|
+
"importer": "pfizer-protein-v1",
|
|
353
|
+
"operations": [
|
|
354
|
+
"retain native IBAQ and rIBAQ",
|
|
355
|
+
"preserve NA, zeros and source row/column",
|
|
356
|
+
"retain transformed Abundance and sumIBAQ as source text",
|
|
357
|
+
"resolve reported representative in pinned FASTA without assigning group abundance"
|
|
358
|
+
],
|
|
359
|
+
"parameters": {
|
|
360
|
+
"aggregate_replicates": false,
|
|
361
|
+
"infer_group_members": false
|
|
362
|
+
},
|
|
363
|
+
"software": "orfdata",
|
|
364
|
+
"source_update": "2026-03-23",
|
|
365
|
+
"version": "0.6.0"
|
|
366
|
+
},
|
|
367
|
+
"schema": "orfdata.measurements.v1"
|
|
368
|
+
},
|
|
369
|
+
"distribution": {
|
|
370
|
+
"access_terms": "Numeric source tables: MassIVE CC0-1.0. UniProt search-record annotations: CC-BY-4.0, attribution to UniProt Consortium. ORFdata transformation code: Apache-2.0.",
|
|
371
|
+
"redistributable": true,
|
|
372
|
+
"download_size": 84379381,
|
|
373
|
+
"download_sha256": "5f0c319e8a0584000a68f28099ee685d323bd38ab8ac0c7539907dd82ea44fb4",
|
|
374
|
+
"installed_size": 1404428288,
|
|
375
|
+
"data_release": "data-pfizer-protein-2026-10-12.1"
|
|
376
|
+
},
|
|
377
|
+
"assets": {
|
|
378
|
+
"dataset.sqlite": {
|
|
379
|
+
"url": "https://github.com/openvax/orfdata/releases/download/data-pfizer-protein-2026-10-12.1/pfizer-atlas-dog-protein-2026-10-12.1.sqlite.gz",
|
|
380
|
+
"sha256": "33d5506874eb32b5426aee7e5d528bb4f754ecf3ac5bc00f5e3fb16fd3ee0694",
|
|
381
|
+
"size": 1404428288,
|
|
382
|
+
"decompress": true
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
@@ -18,7 +18,7 @@ def run(argv=None, prog=None):
|
|
|
18
18
|
listing.add_argument("--species")
|
|
19
19
|
listing.add_argument("--taxon-id", type=int)
|
|
20
20
|
listing.add_argument("--assay")
|
|
21
|
-
for command in ("info", "download", "inspect", "query", "pairs"):
|
|
21
|
+
for command in ("info", "download", "build", "inspect", "query", "pairs"):
|
|
22
22
|
subparser = commands.add_parser(command)
|
|
23
23
|
subparser.add_argument("name")
|
|
24
24
|
subparser.add_argument("--version")
|
|
@@ -26,7 +26,13 @@ def run(argv=None, prog=None):
|
|
|
26
26
|
subparser.add_argument("--force", action="store_true")
|
|
27
27
|
subparser.add_argument("--timeout", type=float)
|
|
28
28
|
subparser.add_argument("--quiet", action="store_true")
|
|
29
|
-
subparser.add_argument("--source-path", help="Use a local
|
|
29
|
+
subparser.add_argument("--source-path", help="Use a local registered artifact (compressed when declared)")
|
|
30
|
+
if command == "build":
|
|
31
|
+
subparser.add_argument("--force", action="store_true")
|
|
32
|
+
subparser.add_argument("--timeout", type=float)
|
|
33
|
+
subparser.add_argument("--quiet", action="store_true")
|
|
34
|
+
subparser.add_argument("--source-path", action="append", default=[], metavar="ASSET=PATH",
|
|
35
|
+
help="Use a local pinned source; repeat for each input asset")
|
|
30
36
|
if command == "query":
|
|
31
37
|
subparser.add_argument("--reference", help="Exact ref:SHA256 context key")
|
|
32
38
|
subparser.add_argument("--sample")
|
|
@@ -74,6 +80,20 @@ def run(argv=None, prog=None):
|
|
|
74
80
|
sources = {"dataset.sqlite": args.source_path} if args.source_path else None
|
|
75
81
|
result = registry.download(args.name, args.version, force=args.force,
|
|
76
82
|
source_paths=sources, **options)
|
|
83
|
+
elif args.command == "build":
|
|
84
|
+
sources = {}
|
|
85
|
+
for value in args.source_path:
|
|
86
|
+
asset, separator, path = value.partition("=")
|
|
87
|
+
if not separator or not asset or not path or asset in sources:
|
|
88
|
+
parser.error("Source overrides require unique ASSET=PATH entries")
|
|
89
|
+
sources[asset] = path
|
|
90
|
+
options = dict(show_progress=not args.quiet)
|
|
91
|
+
if args.timeout is not None:
|
|
92
|
+
options["timeout"] = args.timeout
|
|
93
|
+
dataset = registry.build(args.name, args.version, force=args.force,
|
|
94
|
+
source_paths=sources, download_options=options)
|
|
95
|
+
result = dict(path=str(dataset.path), counts=dataset.counts,
|
|
96
|
+
dataset_id=dataset.manifest.dataset_id, version=dataset.manifest.version)
|
|
77
97
|
elif args.command == "pairs":
|
|
78
98
|
dataset = registry.open(args.name, args.version)
|
|
79
99
|
for match in dataset.matched_measurements(
|
|
@@ -122,6 +122,16 @@ class DatasetRegistry:
|
|
|
122
122
|
return self._data_registry().download(name, version, force=force,
|
|
123
123
|
source_paths=source_paths, **options)
|
|
124
124
|
|
|
125
|
+
def build(self, name, version=None, *, force=False, source_paths=None, download_options=None):
|
|
126
|
+
"""Rebuild a registered release from pinned source files, explicitly."""
|
|
127
|
+
from .sources import importer
|
|
128
|
+
|
|
129
|
+
manifest = self.info(name, version)
|
|
130
|
+
transform = importer(manifest.processing.get("importer"))
|
|
131
|
+
return build_dataset(manifest, lambda inputs, output: transform(inputs, output, manifest),
|
|
132
|
+
cache_root=self._cache_root, source_paths=source_paths, force=force,
|
|
133
|
+
download_options=download_options)
|
|
134
|
+
|
|
125
135
|
def open(self, name, version=None, *, verify_files=True):
|
|
126
136
|
"""Open an installed dataset after integrity and identity checks, offline."""
|
|
127
137
|
version = self._version(name, version)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""Source-specific importers; source measurements retain their native semantics."""
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def importer(name):
|
|
5
|
+
"""Resolve a packaged importer, never execute an import path from metadata."""
|
|
6
|
+
if name == "pfizer-protein-v1":
|
|
7
|
+
from .pfizer import import_protein
|
|
8
|
+
|
|
9
|
+
return import_protein
|
|
10
|
+
raise ValueError(f"No packaged importer for {name!r}")
|