orfdata 0.6.0__tar.gz → 0.7.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.
Files changed (98) hide show
  1. {orfdata-0.6.0 → orfdata-0.7.0}/MANIFEST.in +1 -0
  2. {orfdata-0.6.0/orfdata.egg-info → orfdata-0.7.0}/PKG-INFO +5 -4
  3. {orfdata-0.6.0 → orfdata-0.7.0}/README.md +4 -3
  4. orfdata-0.7.0/docs/copy-yeast.md +109 -0
  5. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/datasets.json +359 -0
  6. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/sources/__init__.py +4 -0
  7. orfdata-0.7.0/orfdata/sources/copy.py +315 -0
  8. orfdata-0.7.0/orfdata/version.py +1 -0
  9. {orfdata-0.6.0 → orfdata-0.7.0/orfdata.egg-info}/PKG-INFO +5 -4
  10. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata.egg-info/SOURCES.txt +20 -0
  11. orfdata-0.7.0/tests/data/copy/GSM1905474.soft +1 -0
  12. orfdata-0.7.0/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
  13. orfdata-0.7.0/tests/data/copy/GSM1905476.soft +1 -0
  14. orfdata-0.7.0/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
  15. orfdata-0.7.0/tests/data/copy/GSM1905478.soft +1 -0
  16. orfdata-0.7.0/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
  17. orfdata-0.7.0/tests/data/copy/GSM1905479.soft +1 -0
  18. orfdata-0.7.0/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
  19. orfdata-0.7.0/tests/data/copy/NOTICE.md +13 -0
  20. orfdata-0.7.0/tests/data/copy/expected.json +630 -0
  21. orfdata-0.7.0/tests/data/copy/geo-series.soft +1 -0
  22. orfdata-0.7.0/tests/data/copy/manifest.json +379 -0
  23. orfdata-0.7.0/tests/data/copy/methods.pdf +1 -0
  24. orfdata-0.7.0/tests/data/copy/paper.xml +1 -0
  25. orfdata-0.7.0/tests/data/copy/pmc-metadata.json +1 -0
  26. orfdata-0.7.0/tests/data/copy/qconcat.fasta +1369 -0
  27. orfdata-0.7.0/tests/data/copy/workbook.xlsx +0 -0
  28. orfdata-0.7.0/tests/test_copy.py +192 -0
  29. orfdata-0.6.0/orfdata/version.py +0 -1
  30. {orfdata-0.6.0 → orfdata-0.7.0}/LICENSE +0 -0
  31. {orfdata-0.6.0 → orfdata-0.7.0}/deploy.sh +0 -0
  32. {orfdata-0.6.0 → orfdata-0.7.0}/docs/design.md +0 -0
  33. {orfdata-0.6.0 → orfdata-0.7.0}/docs/measurements.md +0 -0
  34. {orfdata-0.6.0 → orfdata-0.7.0}/docs/pairing.md +0 -0
  35. {orfdata-0.6.0 → orfdata-0.7.0}/docs/pfizer-protein.md +0 -0
  36. {orfdata-0.6.0 → orfdata-0.7.0}/docs/reference.md +0 -0
  37. {orfdata-0.6.0 → orfdata-0.7.0}/docs/source-references.md +0 -0
  38. {orfdata-0.6.0 → orfdata-0.7.0}/docs/species.md +0 -0
  39. {orfdata-0.6.0 → orfdata-0.7.0}/lint.sh +0 -0
  40. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/__init__.py +0 -0
  41. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/build.py +0 -0
  42. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/catalog.py +0 -0
  43. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/cli.py +0 -0
  44. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
  45. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
  46. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
  47. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/orf-evidence/manifest.json +0 -0
  48. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
  49. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
  50. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
  51. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
  52. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/dataset.py +0 -0
  53. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/dataset_cli.py +0 -0
  54. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/datasets.py +0 -0
  55. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/initiation_context.py +0 -0
  56. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/measurements.py +0 -0
  57. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/model.py +0 -0
  58. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/pairing.py +0 -0
  59. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/reference.py +0 -0
  60. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/reference_mapping.py +0 -0
  61. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/sequence.py +0 -0
  62. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata/sources/pfizer.py +0 -0
  63. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata.egg-info/dependency_links.txt +0 -0
  64. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata.egg-info/entry_points.txt +0 -0
  65. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata.egg-info/requires.txt +0 -0
  66. {orfdata-0.6.0 → orfdata-0.7.0}/orfdata.egg-info/top_level.txt +0 -0
  67. {orfdata-0.6.0 → orfdata-0.7.0}/pyproject.toml +0 -0
  68. {orfdata-0.6.0 → orfdata-0.7.0}/setup.cfg +0 -0
  69. {orfdata-0.6.0 → orfdata-0.7.0}/test.sh +0 -0
  70. {orfdata-0.6.0 → orfdata-0.7.0}/tests/conftest.py +0 -0
  71. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/NOTICE.md +0 -0
  72. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/dog/expected.json +0 -0
  73. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/dog/manifest.json +0 -0
  74. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/dog/protein.tsv +0 -0
  75. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/dog/search.fasta +0 -0
  76. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/human/expected.json +0 -0
  77. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/human/manifest.json +0 -0
  78. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/human/protein.tsv +0 -0
  79. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/human/search.fasta +0 -0
  80. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/mouse/expected.json +0 -0
  81. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/mouse/manifest.json +0 -0
  82. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
  83. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/pfizer/mouse/search.fasta +0 -0
  84. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/README.md +0 -0
  85. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
  86. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/context-keys-v0.4.json +0 -0
  87. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/homo_sapiens.json +0 -0
  88. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/mus_musculus.json +0 -0
  89. {orfdata-0.6.0 → orfdata-0.7.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
  90. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_cross_reference_pairing.py +0 -0
  91. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_initiation_context.py +0 -0
  92. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_measurements.py +0 -0
  93. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_pairing.py +0 -0
  94. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_pfizer.py +0 -0
  95. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_reference_context.py +0 -0
  96. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_reference_mapping.py +0 -0
  97. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_reference_orf.py +0 -0
  98. {orfdata-0.6.0 → orfdata-0.7.0}/tests/test_uorf_catalog.py +0 -0
@@ -1,3 +1,4 @@
1
1
  include lint.sh test.sh deploy.sh
2
2
  recursive-include docs *.md
3
3
  recursive-include tests *.py *.json *.md *.tsv *.fasta
4
+ recursive-include tests/data/copy *.xlsx *.gz *.soft *.xml *.pdf
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orfdata
3
- Version: 0.6.0
3
+ Version: 0.7.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
@@ -102,9 +102,10 @@ new experimental ORF catalogues. [Species and reference identity](docs/species.m
102
102
  Install with `pip install orfdata[pyensembl]`. See the
103
103
  [measurement API](docs/measurements.md) for native units, explicit samples and
104
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
105
+ [human, mouse and dog protein abundance](docs/pfizer-protein.md) and
106
+ [yeast calibrated protein/RNA abundance](docs/copy-yeast.md) use the same
107
+ species-scoped API. These canonical-search measurements do not establish
107
108
  noncanonical ORF abundance. The
108
109
  [quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
109
- tracks RNA abundance, ribosome occupancy, yeast absolute quantification and
110
+ tracks further RNA abundance, ribosome occupancy, absolute quantification and
110
111
  additional protein data releases.
@@ -75,9 +75,10 @@ new experimental ORF catalogues. [Species and reference identity](docs/species.m
75
75
  Install with `pip install orfdata[pyensembl]`. See the
76
76
  [measurement API](docs/measurements.md) for native units, explicit samples and
77
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
78
+ [human, mouse and dog protein abundance](docs/pfizer-protein.md) and
79
+ [yeast calibrated protein/RNA abundance](docs/copy-yeast.md) use the same
80
+ species-scoped API. These canonical-search measurements do not establish
80
81
  noncanonical ORF abundance. The
81
82
  [quantitative, multispecies data roadmap](https://github.com/openvax/orfdata/issues/3)
82
- tracks RNA abundance, ribosome occupancy, yeast absolute quantification and
83
+ tracks further RNA abundance, ribosome occupancy, absolute quantification and
83
84
  additional protein data releases.
@@ -0,0 +1,109 @@
1
+ # Yeast protein and RNA abundance
2
+
3
+ `copy-yeast-abundance` imports [Lawless et al., CoPY (2016)](https://doi.org/10.1074/mcp.M115.054288)
4
+ through the same dataset API as human, mouse and dog. It includes calibrated
5
+ protein and peptide quantities, label-free estimates and RNA from budding yeast
6
+ grown in glucose-limited chemostats. The strain is EUROSCARF Y11335 BY4742,
7
+ with the reported genotype retained on each sample.
8
+
9
+ ```sh
10
+ pip install 'orfdata[data]'
11
+ orfdata datasets info copy-yeast-abundance
12
+ orfdata datasets download copy-yeast-abundance
13
+ orfdata datasets pairs copy-yeast-abundance --basis condition_aggregate
14
+ ```
15
+
16
+ The release contains 69,125 observations in a roughly 14 MB compressed download
17
+ (168 MB installed). Downloads are explicit and checksum-verified through
18
+ DataCache. Queries work offline after installation.
19
+
20
+ | Source measurements | Coverage | Interpretation |
21
+ |---|---:|---|
22
+ | QconCAT SRM protein summaries | 1,903 rows | 1,167 quantified; 668 upper bounds; 68 unquantifiable |
23
+ | SRM peptide observations | 3,836 rows × four cultures and author median | Protein-specific isotope standards; copies/cell, classification and uncertainty |
24
+ | Aggregate RNA | 6,581 labels × FPKM and estimated copies/cell | Counts aggregated before FPKM; copies assume 60,000 total mRNAs/cell |
25
+ | Individual RNA libraries | Four × 7,137 tracking IDs | Native FPKM, 95% confidence interval and Cufflinks status |
26
+ | Label-free estimates | 3,166 rows × two methods | Q-Exactive internal-standard Top3 and SAX total-protein scaling remain separate |
27
+
28
+ The 55 joined SRM protein groups retain their combined attribution. Label-free
29
+ identities also remain groups because full membership is unresolved. Two rows
30
+ share the label YNL239W; both survive unchanged. Upper bounds have
31
+ `status="below_detection"`, `value=None` and a `detection_limit`; missing and
32
+ unquantifiable values never become zeros. Author-calibrated SRM estimates have
33
+ `origin="observed"`; the RNA copies/cell conversion has `origin="derived"`
34
+ with its original FPKM input and calibration assumption.
35
+
36
+ The QconCAT FASTA contains 93 synthetic calibration standards, not native yeast
37
+ proteins. Four reported peptides do not match their assigned standard; their
38
+ measurements retain an explicit validation flag. See [source reconciliation #34](https://github.com/openvax/orfdata/issues/34).
39
+ Raw transitions and light/heavy ratios are not supplied in the processed
40
+ workbook. SRM raw data are identified by PASS00717; PXD002694 is the label-free
41
+ deposit. RNA is from GSE73898. Cufflinks LOWDATA rows retain their original
42
+ positive/zero estimates and confidence bounds in provenance, while the query
43
+ value remains `not_measured` because reliable quantification is unresolved.
44
+
45
+ ## Comparing RNA and protein
46
+
47
+ The paper supports same-cell measurements at the source-cohort level. The
48
+ individual MS-to-RNA replicate crosswalk is unresolved, so comparisons require
49
+ explicit `condition_aggregate` selection. Replicate numbers alone never join
50
+ samples. Label-free methods have different calibrations and no inferred RNA pair.
51
+
52
+ ```python
53
+ from orfdata import DatasetRegistry
54
+
55
+ dataset = DatasetRegistry().open("copy-yeast-abundance")
56
+ match = next(
57
+ m for m in dataset.matched_measurements(allowed_bases=["condition_aggregate"])
58
+ if m.relation.left.identifier == "YML035C" # AMD1, yeast source context
59
+ )
60
+ protein = match.right[0] # 3203.943997 copies/cell; author SRM estimate
61
+ rna = next(m for m in match.left if m.unit == "copies/cell") # ~2.11665
62
+ ratio = match.ratio(
63
+ protein, rna, measurement_id="AMD1:protein-per-RNA",
64
+ method="native calibrated protein / estimated RNA",
65
+ normalization={"assumed_total_mrna_per_cell": 60000, "level": "source cohort"},
66
+ )
67
+ print(ratio.value, ratio.unit, ratio.derivation)
68
+ ```
69
+
70
+ The ratio is conditional on the RNA calibration. It is neither a translation
71
+ rate nor ribosome occupancy. Group relationships cannot yield an individual
72
+ protein ratio. All quantities keep their source units and assumptions.
73
+
74
+ ## References and other species
75
+
76
+ Both yeast contexts carry taxon 4932 and pinned source hashes. The historical
77
+ SGD/Bowtie genome and annotation releases are unspecified; assembly, annotation
78
+ version and reference strain remain null. These source labels support canonical
79
+ gene/protein relationships but cannot bind a current PyEnsembl transcript until
80
+ a reference mapping is validated. Sample BY4742 strain is separate from the
81
+ unknown reference-genome strain. This dataset does not establish which yeast
82
+ noncanonical ORFs were searched, expressed or absent.
83
+
84
+ For cross-species comparisons, supply independently validated, pinned orthology
85
+ records rather than joining gene names. For example, with an installed mammal
86
+ RNA dataset and a curated JSON list of `OrthologyMapping` records:
87
+
88
+ ```python
89
+ import json
90
+ from orfdata import OrthologyMapping, compare_orthologs
91
+
92
+ with open("curated-yeast-mammal-orthology.json") as handle:
93
+ mappings = [OrthologyMapping.from_dict(row) for row in json.load(handle)]
94
+ for comparison in compare_orthologs(dataset, mammal_rna_dataset, mappings):
95
+ print(comparison.left, comparison.right) # Separate original measurements
96
+ ```
97
+
98
+ The mapping must name both exact references, its release, source checksum,
99
+ cardinality and confidence. No expression or protein-existence evidence transfers
100
+ between species, and different cultures/calibrations remain different experiments.
101
+ See [pairing and orthology](pairing.md).
102
+
103
+ To rebuild the release from the pinned public workbook, standards, metadata and
104
+ four RNA files, install `orfdata[data,build-data]` and run
105
+ `orfdata datasets build copy-yeast-abundance`. Python uses
106
+ `DatasetRegistry().build("copy-yeast-abundance")`. Local verified inputs can be
107
+ supplied with repeated `--source-path ASSET=PATH` or `source_paths={...}`.
108
+ The workbook and standards use stable versioned PMC objects; the dynamically
109
+ generated EuropePMC ZIP is not used as a content identity.
@@ -384,5 +384,364 @@
384
384
  }
385
385
  }
386
386
  }
387
+ },
388
+ "copy-yeast-abundance": {
389
+ "default_version": "2026-10-12.1",
390
+ "versions": {
391
+ "2026-10-12.1": {
392
+ "manifest": {
393
+ "dataset_id": "copy-yeast-abundance",
394
+ "version": "2026-10-12.1",
395
+ "title": "CoPY yeast calibrated SRM protein/peptide abundance and source-cohort RNA",
396
+ "references": [
397
+ {
398
+ "taxon_id": 4932,
399
+ "species": "yeast",
400
+ "genome_build": null,
401
+ "annotation_name": "sgd",
402
+ "annotation_version": null,
403
+ "assembly_accession": null,
404
+ "strain": null,
405
+ "strain_taxon_id": null,
406
+ "sequence_sha256": null,
407
+ "taxonomy_version": "ncbi-2026-10-12",
408
+ "source_sha256": "22fa0a6143fb2f0d1fc350d63988b47cc5b62608839a5af3408201589b9329f8"
409
+ },
410
+ {
411
+ "taxon_id": 4932,
412
+ "species": "yeast",
413
+ "genome_build": null,
414
+ "annotation_name": "sgd",
415
+ "annotation_version": null,
416
+ "assembly_accession": null,
417
+ "strain": null,
418
+ "strain_taxon_id": null,
419
+ "sequence_sha256": null,
420
+ "taxonomy_version": "ncbi-2026-10-12",
421
+ "source_sha256": "94c41f50b5d90255d10d47a567febc8011fde72dcd851003127082ac2ea92b69"
422
+ }
423
+ ],
424
+ "sources": [
425
+ {
426
+ "asset_id": "workbook.xlsx",
427
+ "url": "https://pmc-oa-opendata.s3.amazonaws.com/PMC4824857.1/10.1074_M115.054288_mcp.M115.054288-4.xlsx",
428
+ "sha256": "22fa0a6143fb2f0d1fc350d63988b47cc5b62608839a5af3408201589b9329f8",
429
+ "size": 1236663,
430
+ "access_terms": "Lawless et al. 2016, CC-BY-4.0",
431
+ "license_url": "https://creativecommons.org/licenses/by/4.0/",
432
+ "redistributable": true,
433
+ "metadata": {
434
+ "attribution": "Lawless et al. 2016; PMC4824857 version 1",
435
+ "source_name": "10.1074_M115.054288_mcp.M115.054288-4.xlsx"
436
+ }
437
+ },
438
+ {
439
+ "asset_id": "qconcat.fasta",
440
+ "url": "https://pmc-oa-opendata.s3.amazonaws.com/PMC4824857.1/10.1074_M115.054288_mcp.M115.054288-5.txt",
441
+ "sha256": "347300954d2ef7562f4999609f64e901d52b67a4bc09329b67db0b6b4248c522",
442
+ "size": 65604,
443
+ "access_terms": "Lawless et al. 2016, CC-BY-4.0",
444
+ "license_url": "https://creativecommons.org/licenses/by/4.0/",
445
+ "redistributable": true,
446
+ "metadata": {
447
+ "attribution": "Lawless et al. 2016; PMC4824857 version 1",
448
+ "source_name": "10.1074_M115.054288_mcp.M115.054288-5.txt"
449
+ }
450
+ },
451
+ {
452
+ "asset_id": "pmc-metadata.json",
453
+ "url": "https://pmc-oa-opendata.s3.amazonaws.com/PMC4824857.1/PMC4824857.1.json",
454
+ "sha256": "dd095a4246992ecd39ea9a85fd2b5be85c80d21af272af1fdbc7cc1e8f2b0136",
455
+ "size": 1997,
456
+ "access_terms": "Lawless et al. 2016, CC-BY-4.0",
457
+ "license_url": "https://creativecommons.org/licenses/by/4.0/",
458
+ "redistributable": true,
459
+ "metadata": {
460
+ "attribution": "Lawless et al. 2016; PMC4824857 version 1",
461
+ "source_name": "PMC4824857.1.json"
462
+ }
463
+ },
464
+ {
465
+ "asset_id": "paper.xml",
466
+ "url": "https://pmc-oa-opendata.s3.amazonaws.com/PMC4824857.1/PMC4824857.1.xml",
467
+ "sha256": "d43c143a3fcefe24b78855c47a7024f168a18d24e064c07cf2892ed9f69e4a04",
468
+ "size": 170874,
469
+ "access_terms": "Lawless et al. 2016, CC-BY-4.0",
470
+ "license_url": "https://creativecommons.org/licenses/by/4.0/",
471
+ "redistributable": true,
472
+ "metadata": {
473
+ "attribution": "Lawless et al. 2016; PMC4824857 version 1",
474
+ "source_name": "PMC4824857.1.xml"
475
+ }
476
+ },
477
+ {
478
+ "asset_id": "methods.pdf",
479
+ "url": "https://pmc-oa-opendata.s3.amazonaws.com/PMC4824857.1/10.1074_M115.054288_mcp.M115.054288-1.pdf",
480
+ "sha256": "72e35534874e24cbc5af698dfac79032211de9873680e3d86e92e3667d9432d4",
481
+ "size": 11078018,
482
+ "access_terms": "Lawless et al. 2016, CC-BY-4.0",
483
+ "license_url": "https://creativecommons.org/licenses/by/4.0/",
484
+ "redistributable": true,
485
+ "metadata": {
486
+ "attribution": "Lawless et al. 2016; PMC4824857 version 1",
487
+ "source_name": "10.1074_M115.054288_mcp.M115.054288-1.pdf"
488
+ }
489
+ },
490
+ {
491
+ "asset_id": "geo-series.soft",
492
+ "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE73898&targ=self&form=text&view=full",
493
+ "sha256": "94c41f50b5d90255d10d47a567febc8011fde72dcd851003127082ac2ea92b69",
494
+ "size": 2321,
495
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
496
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
497
+ "redistributable": true,
498
+ "metadata": {
499
+ "attribution": "Lawless et al. 2016, GSE73898"
500
+ }
501
+ },
502
+ {
503
+ "asset_id": "GSM1905474_KL9_fpkm.txt.gz",
504
+ "url": "https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM1905nnn/GSM1905474/suppl/GSM1905474_KL9_fpkm.txt.gz",
505
+ "sha256": "eefad9dd94eb1c23822151fc5c13622850f827219e5324527de848e9bb893735",
506
+ "size": 251872,
507
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
508
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
509
+ "redistributable": true,
510
+ "metadata": {
511
+ "attribution": "Lawless et al. 2016, GSE73898"
512
+ }
513
+ },
514
+ {
515
+ "asset_id": "GSM1905474.soft",
516
+ "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM1905474&targ=self&form=text&view=full",
517
+ "sha256": "74bfa86c8dd2451e378197e60bdb56a5fb1e231f6414719c737ff49823a82340",
518
+ "size": 4229,
519
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
520
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
521
+ "redistributable": true,
522
+ "metadata": {
523
+ "attribution": "Lawless et al. 2016, GSE73898"
524
+ }
525
+ },
526
+ {
527
+ "asset_id": "GSM1905476_KL10_fpkm.txt.gz",
528
+ "url": "https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM1905nnn/GSM1905476/suppl/GSM1905476_KL10_fpkm.txt.gz",
529
+ "sha256": "a140400b943a11e9562c8f5bc7beae92058d46fe139561c78446bdced77c8063",
530
+ "size": 252094,
531
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
532
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
533
+ "redistributable": true,
534
+ "metadata": {
535
+ "attribution": "Lawless et al. 2016, GSE73898"
536
+ }
537
+ },
538
+ {
539
+ "asset_id": "GSM1905476.soft",
540
+ "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM1905476&targ=self&form=text&view=full",
541
+ "sha256": "58babb002f603aa4a4e5aac2fb68f512097704c8ad50e9f4fcc56955c19546ad",
542
+ "size": 4230,
543
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
544
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
545
+ "redistributable": true,
546
+ "metadata": {
547
+ "attribution": "Lawless et al. 2016, GSE73898"
548
+ }
549
+ },
550
+ {
551
+ "asset_id": "GSM1905478_KL11_fpkm.txt.gz",
552
+ "url": "https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM1905nnn/GSM1905478/suppl/GSM1905478_KL11_fpkm.txt.gz",
553
+ "sha256": "4d22041d40239d5c797c726e0783d37ecf4b2e4712f5527079bd43452a286e9d",
554
+ "size": 251317,
555
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
556
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
557
+ "redistributable": true,
558
+ "metadata": {
559
+ "attribution": "Lawless et al. 2016, GSE73898"
560
+ }
561
+ },
562
+ {
563
+ "asset_id": "GSM1905478.soft",
564
+ "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM1905478&targ=self&form=text&view=full",
565
+ "sha256": "30213e813e7ec1aab561b6b542bb959af493bd1f1a61c368b4501ed2487b2505",
566
+ "size": 4230,
567
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
568
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
569
+ "redistributable": true,
570
+ "metadata": {
571
+ "attribution": "Lawless et al. 2016, GSE73898"
572
+ }
573
+ },
574
+ {
575
+ "asset_id": "GSM1905479_KL12_fpkm.txt.gz",
576
+ "url": "https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM1905nnn/GSM1905479/suppl/GSM1905479_KL12_fpkm.txt.gz",
577
+ "sha256": "c2cb73467894f08f20cdaff8fb24ec0fa248265efa0af7db55793769c1f00275",
578
+ "size": 252445,
579
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
580
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
581
+ "redistributable": true,
582
+ "metadata": {
583
+ "attribution": "Lawless et al. 2016, GSE73898"
584
+ }
585
+ },
586
+ {
587
+ "asset_id": "GSM1905479.soft",
588
+ "url": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM1905479&targ=self&form=text&view=full",
589
+ "sha256": "1ecf8d1c37220f712d44cfcc117867217c4337d134f08cd9a217b42e68c1a22f",
590
+ "size": 4230,
591
+ "access_terms": "NCBI places no restrictions on GEO data use or distribution; retain source attribution",
592
+ "license_url": "https://www.ncbi.nlm.nih.gov/geo/info/disclaimer.html",
593
+ "redistributable": true,
594
+ "metadata": {
595
+ "attribution": "Lawless et al. 2016, GSE73898"
596
+ }
597
+ }
598
+ ],
599
+ "citations": [
600
+ "https://doi.org/10.1074/mcp.M115.054288",
601
+ "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE73898",
602
+ "https://www.peptideatlas.org/PASS/PASS00717",
603
+ "https://www.ebi.ac.uk/pride/archive/projects/PXD002694"
604
+ ],
605
+ "assay_kinds": [
606
+ "targeted_ms",
607
+ "digest_ms",
608
+ "rna_seq"
609
+ ],
610
+ "coverage": {
611
+ "sheet_rows": {
612
+ "ProteinQuant": 1903,
613
+ "PeptideQuant": 3836,
614
+ "RNA": 6581,
615
+ "LabelFree": 3166
616
+ },
617
+ "protein_classes": {
618
+ "AA": 532,
619
+ "AB": 388,
620
+ "AC": 243,
621
+ "A-": 4,
622
+ "BB": 401,
623
+ "BC": 266,
624
+ "B-": 1,
625
+ "CC": 65,
626
+ "C-": 3
627
+ },
628
+ "standard_sequences": 93,
629
+ "standard_validation": {
630
+ "exact_subsequence": 3832,
631
+ "peptide_not_in_standard": 4
632
+ },
633
+ "quantified_protein_or_groups": 1167,
634
+ "upper_bound_protein_or_groups": 668,
635
+ "unquantifiable_protein_or_groups": 68,
636
+ "joined_srm_protein_groups": 55,
637
+ "label_free_unique_labels": 3165,
638
+ "label_free_duplicate_labels": {
639
+ "YNL239W": 2
640
+ },
641
+ "raw_rna_rows": 28548,
642
+ "raw_rna_lowdata_rows": 296,
643
+ "sample_pairing": "Source-cohort aggregate RNA/SRM only; individual MS/RNA replicate correspondence unresolved",
644
+ "reference_limits": "Historical SGD/Bowtie build and annotation release unspecified; source-only contexts cannot bind current PyEnsembl transcripts",
645
+ "standard_limits": "Four peptide rows do not match their reported synthetic standard; preserve quantities and explicit validation status",
646
+ "nc_orf_search": "Canonical targets; noncanonical ORF search not established; no ORF absence claim",
647
+ "excluded": "qconcatsummary redundant design/count table; raw transitions and light/heavy ratios not in workbook; no ribosome profiling"
648
+ },
649
+ "processing": {
650
+ "importer": "copy-yeast-v1",
651
+ "software": "orfdata",
652
+ "version": "0.7.0",
653
+ "reference_roles": {
654
+ "workbook": "ref:6850655bdc157940309fb8626cd44fe0ef0acb25daab8eddcb8c7c9cba3e2784",
655
+ "rna_replicates": "ref:f4a5327db00123357b8234b0ac05c9be9e92cfa0383aa0e77e72d72a635935e7"
656
+ },
657
+ "rna_inputs": [
658
+ {
659
+ "asset_id": "GSM1905474_KL9_fpkm.txt.gz",
660
+ "sample_id": "GSM1905474",
661
+ "metadata_asset": "GSM1905474.soft",
662
+ "biological_replicate": "1",
663
+ "title": "yeast RNA-seq fast BioRep1",
664
+ "rows": 7137,
665
+ "statuses": {
666
+ "OK": 7063,
667
+ "LOWDATA": 74
668
+ }
669
+ },
670
+ {
671
+ "asset_id": "GSM1905476_KL10_fpkm.txt.gz",
672
+ "sample_id": "GSM1905476",
673
+ "metadata_asset": "GSM1905476.soft",
674
+ "biological_replicate": "2",
675
+ "title": "yeast RNA-seq fast BioRep2",
676
+ "rows": 7137,
677
+ "statuses": {
678
+ "OK": 7063,
679
+ "LOWDATA": 74
680
+ }
681
+ },
682
+ {
683
+ "asset_id": "GSM1905478_KL11_fpkm.txt.gz",
684
+ "sample_id": "GSM1905478",
685
+ "metadata_asset": "GSM1905478.soft",
686
+ "biological_replicate": "3",
687
+ "title": "yeast RNA-seq fast BioRep3",
688
+ "rows": 7137,
689
+ "statuses": {
690
+ "OK": 7063,
691
+ "LOWDATA": 74
692
+ }
693
+ },
694
+ {
695
+ "asset_id": "GSM1905479_KL12_fpkm.txt.gz",
696
+ "sample_id": "GSM1905479",
697
+ "metadata_asset": "GSM1905479.soft",
698
+ "biological_replicate": "4",
699
+ "title": "yeast RNA-seq fast BioRep4",
700
+ "rows": 7137,
701
+ "statuses": {
702
+ "OK": 7063,
703
+ "LOWDATA": 74
704
+ }
705
+ }
706
+ ],
707
+ "aggregation": "Published RNA counts aggregated before FPKM; not a mean of per-replicate FPKM",
708
+ "calibrations": {
709
+ "SRM": "Protein-specific QconCAT with known spike and cell equivalents",
710
+ "RNA": "FPKM/sum(FPKM)*60000 assumed mRNA/cell",
711
+ "Qexactive": "Top3; 50 fmol P00489 and 400000 cells",
712
+ "SAX": "Top3; assumed 60000000 protein molecules/cell"
713
+ },
714
+ "unresolved": [
715
+ "Exact historical native sequence reference",
716
+ "Individual cross-assay biological replicate mapping",
717
+ "Label-free full protein-group membership"
718
+ ],
719
+ "operations": [
720
+ "Preserve native rows, measured zeros, bounds and missingness",
721
+ "Retain distinct calibration and quality flags",
722
+ "Keep grouped targets unresolved",
723
+ "Attach cohort-only RNA/protein relations"
724
+ ]
725
+ },
726
+ "schema": "orfdata.measurements.v1"
727
+ },
728
+ "distribution": {
729
+ "access_terms": "Lawless et al. 2016 workbook and QconCAT annotations: CC-BY-4.0. GEO numerical data: unrestricted NCBI reuse with author attribution. ORFdata transformation code: Apache-2.0.",
730
+ "redistributable": true,
731
+ "download_size": 14239331,
732
+ "download_sha256": "8999ea6e060ed5191124bba136ddb365a47ea9dc193d31e6bf45961bbe07b61a",
733
+ "installed_size": 168169472,
734
+ "data_release": "data-copy-yeast-2026-10-12.1"
735
+ },
736
+ "assets": {
737
+ "dataset.sqlite": {
738
+ "url": "https://github.com/openvax/orfdata/releases/download/data-copy-yeast-2026-10-12.1/copy-yeast-abundance-2026-10-12.1.sqlite.gz",
739
+ "sha256": "73b07cefaa3f8eab1dbe43d4c5bd5b9d7e0f84767649992c7da581ef45f517a1",
740
+ "size": 168169472,
741
+ "decompress": true
742
+ }
743
+ }
744
+ }
745
+ }
387
746
  }
388
747
  }
@@ -7,4 +7,8 @@ def importer(name):
7
7
  from .pfizer import import_protein
8
8
 
9
9
  return import_protein
10
+ if name == "copy-yeast-v1":
11
+ from .copy import import_copy
12
+
13
+ return import_copy
10
14
  raise ValueError(f"No packaged importer for {name!r}")