orfdata 0.42.0__tar.gz → 0.42.2__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 (385) hide show
  1. {orfdata-0.42.0/orfdata.egg-info → orfdata-0.42.2}/PKG-INFO +1 -1
  2. {orfdata-0.42.0 → orfdata-0.42.2}/docs/catalogs.md +13 -4
  3. {orfdata-0.42.0 → orfdata-0.42.2}/docs/reference.md +12 -0
  4. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/catalogs.json +8 -2
  5. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/model.py +19 -1
  6. orfdata-0.42.2/orfdata/version.py +1 -0
  7. {orfdata-0.42.0 → orfdata-0.42.2/orfdata.egg-info}/PKG-INFO +1 -1
  8. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/SOURCES.txt +2 -0
  9. orfdata-0.42.2/tests/data/references/transcript_orf_v1_0.42.0.json +71 -0
  10. orfdata-0.42.2/tests/test_transcript_orf_serialization.py +128 -0
  11. orfdata-0.42.0/orfdata/version.py +0 -1
  12. {orfdata-0.42.0 → orfdata-0.42.2}/LICENSE +0 -0
  13. {orfdata-0.42.0 → orfdata-0.42.2}/MANIFEST.in +0 -0
  14. {orfdata-0.42.0 → orfdata-0.42.2}/README.md +0 -0
  15. {orfdata-0.42.0 → orfdata-0.42.2}/deploy.sh +0 -0
  16. {orfdata-0.42.0 → orfdata-0.42.2}/docs/copy-yeast.md +0 -0
  17. {orfdata-0.42.0 → orfdata-0.42.2}/docs/coverage.md +0 -0
  18. {orfdata-0.42.0 → orfdata-0.42.2}/docs/dog-data-sources.md +0 -0
  19. {orfdata-0.42.0 → orfdata-0.42.2}/docs/dog-peptides.md +0 -0
  20. {orfdata-0.42.0 → orfdata-0.42.2}/docs/downloads.md +0 -0
  21. {orfdata-0.42.0 → orfdata-0.42.2}/docs/downstream.md +0 -0
  22. {orfdata-0.42.0 → orfdata-0.42.2}/docs/examples.md +0 -0
  23. {orfdata-0.42.0 → orfdata-0.42.2}/docs/human-tissue.md +0 -0
  24. {orfdata-0.42.0 → orfdata-0.42.2}/docs/index.md +0 -0
  25. {orfdata-0.42.0 → orfdata-0.42.2}/docs/ingolia-yeast.md +0 -0
  26. {orfdata-0.42.0 → orfdata-0.42.2}/docs/measurements.md +0 -0
  27. {orfdata-0.42.0 → orfdata-0.42.2}/docs/pairing.md +0 -0
  28. {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-peptides.md +0 -0
  29. {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-protein.md +0 -0
  30. {orfdata-0.42.0 → orfdata-0.42.2}/docs/pfizer-rna.md +0 -0
  31. {orfdata-0.42.0 → orfdata-0.42.2}/docs/proteome.md +0 -0
  32. {orfdata-0.42.0 → orfdata-0.42.2}/docs/search-references.md +0 -0
  33. {orfdata-0.42.0 → orfdata-0.42.2}/docs/source-references.md +0 -0
  34. {orfdata-0.42.0 → orfdata-0.42.2}/docs/species.md +0 -0
  35. {orfdata-0.42.0 → orfdata-0.42.2}/docs/storage.md +0 -0
  36. {orfdata-0.42.0 → orfdata-0.42.2}/docs/stylesheets/docs.css +0 -0
  37. {orfdata-0.42.0 → orfdata-0.42.2}/docs/viral.md +0 -0
  38. {orfdata-0.42.0 → orfdata-0.42.2}/docs.sh +0 -0
  39. {orfdata-0.42.0 → orfdata-0.42.2}/lint.sh +0 -0
  40. {orfdata-0.42.0 → orfdata-0.42.2}/mkdocs.yml +0 -0
  41. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/__init__.py +0 -0
  42. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/_pinned_genome.py +0 -0
  43. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/_structure.py +0 -0
  44. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/artifact_archives.py +0 -0
  45. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/build.py +0 -0
  46. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog.py +0 -0
  47. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog_cli.py +0 -0
  48. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalog_manifest.py +0 -0
  49. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/catalogs.py +0 -0
  50. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/cli.py +0 -0
  51. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/cli_output.py +0 -0
  52. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/chains.json +0 -0
  53. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/datasets.json +0 -0
  54. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/genomes.json +0 -0
  55. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
  56. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
  57. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
  58. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
  59. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/orf-evidence/manifest.json +0 -0
  60. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
  61. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
  62. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
  63. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/uorf-evidence/manifest.json +0 -0
  64. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/NOTICE.md +0 -0
  65. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
  66. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +0 -0
  67. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +0 -0
  68. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
  69. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data/viral/subsets.yaml +0 -0
  70. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/data_resources.py +0 -0
  71. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/dataset.py +0 -0
  72. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/dataset_cli.py +0 -0
  73. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/datasets.py +0 -0
  74. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/download_cli.py +0 -0
  75. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/downloads.py +0 -0
  76. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/evidence.py +0 -0
  77. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/evidence_summary.py +0 -0
  78. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/fasta.py +0 -0
  79. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genbank.py +0 -0
  80. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genomes.py +0 -0
  81. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/genomes_cli.py +0 -0
  82. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/gtf.py +0 -0
  83. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/initiation_context.py +0 -0
  84. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/install.py +0 -0
  85. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/liftover.py +0 -0
  86. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/liftover_cli.py +0 -0
  87. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/measurements.py +0 -0
  88. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/net.py +0 -0
  89. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/numeric_vector.py +0 -0
  90. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/pairing.py +0 -0
  91. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/proteome.py +0 -0
  92. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/proteome_cli.py +0 -0
  93. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/record_sources.py +0 -0
  94. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference.py +0 -0
  95. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_ledger.py +0 -0
  96. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_mapping.py +0 -0
  97. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/reference_table.py +0 -0
  98. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/refseq.py +0 -0
  99. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/rna.py +0 -0
  100. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/search_reference.py +0 -0
  101. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sequence.py +0 -0
  102. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/__init__.py +0 -0
  103. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/copy.py +0 -0
  104. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/ingolia.py +0 -0
  105. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/kaabinejadian.py +0 -0
  106. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/ncorf_mammals.py +0 -0
  107. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/openprot.py +0 -0
  108. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/peptideatlas.py +0 -0
  109. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer.py +0 -0
  110. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_attribution.py +0 -0
  111. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_dataset.py +0 -0
  112. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_definitions.py +0 -0
  113. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_evidence.py +0 -0
  114. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_lineage.py +0 -0
  115. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_native.py +0 -0
  116. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_queries.py +0 -0
  117. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_rna.py +0 -0
  118. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/pfizer_vendor.py +0 -0
  119. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/riborf.py +0 -0
  120. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/sources/wang.py +0 -0
  121. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral.py +0 -0
  122. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_annotation.py +0 -0
  123. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_cli.py +0 -0
  124. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_coverage.py +0 -0
  125. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_panel.py +0 -0
  126. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_registry.py +0 -0
  127. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata/viral_subsets.py +0 -0
  128. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/dependency_links.txt +0 -0
  129. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/entry_points.txt +0 -0
  130. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/requires.txt +0 -0
  131. {orfdata-0.42.0 → orfdata-0.42.2}/orfdata.egg-info/top_level.txt +0 -0
  132. {orfdata-0.42.0 → orfdata-0.42.2}/pyproject.toml +0 -0
  133. {orfdata-0.42.0 → orfdata-0.42.2}/setup.cfg +0 -0
  134. {orfdata-0.42.0 → orfdata-0.42.2}/test.sh +0 -0
  135. {orfdata-0.42.0 → orfdata-0.42.2}/tests/conftest.py +0 -0
  136. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/aggregate_evidence.json +0 -0
  137. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905474.soft +0 -0
  138. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
  139. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905476.soft +0 -0
  140. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
  141. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905478.soft +0 -0
  142. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
  143. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905479.soft +0 -0
  144. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
  145. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/NOTICE.md +0 -0
  146. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/expected.json +0 -0
  147. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/geo-series.soft +0 -0
  148. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/manifest.json +0 -0
  149. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/methods.pdf +0 -0
  150. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/paper.xml +0 -0
  151. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/pmc-metadata.json +0 -0
  152. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/qconcat.fasta +0 -0
  153. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/copy/workbook.xlsx +0 -0
  154. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
  155. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
  156. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
  157. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
  158. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
  159. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
  160. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
  161. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
  162. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
  163. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
  164. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
  165. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
  166. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
  167. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
  168. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
  169. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
  170. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/NOTICE.md +0 -0
  171. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/expected.json +0 -0
  172. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/manifest.json +0 -0
  173. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ingolia/readMe.txt.gz +0 -0
  174. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/README.md +0 -0
  175. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/Results.zip +0 -0
  176. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/manifest-v1.json +0 -0
  177. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/manifest.json +0 -0
  178. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/kaabinejadian/sdrf.tsv +0 -0
  179. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/README.md +0 -0
  180. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/S3.xlsx +0 -0
  181. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
  182. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
  183. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
  184. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human.bed +0 -0
  185. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/human.pep.fa +0 -0
  186. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/mouse.bed +0 -0
  187. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
  188. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/README.md +0 -0
  189. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
  190. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/ensembl106.gtf.gz +0 -0
  191. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
  192. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
  193. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
  194. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/README.md +0 -0
  195. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
  196. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
  197. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/peptideatlas/manifest.json +0 -0
  198. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/NOTICE.md +0 -0
  199. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/expected.json +0 -0
  200. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/manifest.json +0 -0
  201. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/protein.tsv +0 -0
  202. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/dog/search.fasta +0 -0
  203. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/expected.json +0 -0
  204. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/manifest.json +0 -0
  205. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/protein.tsv +0 -0
  206. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/human/search.fasta +0 -0
  207. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/expected.json +0 -0
  208. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/manifest.json +0 -0
  209. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/protein.tsv +0 -0
  210. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/mouse/search.fasta +0 -0
  211. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/NOTICE.md +0 -0
  212. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/acquisition-missingness.json +0 -0
  213. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/definitions.json +0 -0
  214. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/dog-panel.json +0 -0
  215. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/membership-search-slice.fasta +0 -0
  216. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/memberships.json +0 -0
  217. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/native.json +0 -0
  218. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/parent-status-search-slice.fasta +0 -0
  219. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/parent-status.json +0 -0
  220. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/psm-parent-sets-search-slice.fasta +0 -0
  221. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/psm-parent-sets.json +0 -0
  222. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/search-slice.fasta +0 -0
  223. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/search-slice.json +0 -0
  224. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/study-slice.xml +0 -0
  225. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer/vendor/summary-samples.json +0 -0
  226. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
  227. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
  228. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
  229. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/NOTICE.md +0 -0
  230. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/counts.csv.gz +0 -0
  231. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
  232. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-expected.json +0 -0
  233. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/dog-manifest.json +0 -0
  234. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
  235. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-expected.json +0 -0
  236. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
  237. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/pfizer_rna/samples.xlsx +0 -0
  238. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/README.md +0 -0
  239. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/canis_lupus_familiaris.json +0 -0
  240. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/context-keys-v0.4.json +0 -0
  241. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/ensembl115.json +0 -0
  242. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/homo_sapiens.json +0 -0
  243. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/mitochondrial.json +0 -0
  244. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/mus_musculus.json +0 -0
  245. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
  246. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/references/uniprot_literature.json +0 -0
  247. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/regions/NOTICE.md +0 -0
  248. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/regions/ingolia.json +0 -0
  249. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/README.md +0 -0
  250. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/SD3.xlsx +0 -0
  251. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
  252. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.gtf.gz +0 -0
  253. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
  254. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
  255. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
  256. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
  257. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
  258. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
  259. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
  260. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
  261. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
  262. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
  263. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
  264. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
  265. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
  266. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/NOTICE.md +0 -0
  267. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/dog.fasta +0 -0
  268. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/ensembl83-expected.json +0 -0
  269. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
  270. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/search_reference/expected.json +0 -0
  271. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/README.md +0 -0
  272. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/generate.py +0 -0
  273. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v1.json +0 -0
  274. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v1.sqlite +0 -0
  275. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v2.json +0 -0
  276. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v2.sqlite +0 -0
  277. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v3.json +0 -0
  278. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v3.sqlite +0 -0
  279. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v4.json +0 -0
  280. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/storage/v4.sqlite +0 -0
  281. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
  282. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/NC_001526.4.gb.gz +0 -0
  283. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
  284. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
  285. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
  286. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
  287. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
  288. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/NOTICE.md +0 -0
  289. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/annotation.gtf.gz +0 -0
  290. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/copies.zip +0 -0
  291. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/expected.json +0 -0
  292. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/manifest.json +0 -0
  293. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/protein.zip +0 -0
  294. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/rna.zip +0 -0
  295. {orfdata-0.42.0 → orfdata-0.42.2}/tests/data/wang/search.fasta.gz +0 -0
  296. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_artifact_archives.py +0 -0
  297. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_catalog_registry.py +0 -0
  298. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_copy.py +0 -0
  299. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_cross_reference_pairing.py +0 -0
  300. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_data_resources.py +0 -0
  301. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_export_read_ahead.py +0 -0
  302. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_ncorf_search.py +0 -0
  303. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_dog_peptides.py +0 -0
  304. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_downloads.py +0 -0
  305. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ensembl_search_reference.py +0 -0
  306. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_evidence_rules.py +0 -0
  307. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_evidence_summary.py +0 -0
  308. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_export_sqlite_rows.py +0 -0
  309. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_extraction_budget.py +0 -0
  310. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ftps_sqlite.py +0 -0
  311. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genbank.py +0 -0
  312. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genbank_equivalence.py +0 -0
  313. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genetic_codes.py +0 -0
  314. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_genomes.py +0 -0
  315. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ingolia.py +0 -0
  316. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_initiation_context.py +0 -0
  317. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_liftover.py +0 -0
  318. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_local_build_queries.py +0 -0
  319. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_measurements.py +0 -0
  320. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_merge_catalogs.py +0 -0
  321. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_more_species.py +0 -0
  322. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_ncorf_mammals.py +0 -0
  323. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_numeric_vector.py +0 -0
  324. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_openprot.py +0 -0
  325. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_orf_cases.py +0 -0
  326. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_orf_gtf.py +0 -0
  327. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_package_dog_dataset.py +0 -0
  328. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_package_sqlite_archive.py +0 -0
  329. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_paired_selectors.py +0 -0
  330. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pairing.py +0 -0
  331. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer.py +0 -0
  332. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_attribution.py +0 -0
  333. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_dataset.py +0 -0
  334. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_definitions.py +0 -0
  335. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_evidence.py +0 -0
  336. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_lineage.py +0 -0
  337. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_native.py +0 -0
  338. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_rna.py +0 -0
  339. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_pfizer_vendor.py +0 -0
  340. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_protein_set.py +0 -0
  341. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome.py +0 -0
  342. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_external.py +0 -0
  343. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_fasta_tokens.py +0 -0
  344. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_proteome_producer_graph.py +0 -0
  345. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_context.py +0 -0
  346. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_ledger.py +0 -0
  347. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_mapping.py +0 -0
  348. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_orf.py +0 -0
  349. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_reference_table.py +0 -0
  350. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_refseq.py +0 -0
  351. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_region_targets.py +0 -0
  352. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_riborf.py +0 -0
  353. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_search_reference.py +0 -0
  354. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_selectors.py +0 -0
  355. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_storage.py +0 -0
  356. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_uorf_catalog.py +0 -0
  357. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_verify_dog_dataset.py +0 -0
  358. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral.py +0 -0
  359. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_bundle.py +0 -0
  360. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_cli.py +0 -0
  361. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_collections.py +0 -0
  362. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_completeness.py +0 -0
  363. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_coverage.py +0 -0
  364. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_initiation.py +0 -0
  365. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_origin_join.py +0 -0
  366. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_sources.py +0 -0
  367. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_viral_subsets.py +0 -0
  368. {orfdata-0.42.0 → orfdata-0.42.2}/tests/test_wang.py +0 -0
  369. {orfdata-0.42.0 → orfdata-0.42.2}/tools/README-dog-results.md +0 -0
  370. {orfdata-0.42.0 → orfdata-0.42.2}/tools/__init__.py +0 -0
  371. {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_dog_dataset.py +0 -0
  372. {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_gdc_viral_coverage.py +0 -0
  373. {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_hpv16_cds.py +0 -0
  374. {orfdata-0.42.0 → orfdata-0.42.2}/tools/build_reference_ledger.py +0 -0
  375. {orfdata-0.42.0 → orfdata-0.42.2}/tools/dog_result_plan.json +0 -0
  376. {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_dog_lineage.py +0 -0
  377. {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_dog_results.py +0 -0
  378. {orfdata-0.42.0 → orfdata-0.42.2}/tools/export_sqlite_rows.py +0 -0
  379. {orfdata-0.42.0 → orfdata-0.42.2}/tools/extraction_budget.py +0 -0
  380. {orfdata-0.42.0 → orfdata-0.42.2}/tools/ftps_sqlite.py +0 -0
  381. {orfdata-0.42.0 → orfdata-0.42.2}/tools/inspect_dog_results.py +0 -0
  382. {orfdata-0.42.0 → orfdata-0.42.2}/tools/normalize_dog_evidence.py +0 -0
  383. {orfdata-0.42.0 → orfdata-0.42.2}/tools/package_dog_dataset.py +0 -0
  384. {orfdata-0.42.0 → orfdata-0.42.2}/tools/package_sqlite_archive.py +0 -0
  385. {orfdata-0.42.0 → orfdata-0.42.2}/tools/verify_dog_dataset.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orfdata
3
- Version: 0.42.0
3
+ Version: 0.42.2
4
4
  Summary: Reference proteomes with evidence-backed noncanonical ORFs on PyEnsembl genomes
5
5
  Author: OpenVax
6
6
  License-Expression: Apache-2.0
@@ -17,7 +17,8 @@ original PyEnsembl transcript through `ReferenceORF`. To use several catalogues
17
17
  for one species together, see
18
18
  [merging catalogues](proteome.md#merging-catalogues).
19
19
 
20
- The packaged registry builds each catalogue from its sources' own files:
20
+ The packaged registry supplies catalogues as pinned downloads or builds from
21
+ their sources' own files:
21
22
 
22
23
  | Species | Catalogues | ORFs |
23
24
  | --- | --- | ---: |
@@ -78,11 +79,11 @@ existing standalone local-file workflow.
78
79
 
79
80
  ```sh
80
81
  pip install "orfdata"
81
- orfdata setup --species mouse --accept-terms # Three catalogues and the chains; about 130 MB of sources
82
+ orfdata setup --species mouse --accept-terms # Three catalogues and the chains
82
83
  ```
83
84
 
84
- `orfdata setup` builds each registered mouse catalogue from its pinned sources
85
- and downloads the chain files (`--accept-terms` for UCSC's non-commercial
85
+ `orfdata setup` downloads the published Chang et al. catalogue, builds the other
86
+ registered mouse catalogues from their pinned sources, and downloads the chain files (`--accept-terms` for UCSC's non-commercial
86
87
  GRCm38/GRCm39 chains). It prints what it did with each: built, downloaded,
87
88
  already installed, repaired or skipped. If one fails, the rest are still
88
89
  installed and it exits with status 1, naming each failure; in Python,
@@ -115,6 +116,14 @@ least two callers find it in a library, in at least two libraries, starting at
115
116
  ATG, CTG, GTG or TTG. Its types are uORF (8,294), lncORF (3,576), uoORF
116
117
  (1,950), iORF (1,749), dORF (741) and doORF (174).
117
118
 
119
+ - **Download.** `orfdata data fetch ncorf-mammals-mouse` installs the
120
+ checksum-pinned 2.22 MB catalogue. `orfdata data path ncorf-mammals-mouse`
121
+ returns its local path for offline use. Python callers use
122
+ `fetch_data("ncorf-mammals-mouse")` and `CatalogRegistry().open("ncorf-mammals-mouse")`.
123
+ The [data release](https://github.com/openvax/orfdata/releases/tag/data-ncorf-mammals-mouse-1)
124
+ includes the manifest, source access terms and acceptance receipt.
125
+ `orfdata catalogs build ncorf-mammals-mouse` still explicitly rebuilds from
126
+ the original inputs; `catalogs query ncorf-mammals-mouse --built` selects that result.
118
127
  - **Sources.** The authors' BED and protein FASTA (MIT, pinned commit), the
119
128
  paper's Table S3 (CC BY 4.0) and Ensembl 107's GTF; about 40 MB.
120
129
  - **Coding paths.** The BED garbles multi-exon block sizes, so each ORF's
@@ -84,6 +84,18 @@ explicitly supplied RNA, checking its identity, reference, coding path and
84
84
  sequence fingerprints. It preserves source evidence and optional catalogue
85
85
  provenance.
86
86
 
87
+ Every `to_dict()` export includes `resolved_transcript.contig` and
88
+ `resolved_transcript.strand`, including annotated CDSs and `TranscriptORF.at`
89
+ placements whose `model` and `record` are `null`. These fields describe the RNA
90
+ actually carrying the ORF, preserving its contig spelling and `+`/`-` strand;
91
+ they do not substitute the original source model's locus. Unknown `SourceRNA`
92
+ locus values remain `null`, so unknown orientation is explicit. Saved results can be
93
+ interpreted without reloading a reference sequence.
94
+
95
+ These are additive fields in `orfdata.transcript_orf.v1` as of 0.42.1. The reader
96
+ accepts older v1 exports where they are absent. If a field is present, including
97
+ an explicit `null`, it must match the supplied carrier RNA during replay.
98
+
87
99
  ```python
88
100
  from orfdata import extra_orfs
89
101
 
@@ -190,10 +190,16 @@
190
190
  "schema": "orfdata.catalog-manifest.v1"
191
191
  },
192
192
  "distribution": {
193
- "access_terms": "Built locally from the pinned source files: the authors' ncORF files (MIT), the paper's Table S3 (CC BY 4.0) and Ensembl 107's GTF. Cite Chang et al., eLife 2025 (doi:10.7554/eLife.109128).",
193
+ "access_terms": "Redistributed from the pinned authors' ncORF files (MIT), Table S3 (CC BY 4.0) and Ensembl 107 GTF (unrestricted). Includes source provenance and one unresolved row. Cite Chang et al., eLife 2025 (doi:10.7554/eLife.109128).",
194
194
  "redistributable": true
195
195
  },
196
- "assets": {}
196
+ "assets": {
197
+ "catalog.json.gz": {
198
+ "url": "https://github.com/openvax/orfdata/releases/download/data-ncorf-mammals-mouse-1/catalog.json.gz",
199
+ "sha256": "255f1d089b1eaa88a0bed53006c05ec78350626659461086fa11164947f151f1",
200
+ "size": 2219659
201
+ }
202
+ }
197
203
  }
198
204
  },
199
205
  "priority": 20
@@ -800,6 +800,11 @@ class TranscriptORF:
800
800
  return self._source_gene[1] if self.record is None else self.model.gene_name
801
801
 
802
802
  def to_dict(self):
803
+ """Export this placement, including the carrier RNA's contig and strand.
804
+
805
+ ``resolved_transcript`` always contains both locus fields; an unmapped
806
+ source RNA keeps its unknown values as ``None``.
807
+ """
803
808
  transcript = self.transcript
804
809
  genome = transcript.genome
805
810
  species = getattr(genome, "species", None)
@@ -825,6 +830,8 @@ class TranscriptORF:
825
830
  },
826
831
  resolved_transcript=dict(
827
832
  id=transcript.id,
833
+ contig=transcript.contig,
834
+ strand=transcript.strand,
828
835
  version=getattr(transcript, "version", None),
829
836
  release=getattr(genome, "release", None),
830
837
  genome_build=self.context.genome_build,
@@ -862,6 +869,8 @@ class TranscriptORF:
862
869
  The complete RNA sequence, reference context, coordinates and protein
863
870
  fingerprints must agree. Annotation and source-defined placements keep
864
871
  ``record=None``; no catalogue observation is fabricated during replay.
872
+ Legacy v1 exports without carrier locus fields remain readable; when
873
+ present, those fields must match the explicitly supplied RNA.
865
874
  """
866
875
  from .catalog import ORFEvidence, _record
867
876
 
@@ -880,6 +889,9 @@ class TranscriptORF:
880
889
  if (transcript.id != resolved["id"]
881
890
  or getattr(transcript, "version", None) != resolved["version"]):
882
891
  raise ValueError("Transcript ORF snapshot transcript identity mismatch")
892
+ for field in ("contig", "strand"):
893
+ if field in resolved and resolved[field] != getattr(transcript, field):
894
+ raise ValueError(f"Transcript ORF snapshot carrier {field} mismatch")
883
895
  if value.get("record") is not None:
884
896
  restored = cls(_record(value["record"]), transcript, context=context, any_transcript=True)
885
897
  else:
@@ -934,7 +946,13 @@ class TranscriptORF:
934
946
  elif ((restored.start_complete and origin != 0)
935
947
  or (restored.stop_complete and origin != len(coding) - 3 * (len(restored.protein_sequence) + 1))):
936
948
  raise ValueError("Transcript ORF snapshot coding phase contradicts its annotated boundaries")
937
- if json.dumps(restored.to_dict(), sort_keys=True) != json.dumps(value, sort_keys=True):
949
+ exported = restored.to_dict()
950
+ # Before 0.42.1, v1 snapshots did not include the carrier's locus.
951
+ # Only absent fields are optional: an explicit null still must agree.
952
+ for field in ("contig", "strand"):
953
+ if field not in resolved:
954
+ exported["resolved_transcript"].pop(field)
955
+ if json.dumps(exported, sort_keys=True) != json.dumps(value, sort_keys=True):
938
956
  raise ValueError("Transcript ORF snapshot does not round-trip to its source definition")
939
957
  return restored
940
958
 
@@ -0,0 +1 @@
1
+ __version__ = "0.42.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orfdata
3
- Version: 0.42.0
3
+ Version: 0.42.2
4
4
  Summary: Reference proteomes with evidence-backed noncanonical ORFs on PyEnsembl genomes
5
5
  Author: OpenVax
6
6
  License-Expression: Apache-2.0
@@ -188,6 +188,7 @@ tests/test_riborf.py
188
188
  tests/test_search_reference.py
189
189
  tests/test_selectors.py
190
190
  tests/test_storage.py
191
+ tests/test_transcript_orf_serialization.py
191
192
  tests/test_uorf_catalog.py
192
193
  tests/test_verify_dog_dataset.py
193
194
  tests/test_viral.py
@@ -311,6 +312,7 @@ tests/data/references/homo_sapiens.json
311
312
  tests/data/references/mitochondrial.json
312
313
  tests/data/references/mus_musculus.json
313
314
  tests/data/references/saccharomyces_cerevisiae.json
315
+ tests/data/references/transcript_orf_v1_0.42.0.json
314
316
  tests/data/references/uniprot_literature.json
315
317
  tests/data/regions/NOTICE.md
316
318
  tests/data/regions/ingolia.json
@@ -0,0 +1,71 @@
1
+ {
2
+ "schema": "orfdata.transcript_orf.v1",
3
+ "kind": "extra_orf",
4
+ "orf_id": "legacy",
5
+ "equivalent_ids": [],
6
+ "source_transcript_id": "snapshot-fixture",
7
+ "on_source_transcript": true,
8
+ "model": null,
9
+ "record": null,
10
+ "evidence": {
11
+ "ribosome_studies": [],
12
+ "peptides": []
13
+ },
14
+ "reference_context": {
15
+ "taxon_id": 9606,
16
+ "species": "human",
17
+ "genome_build": "GRCh38",
18
+ "annotation_name": "synthetic",
19
+ "annotation_version": "1",
20
+ "assembly_accession": null,
21
+ "strain": null,
22
+ "strain_taxon_id": null,
23
+ "sequence_sha256": null,
24
+ "taxonomy_version": "ncbi-2026-10-12",
25
+ "source_sha256": null
26
+ },
27
+ "reference_key": "ref:2cd293bb014bdfd762ba5d24f5a4f7c9eb6ee91b1ba0cbd2585b60b667491fec",
28
+ "sequence_fingerprints": {
29
+ "transcript_sha256": "c5fc760ddfbe43faada474e3d39342b30a0542dd9e4583b655cec28b53867498",
30
+ "coding_sha256": "c5fc760ddfbe43faada474e3d39342b30a0542dd9e4583b655cec28b53867498",
31
+ "protein_sha256": "b2690faaaa9351ecb43b60145db79e38151129eaa426b9529f1705b2dd5168bc"
32
+ },
33
+ "resolved_transcript": {
34
+ "id": "snapshot-fixture",
35
+ "version": null,
36
+ "release": null,
37
+ "genome_build": "GRCh38",
38
+ "species": null,
39
+ "biotype": null,
40
+ "topology": "linear"
41
+ },
42
+ "source": "synthetic",
43
+ "source_gene_id": null,
44
+ "source_gene_name": null,
45
+ "orf_type": null,
46
+ "coding_sequence": "ATGAAATAA",
47
+ "protein_sequence": "MK",
48
+ "translation_table": 1,
49
+ "coding_phase": 0,
50
+ "coding_origin": 0,
51
+ "start": 0,
52
+ "end": 9,
53
+ "segments": [
54
+ [
55
+ 0,
56
+ 9
57
+ ]
58
+ ],
59
+ "cdna_interval": [
60
+ 0,
61
+ 9
62
+ ],
63
+ "coding_blocks": [],
64
+ "start_complete": true,
65
+ "stop_complete": true,
66
+ "start_codon": "ATG",
67
+ "stop_codon": "TAA",
68
+ "decoded_stop_codons": [],
69
+ "subcodon_introns": [],
70
+ "coordinates": "0-based-half-open-cdna;1-based-inclusive-genome"
71
+ }
@@ -0,0 +1,128 @@
1
+ """Carrier loci survive export; synthetic mappings are not biological observations."""
2
+
3
+ import json
4
+ from pathlib import Path
5
+
6
+ import pytest
7
+ from test_orf_cases import genome as genome
8
+
9
+ from orfdata import ORFModel, ORFRecord, ReferenceContext, SourceRNA, TranscriptORF
10
+
11
+
12
+ class Carrier:
13
+ """A second RNA with the same pinned sequence/path and a contig alias."""
14
+
15
+ def __init__(self, transcript):
16
+ self.original = transcript
17
+ self.id = "carrier-" + transcript.id
18
+ self.versioned_id = self.id + "." + str(transcript.version)
19
+ self.contig = "chr" + transcript.contig
20
+ self.gene_id = "carrier-gene"
21
+ self.gene_name = "CARRIER"
22
+
23
+ def __getattr__(self, name):
24
+ return getattr(self.original, name)
25
+
26
+
27
+ @pytest.fixture(params=("ENST00000644866", "ENST00000395826"), ids=("plus", "minus"))
28
+ def placement(request, genome):
29
+ transcript = genome.transcript_by_id(request.param)
30
+ annotated = TranscriptORF.from_annotation(transcript)
31
+ record = ORFRecord.from_model(ORFModel(
32
+ "synthetic-record", transcript.id, transcript.gene_id, transcript.gene_name,
33
+ transcript.contig, transcript.strand, annotated.coding_blocks,
34
+ annotated.protein_sequence, "synthetic", "GRCh38", 9606, "homo_sapiens",
35
+ source="synthetic"))
36
+ return transcript, annotated, record
37
+
38
+
39
+ @pytest.mark.parametrize("route", ("at", "annotated", "mapped_annotation", "record", "mapped_record"))
40
+ def test_every_constructor_exports_the_actual_carrier_locus(placement, route):
41
+ transcript, annotated, record = placement
42
+ carrier = Carrier(transcript) if route.startswith("mapped_") else transcript
43
+ if route == "at":
44
+ orf = TranscriptORF.at(carrier, annotated.start, orf_id="synthetic-at",
45
+ source="synthetic", protein=annotated.protein_sequence)
46
+ elif route in ("annotated", "mapped_annotation"):
47
+ orf = TranscriptORF.from_annotation(transcript, on=carrier)
48
+ else:
49
+ orf = TranscriptORF(record, carrier, any_transcript=route == "mapped_record")
50
+ snapshot = json.loads(json.dumps(orf.to_dict()))
51
+ resolved = snapshot["resolved_transcript"]
52
+ assert resolved["id"] == carrier.id
53
+ assert resolved["contig"] == carrier.contig
54
+ assert resolved["strand"] == carrier.strand
55
+ if route.startswith("mapped_"):
56
+ assert not snapshot["on_source_transcript"]
57
+ assert snapshot["source_transcript_id"] != resolved["id"]
58
+ if route == "mapped_record":
59
+ assert snapshot["model"]["contig"] != resolved["contig"]
60
+ if route in ("at", "annotated", "mapped_annotation"):
61
+ assert snapshot["model"] is None and snapshot["record"] is None
62
+ restored = TranscriptORF.from_dict(snapshot, carrier)
63
+ assert json.loads(json.dumps(restored.to_dict())) == snapshot
64
+ # Earlier v1 exports omitted both fields for every construction path.
65
+ legacy = json.loads(json.dumps(snapshot))
66
+ del legacy["resolved_transcript"]["strand"]
67
+ del legacy["resolved_transcript"]["contig"]
68
+ assert TranscriptORF.from_dict(legacy, carrier).to_dict() == orf.to_dict()
69
+ assert "strand" not in legacy["resolved_transcript"] # Replay does not rewrite its input.
70
+
71
+
72
+ def source_rna(**locus):
73
+ return SourceRNA("snapshot-fixture", "ATGAAATAA",
74
+ ReferenceContext(9606, "human", "GRCh38", "synthetic", "1"),
75
+ "synthetic", **locus)
76
+
77
+
78
+ @pytest.mark.parametrize("strand", (None, "+", "-"))
79
+ def test_source_rna_locus_is_explicit_even_when_unknown(strand):
80
+ locus = {} if strand is None else dict(contig="2", strand=strand, exons=((100, 108),))
81
+ rna = source_rna(**locus)
82
+ orf = TranscriptORF.at(rna, 0, orf_id="source-rna", source="synthetic")
83
+ snapshot = json.loads(json.dumps(orf.to_dict()))
84
+ assert snapshot["resolved_transcript"]["strand"] == strand
85
+ assert snapshot["resolved_transcript"]["contig"] == (None if strand is None else "2")
86
+ assert TranscriptORF.from_dict(snapshot, rna).to_dict() == orf.to_dict()
87
+
88
+
89
+ @pytest.mark.parametrize("field,wrong", (("strand", "-"), ("strand", None),
90
+ ("contig", "other"), ("contig", None)))
91
+ @pytest.mark.parametrize("legacy_other_field", (False, True))
92
+ def test_conflicting_carrier_locus_is_rejected_before_reading_sequence(field, wrong, legacy_other_field):
93
+ rna = source_rna(contig="2", strand="+", exons=((100, 108),))
94
+ snapshot = TranscriptORF.at(rna, 0, orf_id="source-rna", source="synthetic").to_dict()
95
+ snapshot["resolved_transcript"][field] = wrong
96
+ if legacy_other_field:
97
+ del snapshot["resolved_transcript"]["contig" if field == "strand" else "strand"]
98
+
99
+ class UnavailableSequence:
100
+ def __getattr__(self, name):
101
+ if name == "sequence":
102
+ pytest.fail("A contradictory carrier locus must fail before reading RNA bases")
103
+ return getattr(rna, name)
104
+
105
+ with pytest.raises(ValueError, match=f"carrier {field} mismatch"):
106
+ TranscriptORF.from_dict(snapshot, UnavailableSequence())
107
+
108
+
109
+ @pytest.mark.parametrize("field,wrong", (("strand", "+"), ("contig", "2")))
110
+ def test_snapshot_cannot_assign_a_locus_to_an_unmapped_source_rna(field, wrong):
111
+ rna = source_rna()
112
+ snapshot = TranscriptORF.at(rna, 0, orf_id="unmapped", source="synthetic").to_dict()
113
+ snapshot["resolved_transcript"][field] = wrong
114
+ with pytest.raises(ValueError, match=f"carrier {field} mismatch"):
115
+ TranscriptORF.from_dict(snapshot, rna)
116
+
117
+
118
+ def test_published_042_snapshot_remains_readable():
119
+ # Frozen using the published 0.42.0 wheel, before carrier locus fields existed.
120
+ path = Path(__file__).parent / "data/references/transcript_orf_v1_0.42.0.json"
121
+ snapshot = json.loads(path.read_text())
122
+ restored = TranscriptORF.from_dict(snapshot, source_rna())
123
+ assert restored.protein_sequence == "MK" and restored.record is None
124
+ assert restored.to_dict()["resolved_transcript"]["strand"] is None
125
+ assert restored.to_dict()["resolved_transcript"]["contig"] is None
126
+ snapshot["sequence_fingerprints"]["protein_sha256"] = "0" * 64
127
+ with pytest.raises(ValueError, match="does not round-trip"):
128
+ TranscriptORF.from_dict(snapshot, source_rna())
@@ -1 +0,0 @@
1
- __version__ = "0.42.0"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes