orfdata 0.35.0__tar.gz → 0.36.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 (333) hide show
  1. {orfdata-0.35.0/orfdata.egg-info → orfdata-0.36.0}/PKG-INFO +49 -8
  2. {orfdata-0.35.0 → orfdata-0.36.0}/README.md +43 -5
  3. orfdata-0.36.0/docs/downloads.md +257 -0
  4. orfdata-0.36.0/docs/downstream.md +168 -0
  5. {orfdata-0.35.0 → orfdata-0.36.0}/docs/index.md +13 -3
  6. {orfdata-0.35.0 → orfdata-0.36.0}/docs/proteome.md +147 -45
  7. orfdata-0.36.0/docs/viral.md +635 -0
  8. orfdata-0.36.0/lint.sh +3 -0
  9. {orfdata-0.35.0 → orfdata-0.36.0}/mkdocs.yml +2 -0
  10. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/__init__.py +43 -6
  11. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/cli.py +27 -6
  12. orfdata-0.36.0/orfdata/cli_output.py +48 -0
  13. orfdata-0.36.0/orfdata/data/viral/NOTICE.md +149 -0
  14. orfdata-0.36.0/orfdata/data/viral/gdc-grch38-d1-vd1-genbank.tsv +205 -0
  15. orfdata-0.36.0/orfdata/data/viral/gdc-grch38-d1-vd1-pave.tsv +195 -0
  16. orfdata-0.36.0/orfdata/data/viral/subsets.yaml +113 -0
  17. orfdata-0.36.0/orfdata/download_cli.py +271 -0
  18. orfdata-0.36.0/orfdata/downloads.py +330 -0
  19. orfdata-0.36.0/orfdata/fasta.py +11 -0
  20. orfdata-0.36.0/orfdata/genbank.py +254 -0
  21. orfdata-0.36.0/orfdata/gtf.py +121 -0
  22. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/install.py +56 -9
  23. orfdata-0.36.0/orfdata/net.py +51 -0
  24. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/proteome.py +581 -183
  25. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/proteome_cli.py +6 -0
  26. orfdata-0.36.0/orfdata/record_sources.py +298 -0
  27. orfdata-0.36.0/orfdata/reference_ledger.py +204 -0
  28. orfdata-0.36.0/orfdata/reference_table.py +118 -0
  29. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/refseq.py +2 -2
  30. orfdata-0.36.0/orfdata/version.py +1 -0
  31. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/viral.py +2 -4
  32. orfdata-0.36.0/orfdata/viral_annotation.py +453 -0
  33. orfdata-0.36.0/orfdata/viral_cli.py +232 -0
  34. orfdata-0.36.0/orfdata/viral_coverage.py +210 -0
  35. orfdata-0.36.0/orfdata/viral_panel.py +1219 -0
  36. orfdata-0.36.0/orfdata/viral_registry.py +292 -0
  37. orfdata-0.36.0/orfdata/viral_subsets.py +101 -0
  38. {orfdata-0.35.0 → orfdata-0.36.0/orfdata.egg-info}/PKG-INFO +49 -8
  39. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/SOURCES.txt +40 -1
  40. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/requires.txt +6 -2
  41. {orfdata-0.35.0 → orfdata-0.36.0}/pyproject.toml +9 -3
  42. orfdata-0.36.0/tests/conftest.py +210 -0
  43. orfdata-0.36.0/tests/data/viral/genbank/HBV__X04615.1.gb.gz +0 -0
  44. orfdata-0.36.0/tests/data/viral/genbank/HPV16__K02718.1.gb.gz +0 -0
  45. orfdata-0.36.0/tests/data/viral/genbank/HPV35__X74477.1.gb.gz +0 -0
  46. orfdata-0.36.0/tests/data/viral/genbank/HPV51__M62877.1.gb.gz +0 -0
  47. orfdata-0.36.0/tests/data/viral/genbank/HPV56__X74483.1.gb.gz +0 -0
  48. orfdata-0.36.0/tests/test_downloads.py +173 -0
  49. orfdata-0.36.0/tests/test_genbank.py +162 -0
  50. orfdata-0.36.0/tests/test_genbank_equivalence.py +110 -0
  51. orfdata-0.36.0/tests/test_orf_gtf.py +145 -0
  52. orfdata-0.36.0/tests/test_protein_set.py +126 -0
  53. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome.py +42 -32
  54. orfdata-0.36.0/tests/test_proteome_external.py +265 -0
  55. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome_fasta_tokens.py +66 -14
  56. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_proteome_producer_graph.py +19 -19
  57. orfdata-0.36.0/tests/test_reference_ledger.py +184 -0
  58. orfdata-0.36.0/tests/test_reference_table.py +94 -0
  59. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_refseq.py +3 -3
  60. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_viral.py +22 -12
  61. orfdata-0.36.0/tests/test_viral_bundle.py +228 -0
  62. orfdata-0.36.0/tests/test_viral_cli.py +156 -0
  63. orfdata-0.36.0/tests/test_viral_collections.py +132 -0
  64. orfdata-0.36.0/tests/test_viral_completeness.py +128 -0
  65. orfdata-0.36.0/tests/test_viral_coverage.py +116 -0
  66. orfdata-0.36.0/tests/test_viral_initiation.py +142 -0
  67. orfdata-0.36.0/tests/test_viral_origin_join.py +109 -0
  68. orfdata-0.36.0/tests/test_viral_sources.py +183 -0
  69. orfdata-0.36.0/tests/test_viral_subsets.py +51 -0
  70. {orfdata-0.35.0 → orfdata-0.36.0}/tools/build_gdc_viral_coverage.py +20 -22
  71. {orfdata-0.35.0 → orfdata-0.36.0}/tools/build_hpv16_cds.py +19 -17
  72. orfdata-0.36.0/tools/build_reference_ledger.py +73 -0
  73. orfdata-0.35.0/docs/viral.md +0 -154
  74. orfdata-0.35.0/lint.sh +0 -3
  75. orfdata-0.35.0/orfdata/data/viral/NOTICE.md +0 -59
  76. orfdata-0.35.0/orfdata/version.py +0 -1
  77. orfdata-0.35.0/orfdata/viral_cli.py +0 -70
  78. orfdata-0.35.0/orfdata/viral_coverage.py +0 -114
  79. orfdata-0.35.0/tests/conftest.py +0 -51
  80. orfdata-0.35.0/tests/test_proteome_external.py +0 -133
  81. orfdata-0.35.0/tests/test_viral_cli.py +0 -49
  82. orfdata-0.35.0/tests/test_viral_coverage.py +0 -91
  83. {orfdata-0.35.0 → orfdata-0.36.0}/LICENSE +0 -0
  84. {orfdata-0.35.0 → orfdata-0.36.0}/MANIFEST.in +0 -0
  85. {orfdata-0.35.0 → orfdata-0.36.0}/deploy.sh +0 -0
  86. {orfdata-0.35.0 → orfdata-0.36.0}/docs/catalogs.md +0 -0
  87. {orfdata-0.35.0 → orfdata-0.36.0}/docs/copy-yeast.md +0 -0
  88. {orfdata-0.35.0 → orfdata-0.36.0}/docs/coverage.md +0 -0
  89. {orfdata-0.35.0 → orfdata-0.36.0}/docs/dog-peptides.md +0 -0
  90. {orfdata-0.35.0 → orfdata-0.36.0}/docs/examples.md +0 -0
  91. {orfdata-0.35.0 → orfdata-0.36.0}/docs/human-tissue.md +0 -0
  92. {orfdata-0.35.0 → orfdata-0.36.0}/docs/ingolia-yeast.md +0 -0
  93. {orfdata-0.35.0 → orfdata-0.36.0}/docs/measurements.md +0 -0
  94. {orfdata-0.35.0 → orfdata-0.36.0}/docs/pairing.md +0 -0
  95. {orfdata-0.35.0 → orfdata-0.36.0}/docs/pfizer-protein.md +0 -0
  96. {orfdata-0.35.0 → orfdata-0.36.0}/docs/pfizer-rna.md +0 -0
  97. {orfdata-0.35.0 → orfdata-0.36.0}/docs/reference.md +0 -0
  98. {orfdata-0.35.0 → orfdata-0.36.0}/docs/search-references.md +0 -0
  99. {orfdata-0.35.0 → orfdata-0.36.0}/docs/source-references.md +0 -0
  100. {orfdata-0.35.0 → orfdata-0.36.0}/docs/species.md +0 -0
  101. {orfdata-0.35.0 → orfdata-0.36.0}/docs/storage.md +0 -0
  102. {orfdata-0.35.0 → orfdata-0.36.0}/docs/stylesheets/docs.css +0 -0
  103. {orfdata-0.35.0 → orfdata-0.36.0}/docs.sh +0 -0
  104. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/_pinned_genome.py +0 -0
  105. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/_structure.py +0 -0
  106. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/build.py +0 -0
  107. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog.py +0 -0
  108. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog_cli.py +0 -0
  109. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalog_manifest.py +0 -0
  110. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/catalogs.py +0 -0
  111. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/catalogs.json +0 -0
  112. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/chains.json +0 -0
  113. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/datasets.json +0 -0
  114. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/genomes.json +0 -0
  115. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/ires/rfam-15.1-human-ires.json +0 -0
  116. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/AUTHOR-LICENSE.txt +0 -0
  117. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/NOTICE.txt +0 -0
  118. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/catalog.json.gz +0 -0
  119. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/orf-evidence/manifest.json +0 -0
  120. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/AUTHOR-LICENSE.txt +0 -0
  121. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/NOTICE.txt +0 -0
  122. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/catalog.json.gz +0 -0
  123. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/uorf-evidence/manifest.json +0 -0
  124. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/viral/gdc-grch38-d1-vd1-coverage.tsv +0 -0
  125. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/data/viral/hpv16-refseq-CDS.json.gz +0 -0
  126. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/dataset.py +0 -0
  127. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/dataset_cli.py +0 -0
  128. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/datasets.py +0 -0
  129. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/evidence.py +0 -0
  130. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/evidence_summary.py +0 -0
  131. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/genomes.py +0 -0
  132. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/genomes_cli.py +0 -0
  133. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/initiation_context.py +0 -0
  134. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/liftover.py +0 -0
  135. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/liftover_cli.py +0 -0
  136. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/measurements.py +0 -0
  137. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/model.py +0 -0
  138. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/pairing.py +0 -0
  139. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/reference.py +0 -0
  140. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/reference_mapping.py +0 -0
  141. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/rna.py +0 -0
  142. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/search_reference.py +0 -0
  143. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sequence.py +0 -0
  144. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/__init__.py +0 -0
  145. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/copy.py +0 -0
  146. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/ingolia.py +0 -0
  147. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/kaabinejadian.py +0 -0
  148. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/ncorf_mammals.py +0 -0
  149. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/openprot.py +0 -0
  150. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/peptideatlas.py +0 -0
  151. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/pfizer.py +0 -0
  152. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/pfizer_rna.py +0 -0
  153. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/riborf.py +0 -0
  154. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata/sources/wang.py +0 -0
  155. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/dependency_links.txt +0 -0
  156. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/entry_points.txt +0 -0
  157. {orfdata-0.35.0 → orfdata-0.36.0}/orfdata.egg-info/top_level.txt +0 -0
  158. {orfdata-0.35.0 → orfdata-0.36.0}/setup.cfg +0 -0
  159. {orfdata-0.35.0 → orfdata-0.36.0}/test.sh +0 -0
  160. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/aggregate_evidence.json +0 -0
  161. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905474.soft +0 -0
  162. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905474_KL9_fpkm.txt.gz +0 -0
  163. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905476.soft +0 -0
  164. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905476_KL10_fpkm.txt.gz +0 -0
  165. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905478.soft +0 -0
  166. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905478_KL11_fpkm.txt.gz +0 -0
  167. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905479.soft +0 -0
  168. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/GSM1905479_KL12_fpkm.txt.gz +0 -0
  169. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/NOTICE.md +0 -0
  170. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/expected.json +0 -0
  171. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/geo-series.soft +0 -0
  172. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/manifest.json +0 -0
  173. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/methods.pdf +0 -0
  174. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/paper.xml +0 -0
  175. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/pmc-metadata.json +0 -0
  176. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/qconcat.fasta +0 -0
  177. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/copy/workbook.xlsx +0 -0
  178. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346111.metadata.txt +0 -0
  179. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346111.quant.txt.gz +0 -0
  180. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346114.metadata.txt +0 -0
  181. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346114.quant.txt.gz +0 -0
  182. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346115.metadata.txt +0 -0
  183. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346115.quant.txt.gz +0 -0
  184. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346116.metadata.txt +0 -0
  185. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346116.quant.txt.gz +0 -0
  186. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346117.metadata.txt +0 -0
  187. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346117.quant.txt.gz +0 -0
  188. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346118.metadata.txt +0 -0
  189. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346118.quant.txt.gz +0 -0
  190. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346120.metadata.txt +0 -0
  191. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346120.quant.txt.gz +0 -0
  192. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346122.metadata.txt +0 -0
  193. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/GSM346122.quant.txt.gz +0 -0
  194. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/NOTICE.md +0 -0
  195. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/expected.json +0 -0
  196. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/manifest.json +0 -0
  197. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ingolia/readMe.txt.gz +0 -0
  198. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/README.md +0 -0
  199. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/Results.zip +0 -0
  200. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/manifest-v1.json +0 -0
  201. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/manifest.json +0 -0
  202. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/kaabinejadian/sdrf.tsv +0 -0
  203. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/README.md +0 -0
  204. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/S3.xlsx +0 -0
  205. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/ensembl107.cdna.fa.gz +0 -0
  206. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/ensembl107.gtf.gz +0 -0
  207. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human-ensembl107.gtf.gz +0 -0
  208. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human.bed +0 -0
  209. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/human.pep.fa +0 -0
  210. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/mouse.bed +0 -0
  211. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/ncorf_mammals/mouse.pep.fa +0 -0
  212. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/README.md +0 -0
  213. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/ensembl106.cdna.fa.gz +0 -0
  214. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/ensembl106.gtf.gz +0 -0
  215. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.bed.zip +0 -0
  216. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.fasta.zip +0 -0
  217. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/openprot/mouse-openprot-2_2-altprots+isoforms-min_2_pep-GRCm39.106.tsv.zip +0 -0
  218. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/README.md +0 -0
  219. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/atlas_build.tsv.zip +0 -0
  220. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/ensembl.pep.fa.gz +0 -0
  221. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/peptideatlas/manifest.json +0 -0
  222. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/NOTICE.md +0 -0
  223. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/expected.json +0 -0
  224. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/manifest.json +0 -0
  225. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/protein.tsv +0 -0
  226. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/dog/search.fasta +0 -0
  227. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/expected.json +0 -0
  228. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/manifest.json +0 -0
  229. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/protein.tsv +0 -0
  230. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/human/search.fasta +0 -0
  231. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/expected.json +0 -0
  232. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/manifest.json +0 -0
  233. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/protein.tsv +0 -0
  234. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer/mouse/search.fasta +0 -0
  235. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325522_family.soft.gz +0 -0
  236. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325523_family.soft.gz +0 -0
  237. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/GSE325525_family.soft.gz +0 -0
  238. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/NOTICE.md +0 -0
  239. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/counts.csv.gz +0 -0
  240. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-annotation.gtf.gz +0 -0
  241. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-expected.json +0 -0
  242. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/dog-manifest.json +0 -0
  243. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-annotation.gtf.gz +0 -0
  244. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-expected.json +0 -0
  245. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/mouse-manifest.json +0 -0
  246. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/pfizer_rna/samples.xlsx +0 -0
  247. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/README.md +0 -0
  248. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/canis_lupus_familiaris.json +0 -0
  249. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/context-keys-v0.4.json +0 -0
  250. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/ensembl115.json +0 -0
  251. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/homo_sapiens.json +0 -0
  252. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/mitochondrial.json +0 -0
  253. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/mus_musculus.json +0 -0
  254. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/saccharomyces_cerevisiae.json +0 -0
  255. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/references/uniprot_literature.json +0 -0
  256. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/regions/NOTICE.md +0 -0
  257. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/regions/ingolia.json +0 -0
  258. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/README.md +0 -0
  259. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/SD3.xlsx +0 -0
  260. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.cdna.fa.gz +0 -0
  261. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.gtf.gz +0 -0
  262. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/ensembl107.ncrna.fa.gz +0 -0
  263. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.cdna.fa.gz +0 -0
  264. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.gtf.gz +0 -0
  265. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/human-ensembl105.ncrna.fa.gz +0 -0
  266. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.cdna.fa.gz +0 -0
  267. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.gtf.gz +0 -0
  268. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/worm-ensembl105.ncrna.fa.gz +0 -0
  269. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.cdna.fa.gz +0 -0
  270. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.dna.fa.gz +0 -0
  271. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/yeast-ensembl115.gtf.gz +0 -0
  272. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.cdna.fa.gz +0 -0
  273. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.gtf.gz +0 -0
  274. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/riborf/zebrafish-ensembl115.ncrna.fa.gz +0 -0
  275. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/NOTICE.md +0 -0
  276. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/dog.fasta +0 -0
  277. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/ensembl83-expected.json +0 -0
  278. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/ensembl83-human.fasta.gz +0 -0
  279. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/search_reference/expected.json +0 -0
  280. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/README.md +0 -0
  281. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/generate.py +0 -0
  282. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v1.json +0 -0
  283. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v1.sqlite +0 -0
  284. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v2.json +0 -0
  285. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v2.sqlite +0 -0
  286. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v3.json +0 -0
  287. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v3.sqlite +0 -0
  288. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v4.json +0 -0
  289. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/storage/v4.sqlite +0 -0
  290. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/viral/GRCh83.d1.vd1_virus_decoy.txt.gz +0 -0
  291. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/viral/NC_001526.4.gb.gz +0 -0
  292. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/NOTICE.md +0 -0
  293. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/annotation.gtf.gz +0 -0
  294. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/copies.zip +0 -0
  295. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/expected.json +0 -0
  296. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/manifest.json +0 -0
  297. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/protein.zip +0 -0
  298. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/rna.zip +0 -0
  299. {orfdata-0.35.0 → orfdata-0.36.0}/tests/data/wang/search.fasta.gz +0 -0
  300. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_catalog_registry.py +0 -0
  301. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_copy.py +0 -0
  302. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_cross_reference_pairing.py +0 -0
  303. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_dog_peptides.py +0 -0
  304. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ensembl_search_reference.py +0 -0
  305. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_evidence_rules.py +0 -0
  306. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_evidence_summary.py +0 -0
  307. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_genetic_codes.py +0 -0
  308. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_genomes.py +0 -0
  309. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ingolia.py +0 -0
  310. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_initiation_context.py +0 -0
  311. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_liftover.py +0 -0
  312. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_local_build_queries.py +0 -0
  313. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_measurements.py +0 -0
  314. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_merge_catalogs.py +0 -0
  315. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_more_species.py +0 -0
  316. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_ncorf_mammals.py +0 -0
  317. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_openprot.py +0 -0
  318. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_orf_cases.py +0 -0
  319. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_paired_selectors.py +0 -0
  320. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pairing.py +0 -0
  321. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pfizer.py +0 -0
  322. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_pfizer_rna.py +0 -0
  323. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_context.py +0 -0
  324. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_mapping.py +0 -0
  325. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_reference_orf.py +0 -0
  326. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_region_targets.py +0 -0
  327. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_riborf.py +0 -0
  328. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_search_reference.py +0 -0
  329. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_selectors.py +0 -0
  330. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_storage.py +0 -0
  331. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_uorf_catalog.py +0 -0
  332. {orfdata-0.35.0 → orfdata-0.36.0}/tests/test_wang.py +0 -0
  333. {orfdata-0.35.0 → orfdata-0.36.0}/tools/__init__.py +0 -0
@@ -1,17 +1,20 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orfdata
3
- Version: 0.35.0
3
+ Version: 0.36.0
4
4
  Summary: Reference proteomes with evidence-backed noncanonical ORFs on PyEnsembl genomes
5
5
  Author: OpenVax
6
6
  License-Expression: Apache-2.0
7
7
  Requires-Python: >=3.11
8
8
  Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
+ Requires-Dist: datacache<2,>=1.25.1
11
+ Requires-Dist: pandas<4,>=3
12
+ Requires-Dist: pyyaml<7,>=6
10
13
  Provides-Extra: pyensembl
11
14
  Requires-Dist: pyensembl>=2.27.2; extra == "pyensembl"
12
15
  Provides-Extra: build-data
13
16
  Requires-Dist: openpyxl>=3.1; extra == "build-data"
14
- Requires-Dist: biopython<2,>=1.80; extra == "build-data"
17
+ Provides-Extra: viral
15
18
  Provides-Extra: data
16
19
  Requires-Dist: datacache<2,>=1.25.1; extra == "data"
17
20
  Provides-Extra: columnar
@@ -22,9 +25,9 @@ Requires-Dist: ruff; extra == "dev"
22
25
  Requires-Dist: build; extra == "dev"
23
26
  Requires-Dist: twine; extra == "dev"
24
27
  Requires-Dist: openpyxl>=3.1; extra == "dev"
25
- Requires-Dist: biopython<2,>=1.80; extra == "dev"
26
28
  Requires-Dist: pyensembl>=2.27.2; extra == "dev"
27
29
  Requires-Dist: datacache<2,>=1.25.1; extra == "dev"
30
+ Requires-Dist: gb-io<0.5,>=0.4; extra == "dev"
28
31
  Provides-Extra: docs
29
32
  Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
30
33
  Requires-Dist: mkdocs-material<10,>=9.5; extra == "docs"
@@ -48,12 +51,37 @@ evidence.
48
51
  Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
49
52
 
50
53
  ```sh
51
- python -m pip install 'orfdata[pyensembl,data,build-data]'
54
+ python -m pip install 'orfdata[pyensembl,build-data]'
52
55
  pyensembl install --release 115 --species human
53
56
  # For the ncORF evidence presets and "all":
54
57
  orfdata setup --species human --catalogs all
55
58
  ```
56
59
 
60
+ List every bundled, downloadable or buildable resource and what is installed:
61
+
62
+ ```sh
63
+ orfdata download list
64
+ orfdata download status
65
+ ```
66
+
67
+ `orfdata setup --species human` also installs `gdc-viruses`, the default
68
+ 200-reference GDC viral screen for human transcriptome analysis;
69
+ `--collections none` skips it. Viral support is part of the base install, and
70
+ only the data is downloaded. To acquire only the viral references:
71
+
72
+ ```sh
73
+ orfdata download viral --species human
74
+ orfdata viral summary
75
+ ```
76
+
77
+ Each viral collection keeps three layers apart — the viral genomes, one coding
78
+ transcript per source CDS feature with a GTF placing it on them, and the
79
+ proteins those transcripts encode. Because the three share identifiers, the set
80
+ opens as a PyEnsembl genome, so varcode, isovar, topiary and vaxrank can
81
+ annotate variants on viral contigs. `orfdata proteome --annotation DIR` writes
82
+ the same three files for noncanonical ORFs. See
83
+ [Downstream tools](https://openvax.github.io/orfdata/downstream/).
84
+
57
85
  ## Example
58
86
 
59
87
  ```python
@@ -140,6 +168,13 @@ amino acids, parent protein accession, sample, change IDs and source before
140
168
  `combined.with_derived_proteins(...)` adds them. These sequences are not
141
169
  inferred from variants or included in the reference proteome by default.
142
170
 
171
+ For a named, checksummed sequence input with no genomic placement, use the
172
+ general `ProteinSet`. `with_protein_set(...)` records a donor, transgene or
173
+ other selected component; `with_viral(...)` uses the same input plus a sourced
174
+ host association. ncORF sources with transcript coordinates and evidence stay
175
+ as `ORFCatalog` records and produce the same `ProteinSequence` output when
176
+ bound to a reference.
177
+
143
178
  ```sh
144
179
  orfdata proteome --species human --release 115 --nc-orf-sources all --viral all --output human-all-proteins.fasta
145
180
  ```
@@ -159,10 +194,14 @@ packaged bases and coding paths. The functional loaders remain available.
159
194
  When annotating an existing alignment, `viral_orfs(reference_dna,
160
195
  contig="HPV16")` checks its actual reference sequence before applying the same
161
196
  models.
162
- The first [coding reference](https://openvax.github.io/orfdata/viral/) contains
163
- the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC placements;
164
- the host association is distinct from the virus's own taxon. Broader
165
- imports remain in [the viral roadmap](https://github.com/openvax/orfdata/issues/91).
197
+ The curated [coding reference](https://openvax.github.io/orfdata/viral/)
198
+ contains the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
199
+ placements; the host association is distinct from the virus's own taxon. The
200
+ separate `gdc-viruses` source bundle contains all 200 GDC source genomes and
201
+ their annotated CDS/protein FASTAs for human analysis. It does not assert a
202
+ human source host for every virus; source-host metadata remains separate.
203
+ Promoting further source records into the curated
204
+ `ViralReference` API remains in the [viral roadmap](https://github.com/openvax/orfdata/issues/91).
166
205
 
167
206
  ## Measurement datasets
168
207
 
@@ -194,6 +233,8 @@ The [documentation](https://openvax.github.io/orfdata/) covers:
194
233
 
195
234
  | Task | Guide |
196
235
  | --- | --- |
236
+ | Discover, inspect and download data | [Discover and download data](https://openvax.github.io/orfdata/downloads/) |
237
+ | Use ORFs and viral references with varcode, isovar, topiary and vaxrank | [Downstream tools](https://openvax.github.io/orfdata/downstream/) |
197
238
  | Build a proteome: evidence levels, exclusions, contigs, viral proteins | [Build a reference proteome](https://openvax.github.io/orfdata/proteome/) |
198
239
  | ORF classes, evidence definitions, Varcode and Isovar integration | [ORFs and evidence](https://openvax.github.io/orfdata/reference/) |
199
240
  | Species and reference identity, mitochondrial genetic codes | [Species, references and genetic codes](https://openvax.github.io/orfdata/species/) |
@@ -16,12 +16,37 @@ evidence.
16
16
  Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
17
17
 
18
18
  ```sh
19
- python -m pip install 'orfdata[pyensembl,data,build-data]'
19
+ python -m pip install 'orfdata[pyensembl,build-data]'
20
20
  pyensembl install --release 115 --species human
21
21
  # For the ncORF evidence presets and "all":
22
22
  orfdata setup --species human --catalogs all
23
23
  ```
24
24
 
25
+ List every bundled, downloadable or buildable resource and what is installed:
26
+
27
+ ```sh
28
+ orfdata download list
29
+ orfdata download status
30
+ ```
31
+
32
+ `orfdata setup --species human` also installs `gdc-viruses`, the default
33
+ 200-reference GDC viral screen for human transcriptome analysis;
34
+ `--collections none` skips it. Viral support is part of the base install, and
35
+ only the data is downloaded. To acquire only the viral references:
36
+
37
+ ```sh
38
+ orfdata download viral --species human
39
+ orfdata viral summary
40
+ ```
41
+
42
+ Each viral collection keeps three layers apart — the viral genomes, one coding
43
+ transcript per source CDS feature with a GTF placing it on them, and the
44
+ proteins those transcripts encode. Because the three share identifiers, the set
45
+ opens as a PyEnsembl genome, so varcode, isovar, topiary and vaxrank can
46
+ annotate variants on viral contigs. `orfdata proteome --annotation DIR` writes
47
+ the same three files for noncanonical ORFs. See
48
+ [Downstream tools](https://openvax.github.io/orfdata/downstream/).
49
+
25
50
  ## Example
26
51
 
27
52
  ```python
@@ -108,6 +133,13 @@ amino acids, parent protein accession, sample, change IDs and source before
108
133
  `combined.with_derived_proteins(...)` adds them. These sequences are not
109
134
  inferred from variants or included in the reference proteome by default.
110
135
 
136
+ For a named, checksummed sequence input with no genomic placement, use the
137
+ general `ProteinSet`. `with_protein_set(...)` records a donor, transgene or
138
+ other selected component; `with_viral(...)` uses the same input plus a sourced
139
+ host association. ncORF sources with transcript coordinates and evidence stay
140
+ as `ORFCatalog` records and produce the same `ProteinSequence` output when
141
+ bound to a reference.
142
+
111
143
  ```sh
112
144
  orfdata proteome --species human --release 115 --nc-orf-sources all --viral all --output human-all-proteins.fasta
113
145
  ```
@@ -127,10 +159,14 @@ packaged bases and coding paths. The functional loaders remain available.
127
159
  When annotating an existing alignment, `viral_orfs(reference_dna,
128
160
  contig="HPV16")` checks its actual reference sequence before applying the same
129
161
  models.
130
- The first [coding reference](https://openvax.github.io/orfdata/viral/) contains
131
- the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC placements;
132
- the host association is distinct from the virus's own taxon. Broader
133
- imports remain in [the viral roadmap](https://github.com/openvax/orfdata/issues/91).
162
+ The curated [coding reference](https://openvax.github.io/orfdata/viral/)
163
+ contains the nine RefSeq NC_001526.4 HPV16 CDSs, with native and GDC
164
+ placements; the host association is distinct from the virus's own taxon. The
165
+ separate `gdc-viruses` source bundle contains all 200 GDC source genomes and
166
+ their annotated CDS/protein FASTAs for human analysis. It does not assert a
167
+ human source host for every virus; source-host metadata remains separate.
168
+ Promoting further source records into the curated
169
+ `ViralReference` API remains in the [viral roadmap](https://github.com/openvax/orfdata/issues/91).
134
170
 
135
171
  ## Measurement datasets
136
172
 
@@ -162,6 +198,8 @@ The [documentation](https://openvax.github.io/orfdata/) covers:
162
198
 
163
199
  | Task | Guide |
164
200
  | --- | --- |
201
+ | Discover, inspect and download data | [Discover and download data](https://openvax.github.io/orfdata/downloads/) |
202
+ | Use ORFs and viral references with varcode, isovar, topiary and vaxrank | [Downstream tools](https://openvax.github.io/orfdata/downstream/) |
165
203
  | Build a proteome: evidence levels, exclusions, contigs, viral proteins | [Build a reference proteome](https://openvax.github.io/orfdata/proteome/) |
166
204
  | ORF classes, evidence definitions, Varcode and Isovar integration | [ORFs and evidence](https://openvax.github.io/orfdata/reference/) |
167
205
  | Species and reference identity, mitochondrial genetic codes | [Species, references and genetic codes](https://openvax.github.io/orfdata/species/) |
@@ -0,0 +1,257 @@
1
+ # Discover and download data
2
+
3
+ ORFdata has one common entry point for data acquisition:
4
+
5
+ ```sh
6
+ orfdata download list
7
+ orfdata download status
8
+ orfdata download viral --species human
9
+ orfdata download catalog NAME
10
+ orfdata download dataset NAME
11
+ orfdata download reference DATASET
12
+ orfdata download genome NAME
13
+ orfdata download chains --species human
14
+ ```
15
+
16
+ The operation comes first so the same discovery and installation model applies
17
+ to every resource kind. `orfdata download viral` is therefore the primary
18
+ command. Focused command groups such as `orfdata viral coverage` and
19
+ `orfdata viral summary` remain useful for domain-specific inspection.
20
+
21
+ `list` shows every bundled, downloadable or locally buildable primary resource
22
+ and its current state, including native protein search references declared by
23
+ quantitative datasets. `status` shows resources already usable from local
24
+ files. Filter either command with `--kind` or `--species`; use `--installed` or
25
+ `--missing` with `list`, `--json` for programs, and `--verify` to hash installed
26
+ files. Discovery and status commands never acquire or repair data.
27
+
28
+ ```sh
29
+ orfdata download list --kind viral --species human
30
+ orfdata download list --missing
31
+ orfdata download status --json
32
+ ```
33
+
34
+ Catalogue and dataset releases that cannot be redistributed are built from
35
+ their pinned sources when selected through `orfdata download`. The listing's
36
+ `ACQUIRE` column says `download` or `build`. Existing focused commands such as
37
+ `orfdata catalogs download`, `orfdata datasets build`, `orfdata genomes
38
+ install`, and `orfdata chains download` remain available.
39
+
40
+ The same inventory is available from Python:
41
+
42
+ ```python
43
+ from orfdata import DataStatus, list_data
44
+
45
+ all_resources: tuple[DataStatus, ...] = list_data()
46
+ human_missing: tuple[DataStatus, ...] = list_data(species="human", installed=False)
47
+ installed: tuple[DataStatus, ...] = list_data(installed=True)
48
+ machine_record: dict[str, object] = all_resources[0].to_dict()
49
+ ```
50
+
51
+ Each `DataStatus` reports its kind, stable name and version, species,
52
+ nonexclusive analysis contexts, local status, acquisition method and equivalent
53
+ command, and resolved cache path. Status values follow DataCache: `available`,
54
+ `missing`, `corrupt`, or `inaccessible`. An unknown kind, species or context is
55
+ an error rather than an empty listing, so a typo never reads as "nothing is
56
+ available".
57
+
58
+ ## Viral collections and contexts
59
+
60
+ The Python API uses the same collection object for discovery, inventory reads,
61
+ source summaries, downloads and offline opens. The target species comes from the
62
+ collection; pass `species` only when you want an explicit consistency check.
63
+
64
+ ```python
65
+ from pandas import DataFrame
66
+
67
+ from orfdata import ViralCollection, viral_collection, viral_collections
68
+
69
+ human_collections: tuple[ViralCollection, ...] = viral_collections(species="human")
70
+ collection: ViralCollection = viral_collection("gdc-viruses")
71
+ assert viral_collection(collection.panel) is collection
72
+
73
+ inventory: DataFrame = collection.inventory()
74
+ genbank: DataFrame = collection.source_summary() # primary source
75
+ pave: DataFrame = collection.source_summary("pave") # another declared source
76
+ ```
77
+
78
+ Names, panel names and aliases resolve through `viral_collection()` everywhere.
79
+ An unknown species, collection or source is an error rather than an empty
80
+ result. A second species is another `ViralCollection` declaration with its own
81
+ checked inventory and source summaries; download code does not branch on the species.
82
+
83
+ The published viral collection currently has these properties:
84
+
85
+ | Property | Value | Meaning |
86
+ | --- | --- | --- |
87
+ | Species | `human` | Current target analysis species, NCBI taxon 9606 |
88
+ | Collection | `gdc-viruses` | Default 200-reference GDC viral screen for human analysis |
89
+ | Contexts | `cancer-transcriptome-screening` (`cancer`) | GDC human cancer-transcriptome screening context |
90
+
91
+ Run the default collection with:
92
+
93
+ ```sh
94
+ orfdata download viral --species human
95
+ ```
96
+
97
+ Viral support is part of a regular `pip install orfdata`; what needs acquiring
98
+ is the data. `orfdata setup --species human` installs this collection along
99
+ with the human catalogues and chains; `--collections none` sets up catalogues
100
+ and chains alone.
101
+
102
+ `--collection gdc-viruses` is the default and is available for explicit
103
+ configuration in scripts that will later choose among several collections. The
104
+ current collection is for human analysis. A future collection may target another
105
+ species. Target species does not assert a human source host for every virus.
106
+ Context is metadata rather than a sequence identity or a mutually exclusive
107
+ selector. CMV and EBV, for example, may be requested in both cancer and
108
+ autoimmune workflows. A future collection may carry several context tags, and
109
+ the same exact accession/version can belong to several collections without
110
+ becoming several biological references.
111
+
112
+ Pass `--context` to materialize a derived FASTA set from the shared source
113
+ collection. Repeated contexts select their union; `--context-match all` selects
114
+ their intersection. It reuses source records already downloaded for the
115
+ collection, so overlapping contexts do not create conflicting copies of a
116
+ reference.
117
+
118
+ ```sh
119
+ orfdata viral contexts
120
+ orfdata download viral --context cancer # all 200 GDC screening references
121
+ # Once another listed context is published, select its union or intersection:
122
+ orfdata download viral --context cancer-transcriptome-screening --context <another-listed-context>
123
+ orfdata download viral --context cancer-transcriptome-screening --context <another-listed-context> --context-match all
124
+ ```
125
+
126
+ The target species is an admission and organization choice for the reference
127
+ set. It does not replace a source record's viral taxon or assert that the source
128
+ declared a host. Unknown source-host metadata remains unknown.
129
+
130
+ The four facts stay separate in the downloaded tables and FASTA headers:
131
+ the versioned viral accession and CDS feature identify the source product;
132
+ collection and context record where it was selected; the target species records
133
+ the analysis it supports; and a source-host taxon is populated only when the
134
+ source establishes one. This keeps the same reference idempotent when it is
135
+ obtained through several collections or exporter paths.
136
+
137
+ The published GDC source inventory is named `GRCh38.d1.vd1`; `gdc-viruses` is
138
+ the ORFdata collection name for its 200 references for human analysis.
139
+
140
+ Use the full GDC collection for broad screening. For its three cancer
141
+ selections, list named subsets with `orfdata viral subsets`:
142
+
143
+ ```sh
144
+ orfdata download viral --subset cancer-integrated-driver
145
+ orfdata download viral --subset cancer-causing
146
+ orfdata download viral --subset cancer-associated
147
+ ```
148
+
149
+ `cancer-causing` is the 20-reference IARC Group 1 selection.
150
+ `cancer-associated` is its 37-reference Group 1, 2A and 2B superset.
151
+ `cancer-integrated-driver` contains the 12 Group 1 HPV types, HBV, HTLV-1 and
152
+ MCV. The remaining 163 GDC entries are 162 HPV references outside those IARC
153
+ tiers plus SV40; their absence from the cancer-associated set does not establish
154
+ that they are biologically irrelevant. IARC Group 3 means an agent is not
155
+ classifiable as to carcinogenicity in humans; it is not a safety finding. Future
156
+ respiratory and autoimmune contexts can overlap the GDC screening context.
157
+
158
+ ## Three layers, named separately
159
+
160
+ A downloaded collection keeps the molecular layers apart, and ORFdata uses the
161
+ same three words everywhere for them:
162
+
163
+ | Layer | Molecule | Files | What it is |
164
+ | --- | --- | --- | --- |
165
+ | `genome` | DNA | `genomes.fasta`, `genomes.tsv` | Viral genomic DNA: the same molecules a DNA reference such as `GRCh38.d1.vd1` carries as extra contigs |
166
+ | `transcriptome` | RNA | `transcripts.fasta`, `transcripts.tsv`, `annotation.gtf` | One coding transcript per source-annotated CDS feature, spliced, placed on the genome |
167
+ | `proteome` | protein | `proteins.fasta` | The source translation of each coding transcript |
168
+
169
+ A viral genome is not a transcript and a coding transcript is not a protein, so
170
+ nothing in the cache mixes them: each layer has its own FASTA, its own
171
+ identifiers and its own record count. Every transcript also records which
172
+ source annotated it, and which end, if either, that source marks as running
173
+ past the record.
174
+
175
+ ```python
176
+ from orfdata import open_viral_references
177
+
178
+ references = open_viral_references(species="human")
179
+ for layer in references.layers:
180
+ print(layer.name, layer.molecule, layer.records, layer.fasta)
181
+ transcriptome = references.layer("transcriptome")
182
+ print(transcriptome.annotation) # annotation.gtf
183
+ ```
184
+
185
+ Summarize an installed collection, or one selection of it, without writing
186
+ anything:
187
+
188
+ ```sh
189
+ orfdata viral summary
190
+ orfdata viral summary --subset cancer-causing --json
191
+ orfdata viral completeness --incomplete
192
+ ```
193
+
194
+ Because the GTF, transcript FASTA and protein FASTA share identifiers, the set
195
+ opens as a PyEnsembl genome for downstream variant tools — see
196
+ [Downstream tools](downstream.md).
197
+
198
+ ## Cache output
199
+
200
+ Downloads have a canonical, versioned path under `ORFDATA_CACHE`,
201
+ `OPENVAX_DATA_CACHE`, or the normal OpenVax cache. This is why the command does
202
+ not require `--output`: an arbitrary export path would also need to define
203
+ resource identity, update and verification behavior. Use `--cache-root` to put
204
+ the managed cache elsewhere. The command prints the installed paths; add
205
+ `--json` for structured output.
206
+
207
+ ## Python acquisition convention
208
+
209
+ ORFdata follows the OpenVax split between explicit acquisition and offline
210
+ lookup:
211
+
212
+ ```python
213
+ from orfdata import ViralReferenceFiles, download_viral_references, open_viral_references
214
+
215
+ download_viral_references(collection="gdc-viruses")
216
+ references: ViralReferenceFiles = open_viral_references(collection="gdc-viruses")
217
+ ```
218
+
219
+ The convenience form is explicit and opt-in:
220
+
221
+ ```python
222
+ references = open_viral_references(collection="gdc-viruses", download_if_missing=True)
223
+ ```
224
+
225
+ Context selection is a separate, type-stable API. It returns paths and counts
226
+ for a derived reference set; it uses the installed collection above and fetches it only
227
+ when requested:
228
+
229
+ ```python
230
+ from orfdata import select_viral_references
231
+
232
+ cancer = select_viral_references(
233
+ subsets=["cancer-causing"],
234
+ species="human",
235
+ download_if_missing=True,
236
+ )
237
+
238
+ integrated_drivers = select_viral_references(
239
+ subsets=["cancer-integrated-driver"],
240
+ download_if_missing=True,
241
+ )
242
+ ```
243
+
244
+ The default is `download_if_missing=False`, so opening or inspecting a resource
245
+ does not unexpectedly use the network. The name matches the lower-level
246
+ PyEnsembl/DataCache convention; high-level PyEnsembl and MHCflurry workflows
247
+ also expose explicit download or fetch commands.
248
+
249
+ Across ORFdata download APIs, repeated acquisition reuses a valid installation
250
+ and `force=True` refreshes or repairs it, status objects provide `to_dict()`,
251
+ human CLI output is the default, and `--json` provides machine-readable output.
252
+
253
+ A derived selection is local: `select_viral_references(force=True)` rebuilds it from
254
+ the cached collection without downloading, and a damaged selection is rebuilt rather
255
+ than reported, since nothing in it is unrecoverable. Adding
256
+ `download_if_missing=True` to that call lets it repair the source collection too,
257
+ which does download.
@@ -0,0 +1,168 @@
1
+ # Use ORFdata with varcode, isovar, topiary and vaxrank
2
+
3
+ Those tools read a [PyEnsembl](https://github.com/openvax/pyensembl) genome: a
4
+ GTF of transcript models, plus transcript and protein FASTAs whose identifiers
5
+ match the GTF. ORFdata writes exactly that for the two things a reference
6
+ annotation leaves out — noncanonical ORFs and viral references — so a variant
7
+ in either gets a coding consequence from the same tools that annotate reference
8
+ transcripts.
9
+
10
+ ## Three layers, three jobs
11
+
12
+ ORFdata keeps the molecular layers apart and names them the same way in every
13
+ command and API:
14
+
15
+ | Layer | Molecule | What it answers | Who reads it |
16
+ | --- | --- | --- | --- |
17
+ | `genome` | DNA | Where a read or a variant call sits | Aligners; the contigs a VCF names |
18
+ | `transcriptome` | RNA | What a variant does to a reading frame | varcode, isovar |
19
+ | `proteome` | protein | Which peptide a patient could present | topiary, vaxrank, MS search |
20
+
21
+ A DNA reference such as GDC's `GRCh38.d1.vd1` is the genome layer: human
22
+ chromosomes plus the viral sequences as extra contigs. It carries no transcript
23
+ models and no proteins, which is what the other two layers supply.
24
+
25
+ ## Viral transcripts in a tumour sample
26
+
27
+ Install the collection, or one cancer subset of it, and open it as a genome:
28
+
29
+ ```sh
30
+ orfdata download viral --species human --subset cancer-causing
31
+ orfdata viral summary --subset cancer-causing
32
+ ```
33
+
34
+ ```python
35
+ from varcode import Variant
36
+
37
+ from orfdata import select_viral_references, viral_genome
38
+
39
+ references = select_viral_references(
40
+ subsets=["cancer-causing"], species="human", download_if_missing=True
41
+ )
42
+ genome = viral_genome(references) # A PyEnsembl genome over the viral contigs.
43
+
44
+ variant = Variant(contig="AY446894.2", start=1500, ref="C", alt="T", genome=genome)
45
+ print(variant.effects().top_priority_effect().short_description)
46
+ ```
47
+
48
+ `viral_genome()` indexes the set's `annotation.gtf`, `transcripts.fasta` and
49
+ `proteins.fasta` into a PyEnsembl database kept beside the cache, never inside
50
+ the checksummed reference directory. The same object goes to isovar with the
51
+ tumour RNA alignment, and to topiary or vaxrank with an MHC predictor, wherever
52
+ those take a genome.
53
+
54
+ Four things are worth knowing before the first run:
55
+
56
+ - **Contig names are the source `accession.version`**, such as `AY446894.2`,
57
+ because that is the record the sequences and the annotation come from.
58
+ `genomes.tsv` keeps the inventory's `source_genbank` and `source_refseq`
59
+ spellings beside it, so you can map the names your alignment used.
60
+ - **A non-standard genetic code is carried**, as `transl_table` on the
61
+ transcript and CDS rows, so PyEnsembl translates with the code the source
62
+ record declares.
63
+ - **A partial or frameshifted source CDS gets no start or stop codon rows**, so
64
+ effect predictors will not translate it. `annotation_complete` says which
65
+ transcripts are whole and `partial` says which end the source marks as
66
+ running past the record: 78 of 1,703, mostly HPV E4 and E5 ORFs that are
67
+ really expressed from spliced transcripts, plus HIV-1's `pol`, which is a
68
+ Gag-Pol frameshift fusion. HPV16's E6, E7, E1, E2, L1 and L2 are complete,
69
+ and HBV's polymerase is joined back together across the circular origin, so
70
+ variants on either side of it get a coding consequence.
71
+ - **A coding transcript here is the CDS span**, not a UTR-containing mRNA. The
72
+ source records annotate 1,678 CDS features but only 39 `mRNA` features, so
73
+ the transcriptome layer is built from the CDS features and says so rather
74
+ than inventing transcript bounds.
75
+ - **Three source records annotate no CDS at all** — HPV2, HPV8 and HPV51 — so
76
+ their coding features come from PaVE instead, on the identical sequence, and
77
+ every transcript records which source annotated it. Use `--no-annotation-fill`
78
+ to keep strictly to the GenBank submissions; `orfdata viral summary` then
79
+ names the genomes that are left without transcripts. For the opposite
80
+ trade — one source's uniform, spliced gene models everywhere it publishes
81
+ the same molecule, in place of each submission's own naming — use
82
+ `--alternate-annotations`, which leaves the genome FASTA byte-identical and
83
+ adds 235 coding transcripts across the GDC collection. `orfdata viral
84
+ completeness` shows what either choice leaves on the table.
85
+ - A transcript's `initiation` says how the source starts it (`atg`,
86
+ `alternative`, `declared`, `non_canonical`, `partial`, `unknown`) and
87
+ `recoding` names any frameshift the source claims. Effect predictors handle
88
+ a non-canonical start correctly, because the protein a source publishes is
89
+ the one in `proteins.fasta`; they do not handle a variant at the base a
90
+ ribosomal-frameshift join reads twice, which is two positions in HTLV-1.
91
+
92
+ ## Noncanonical ORFs
93
+
94
+ Build a proteome as usual and ask for the matching annotation:
95
+
96
+ ```sh
97
+ orfdata proteome --species human --release 115 --nc-orf-sources ms \
98
+ --output proteins.fasta --annotation ncorfs/
99
+ ```
100
+
101
+ That writes `ncorfs/annotation.gtf`, `ncorfs/transcripts.fasta` and
102
+ `ncorfs/proteins.fasta`: one coding transcript per ncORF, placed on its host
103
+ gene, with the spliced coding sequence and the translation. In Python the same
104
+ is `proteome.write_annotation("ncorfs")`.
105
+
106
+ ```python
107
+ from pyensembl import Genome
108
+
109
+ genome = Genome(
110
+ reference_name="GRCh38",
111
+ annotation_name="orfdata-ncorfs",
112
+ annotation_version="1",
113
+ gtf_path_or_url="ncorfs/annotation.gtf",
114
+ transcript_fasta_paths_or_urls=["ncorfs/transcripts.fasta"],
115
+ protein_fasta_paths_or_urls=["ncorfs/proteins.fasta"],
116
+ cache_directory_path="ncorfs/index",
117
+ )
118
+ genome.index()
119
+ ```
120
+
121
+ A variant inside an ncORF now has a protein consequence — a stop gained in a
122
+ lncRNA ORF reads as `p.K2*` rather than disappearing into "non-coding
123
+ transcript".
124
+
125
+ To keep the reference transcripts as well, concatenate the files instead of
126
+ replacing them. PyEnsembl takes several FASTAs, and the ncORF GTF writes no
127
+ `gene` rows precisely so it can be appended to an annotation that has them:
128
+
129
+ ```sh
130
+ cat Homo_sapiens.GRCh38.115.gtf ncorfs/annotation.gtf > combined.gtf
131
+ ```
132
+
133
+ ```python
134
+ genome = Genome(
135
+ reference_name="GRCh38", annotation_name="ensembl-plus-ncorfs", annotation_version="115",
136
+ gtf_path_or_url="combined.gtf",
137
+ transcript_fasta_paths_or_urls=["Homo_sapiens.GRCh38.cdna.all.fa", "ncorfs/transcripts.fasta"],
138
+ protein_fasta_paths_or_urls=["Homo_sapiens.GRCh38.pep.all.fa", "ncorfs/proteins.fasta"],
139
+ cache_directory_path="combined/index",
140
+ )
141
+ ```
142
+
143
+ For the models alone, without building a proteome, the query command writes the
144
+ same GTF rows for any selection:
145
+
146
+ ```sh
147
+ orfdata --evidence ms --format gtf > ncorfs.gtf
148
+ orfdata --gene LARP4B --format gtf
149
+ ```
150
+
151
+ Two deliberate choices in that file:
152
+
153
+ - ncORF transcripts are marked `transcript_biotype "protein_coding"`, because
154
+ each has a complete CDS with start and stop codons and effect predictors only
155
+ translate transcripts marked that way. The source's own category stays in
156
+ `orf_biotype`, and the host transcript in `host_transcript_id`.
157
+ - The transcript is the ORF's coding path, so its identifier is the catalogue's
158
+ `orf_id`. The protein is `<orf_id>.p`. Nothing is renamed to look like an
159
+ Ensembl accession.
160
+
161
+ ## What this does not claim
162
+
163
+ An ORF model here is a catalogue ORF placed on an assembly, with the evidence
164
+ the source reported; a predicted coding consequence is not evidence that a
165
+ stable protein exists or that a peptide is presented. Viral collection and
166
+ context membership record where a reference was selected, not that a virus
167
+ drives a particular tumour. The layers stay separate so each of those questions
168
+ can be asked of the right one.
@@ -12,13 +12,23 @@ is a recorded host of the virus.
12
12
  Use Python 3.11 or later. Install orfdata and one PyEnsembl annotation:
13
13
 
14
14
  ```sh
15
- python -m pip install 'orfdata[pyensembl,data,build-data]'
15
+ python -m pip install 'orfdata[pyensembl,build-data]'
16
16
  pyensembl install --release 115 --species human
17
17
  orfdata setup --species human --catalogs all # For ncORF presets and "all"
18
18
  ```
19
19
 
20
- The second command downloads and indexes Ensembl 115 for human GRCh38. orfdata
21
- never downloads or indexes annotation data itself; it reports what is missing.
20
+ Viral support is part of the base install; only the data is downloaded. Get
21
+ the human GDC viral references — genomes, coding transcripts and proteins, as
22
+ three named layers — with `orfdata download viral --species human`. Use
23
+ `orfdata download list` to see every known resource and `orfdata download
24
+ status` to see what is local. To annotate variants in viral transcripts or
25
+ noncanonical ORFs with varcode, isovar, topiary or vaxrank, see
26
+ [Downstream tools](downstream.md).
27
+
28
+ The second command downloads and indexes Ensembl 115 for human GRCh38. Opening
29
+ ORFdata resources never downloads them implicitly; use the explicit commands
30
+ under `orfdata download` or the corresponding PyEnsembl command when data is
31
+ missing.
22
32
 
23
33
  ## Build a human proteome
24
34