openomicsbench 2.2.0__tar.gz → 4.0.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 (240) hide show
  1. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/CITATION.cff +1 -1
  2. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/PKG-INFO +81 -8
  3. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/README.md +78 -5
  4. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/expected/validation.json +7 -1
  5. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/manifest.json +4 -4
  6. openomicsbench-4.0.0/datasets/sequences/sequence-006/expected/peptides.tsv +16 -0
  7. openomicsbench-4.0.0/datasets/sequences/sequence-006/expected/validation.json +61 -0
  8. openomicsbench-4.0.0/datasets/sequences/sequence-006/manifest.json +100 -0
  9. openomicsbench-4.0.0/datasets/sequences/sequence-006/nano/proteins.fasta +6 -0
  10. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/pyproject.toml +3 -3
  11. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/__init__.py +1 -1
  12. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/cli.py +62 -4
  13. openomicsbench-4.0.0/src/omicsbench/evaluate.py +266 -0
  14. openomicsbench-4.0.0/src/omicsbench/evidence.py +240 -0
  15. openomicsbench-4.0.0/src/omicsbench/peptides.py +209 -0
  16. openomicsbench-4.0.0/src/omicsbench/policy.py +171 -0
  17. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/regression.py +3 -3
  18. openomicsbench-4.0.0/src/omicsbench/suite.py +421 -0
  19. openomicsbench-4.0.0/src/omicsbench/trends.py +111 -0
  20. openomicsbench-4.0.0/src/omicsbench/variants.py +210 -0
  21. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/PKG-INFO +81 -8
  22. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/SOURCES.txt +17 -1
  23. openomicsbench-4.0.0/tests/test_evaluate.py +129 -0
  24. openomicsbench-4.0.0/tests/test_evidence.py +80 -0
  25. openomicsbench-4.0.0/tests/test_peptides.py +85 -0
  26. openomicsbench-4.0.0/tests/test_policy.py +106 -0
  27. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_regression.py +13 -0
  28. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_sequence_fixtures.py +3 -2
  29. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_suite.py +5 -1
  30. openomicsbench-4.0.0/tests/test_trends.py +85 -0
  31. openomicsbench-4.0.0/tests/test_variants.py +83 -0
  32. openomicsbench-2.2.0/src/omicsbench/suite.py +0 -268
  33. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/LICENSE +0 -0
  34. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/LICENSE-METADATA +0 -0
  35. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/MANIFEST.in +0 -0
  36. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/NOTICE +0 -0
  37. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/LICENSE-DATA.md +0 -0
  38. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/README.md +0 -0
  39. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/expected/baseline.json +0 -0
  40. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/expected/size-fidelity.json +0 -0
  41. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/expected/source-counts.tsv +0 -0
  42. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/expected/validation.json +0 -0
  43. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/manifest.json +0 -0
  44. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/nano/counts.tsv +0 -0
  45. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/pocket/counts.tsv +0 -0
  46. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/fixture-001/provenance/transform.json +0 -0
  47. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-001/LICENSE-DATA.md +0 -0
  48. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-001/README.md +0 -0
  49. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-001/manifest.json +0 -0
  50. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/README.md +0 -0
  51. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/attribution.json +0 -0
  52. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/expected/deseq2.json +0 -0
  53. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/expected/reference-effects.tsv.gz +0 -0
  54. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/expected/source-counts.tsv +0 -0
  55. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/expected/validation.json +0 -0
  56. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/manifest.json +0 -0
  57. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/pocket/counts.tsv +0 -0
  58. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/provenance/transform.json +0 -0
  59. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/reference.json +0 -0
  60. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/rights.json +0 -0
  61. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-002/samples.json +0 -0
  62. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/README.md +0 -0
  63. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/attribution.json +0 -0
  64. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/expected/deseq2.json +0 -0
  65. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/expected/reference-effects.tsv.gz +0 -0
  66. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/expected/source-counts.tsv +0 -0
  67. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/expected/validation.json +0 -0
  68. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/manifest.json +0 -0
  69. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/pocket/counts.tsv +0 -0
  70. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/provenance/transform.json +0 -0
  71. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/reference.json +0 -0
  72. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/rights.json +0 -0
  73. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-003/samples.json +0 -0
  74. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/README.md +0 -0
  75. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/attribution.json +0 -0
  76. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/expected/deseq2.json +0 -0
  77. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/expected/reference-effects.tsv.gz +0 -0
  78. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/expected/source-counts.tsv +0 -0
  79. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/expected/validation.json +0 -0
  80. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/manifest.json +0 -0
  81. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/pocket/counts.tsv +0 -0
  82. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/provenance/transform.json +0 -0
  83. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/reference.json +0 -0
  84. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/rights.json +0 -0
  85. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-004/samples.json +0 -0
  86. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/README.md +0 -0
  87. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/attribution.json +0 -0
  88. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/expected/deseq2.json +0 -0
  89. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/expected/reference-effects.tsv.gz +0 -0
  90. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/expected/source-counts.tsv +0 -0
  91. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/expected/validation.json +0 -0
  92. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/manifest.json +0 -0
  93. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/pocket/counts.tsv +0 -0
  94. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/provenance/transform.json +0 -0
  95. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/reference.json +0 -0
  96. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/rights.json +0 -0
  97. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-005/samples.json +0 -0
  98. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/README.md +0 -0
  99. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/attribution.json +0 -0
  100. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/expected/deseq2.json +0 -0
  101. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/expected/reference-effects.tsv.gz +0 -0
  102. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/expected/source-counts.tsv +0 -0
  103. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/expected/validation.json +0 -0
  104. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/manifest.json +0 -0
  105. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/pocket/counts.tsv +0 -0
  106. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/provenance/transform.json +0 -0
  107. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/reference.json +0 -0
  108. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/rights.json +0 -0
  109. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-006/samples.json +0 -0
  110. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/README.md +0 -0
  111. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/attribution.json +0 -0
  112. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/expected/deseq2.json +0 -0
  113. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/expected/reference-effects.tsv.gz +0 -0
  114. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/expected/source-counts.tsv +0 -0
  115. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/expected/validation.json +0 -0
  116. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/manifest.json +0 -0
  117. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/pocket/counts.tsv +0 -0
  118. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/provenance/transform.json +0 -0
  119. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/reference.json +0 -0
  120. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/rights.json +0 -0
  121. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-007/samples.json +0 -0
  122. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/README.md +0 -0
  123. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/attribution.json +0 -0
  124. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/expected/deseq2.json +0 -0
  125. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/expected/reference-effects.tsv.gz +0 -0
  126. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/expected/source-counts.tsv +0 -0
  127. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/expected/validation.json +0 -0
  128. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/manifest.json +0 -0
  129. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/pocket/counts.tsv +0 -0
  130. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/provenance/transform.json +0 -0
  131. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/reference.json +0 -0
  132. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/rights.json +0 -0
  133. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-008/samples.json +0 -0
  134. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/README.md +0 -0
  135. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/attribution.json +0 -0
  136. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/expected/deseq2.json +0 -0
  137. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/expected/reference-effects.tsv.gz +0 -0
  138. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/expected/source-counts.tsv +0 -0
  139. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/expected/validation.json +0 -0
  140. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/manifest.json +0 -0
  141. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/pocket/counts.tsv +0 -0
  142. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/provenance/transform.json +0 -0
  143. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/reference.json +0 -0
  144. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/rights.json +0 -0
  145. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-009/samples.json +0 -0
  146. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/README.md +0 -0
  147. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/attribution.json +0 -0
  148. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/expected/deseq2.json +0 -0
  149. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/expected/reference-effects.tsv.gz +0 -0
  150. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/expected/source-counts.tsv +0 -0
  151. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/expected/validation.json +0 -0
  152. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/manifest.json +0 -0
  153. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/pocket/counts.tsv +0 -0
  154. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/provenance/transform.json +0 -0
  155. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/reference.json +0 -0
  156. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/rights.json +0 -0
  157. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-010/samples.json +0 -0
  158. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/README.md +0 -0
  159. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/attribution.json +0 -0
  160. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/expected/deseq2.json +0 -0
  161. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/expected/reference-effects.tsv.gz +0 -0
  162. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/expected/source-counts.tsv +0 -0
  163. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/expected/validation.json +0 -0
  164. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/manifest.json +0 -0
  165. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/pocket/counts.tsv +0 -0
  166. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/provenance/transform.json +0 -0
  167. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/reference.json +0 -0
  168. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/rights.json +0 -0
  169. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-011/samples.json +0 -0
  170. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/README.md +0 -0
  171. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/attribution.json +0 -0
  172. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/expected/deseq2.json +0 -0
  173. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/expected/reference-effects.tsv.gz +0 -0
  174. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/expected/source-counts.tsv +0 -0
  175. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/expected/validation.json +0 -0
  176. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/manifest.json +0 -0
  177. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/pocket/counts.tsv +0 -0
  178. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/provenance/transform.json +0 -0
  179. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/reference.json +0 -0
  180. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/rights.json +0 -0
  181. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-012/samples.json +0 -0
  182. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/README.md +0 -0
  183. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/attribution.json +0 -0
  184. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/expected/deseq2.json +0 -0
  185. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/expected/reference-effects.tsv.gz +0 -0
  186. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/expected/source-counts.tsv +0 -0
  187. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/expected/validation.json +0 -0
  188. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/manifest.json +0 -0
  189. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/pocket/counts.tsv +0 -0
  190. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/provenance/transform.json +0 -0
  191. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/reference.json +0 -0
  192. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/rights.json +0 -0
  193. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/rnaseq/rnaseq-013/samples.json +0 -0
  194. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-001/expected/validation.json +0 -0
  195. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-001/manifest.json +0 -0
  196. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-001/nano/sequences.fasta +0 -0
  197. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-002/expected/validation.json +0 -0
  198. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-002/manifest.json +0 -0
  199. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-002/nano/sequences.fasta +0 -0
  200. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-003/expected/validation.json +0 -0
  201. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-003/manifest.json +0 -0
  202. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-003/nano/sequences.fasta +0 -0
  203. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-004/expected/validation.json +0 -0
  204. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-004/manifest.json +0 -0
  205. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-004/nano/reads_R1.fastq +0 -0
  206. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-004/nano/reads_R2.fastq +0 -0
  207. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/expected/variants.tsv +0 -0
  208. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/nano/reads_R1.fastq +0 -0
  209. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/nano/reads_R2.fastq +0 -0
  210. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/datasets/sequences/sequence-005/nano/reference.fasta +0 -0
  211. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/setup.cfg +0 -0
  212. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/setup.py +0 -0
  213. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/__main__.py +0 -0
  214. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/assays.py +0 -0
  215. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/bundle.py +0 -0
  216. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/cache.py +0 -0
  217. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/compare.py +0 -0
  218. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/download.py +0 -0
  219. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/expression_atlas.py +0 -0
  220. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/hashing.py +0 -0
  221. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/matrix.py +0 -0
  222. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/models.py +0 -0
  223. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/proteins.py +0 -0
  224. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/registry.py +0 -0
  225. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/rnaseq.py +0 -0
  226. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/sequence_analysis.py +0 -0
  227. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/sequence_cli.py +0 -0
  228. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/sequence_tools.py +0 -0
  229. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/sequences.py +0 -0
  230. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/omicsbench/validate.py +0 -0
  231. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/dependency_links.txt +0 -0
  232. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/entry_points.txt +0 -0
  233. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/requires.txt +0 -0
  234. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/src/openomicsbench.egg-info/top_level.txt +0 -0
  235. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_assays.py +0 -0
  236. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_bundle.py +0 -0
  237. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_core.py +0 -0
  238. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_matrix.py +0 -0
  239. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_proteins.py +0 -0
  240. {openomicsbench-2.2.0 → openomicsbench-4.0.0}/tests/test_sequences.py +0 -0
@@ -2,7 +2,7 @@ cff-version: 1.2.0
2
2
  message: "Please cite the archived release corresponding to the version you used."
3
3
  title: "OpenOmicsBench"
4
4
  type: software
5
- version: "2.2.0"
5
+ version: "4.0.0"
6
6
  license: Apache-2.0
7
7
  doi: "10.5281/zenodo.22551734"
8
8
  authors:
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openomicsbench
3
- Version: 2.2.0
4
- Summary: Traceable omics benchmarks and deterministic FASTA and FASTQ tools
3
+ Version: 4.0.0
4
+ Summary: Traceable RNA, DNA and protein benchmarks with policy-driven evaluation
5
5
  Author: Vivaan Patni
6
6
  Maintainer: Vivaan Patni
7
7
  License-Expression: Apache-2.0
@@ -11,7 +11,7 @@ Project-URL: Issues, https://github.com/vxxqv/openomicsbench/issues
11
11
  Project-URL: Changelog, https://github.com/vxxqv/openomicsbench/blob/main/CHANGELOG.md
12
12
  Project-URL: Zenodo, https://doi.org/10.5281/zenodo.22551734
13
13
  Project-URL: ORCID, https://orcid.org/0009-0005-1859-5107
14
- Keywords: bioinformatics,computational-biology,genomics,transcriptomics,proteomics,bulk-rna-seq,dna-seq,fasta,fastq,dna,rna,protein-sequence,amino-acid-analysis,sequence-analysis,quality-control,kmer,variant-truth,benchmarking,benchmark-data,test-data,data-validation,data-provenance,data-integrity,reproducibility,scientific-workflows,research-software,expression-atlas,ensembl,deseq2
14
+ Keywords: bioinformatics,computational-biology,genomics,transcriptomics,proteomics,bulk-rna-seq,dna-seq,fasta,fastq,vcf,dna,rna,protein-sequence,peptide-identification,tryptic-digest,amino-acid-analysis,sequence-analysis,quality-control,kmer,variant-truth,variant-benchmarking,multi-assay,quality-gate,run-fingerprint,trend-report,ro-crate,benchmarking,benchmark-data,test-data,data-validation,data-provenance,data-integrity,reproducibility,scientific-workflows,research-software,expression-atlas,ensembl,deseq2
15
15
  Classifier: Development Status :: 5 - Production/Stable
16
16
  Classifier: Environment :: Console
17
17
  Classifier: Intended Audience :: Science/Research
@@ -33,9 +33,9 @@ Dynamic: license-file
33
33
 
34
34
  # OpenOmicsBench
35
35
 
36
- OpenOmicsBench is a compact benchmark collection and local sequence toolkit for bioinformatics software testing, method checks and teaching. Version 2 keeps the 12 certified bulk RNA-seq objects from version 1 and adds strict FASTA and FASTQ handling, DNA, RNA and protein support, paired-read checks, preprocessing, sequence QC and five deterministic sequence benchmarks.
36
+ OpenOmicsBench is a compact benchmark collection and local sequence toolkit for bioinformatics software testing, method checks and teaching. It contains 12 certified bulk RNA-seq objects, six deterministic DNA, RNA, protein and proteomics fixtures, strict FASTA and FASTQ tools, and a CI-ready evaluation system.
37
37
 
38
- Version 2.2 adds multi-method benchmark matrices, report-to-report regression gates and portable benchmark bundles. Suite reports can be written as JSON, Markdown, JUnit XML, CSV or a self-contained HTML page.
38
+ Version 4 evaluates RNA differential-expression results, DNA variant calls and protein-peptide identifications in the same run. It adds a deterministic tryptic-peptide benchmark, portable run fingerprints, versioned quality and resource policies, and multi-run trend reports. The version 3 VCF scoring, multi-method matrices, offline dashboards and RO-Crate evidence remain available.
39
39
 
40
40
  The package runs offline after installation. Sequence files stay on the local computer. The built-in tools cover inspection and lightweight preprocessing; they do not claim to replace aligners, variant callers, taxonomic classifiers or assay-specific statistical workflows.
41
41
 
@@ -54,6 +54,8 @@ List and validate the bundled benchmarks:
54
54
  omicsbench list
55
55
  omicsbench validate rnaseq-002
56
56
  omicsbench validate sequence-004
57
+ omicsbench variant compare sequence-005 calls.vcf.gz
58
+ omicsbench peptide compare sequence-006 identifications.peptides.tsv
57
59
  ```
58
60
 
59
61
  The wheel contains the complete collection. A repository checkout and network connection are not required.
@@ -135,6 +137,28 @@ Then run:
135
137
  omicsbench suite compare results --id rnaseq-002 --id rnaseq-003 --junit reports/comparison.xml
136
138
  ```
137
139
 
140
+ For a mixed RNA, DNA and protein run, add benchmark-named VCF and peptide output alongside the expression tables:
141
+
142
+ ```text
143
+ results/
144
+ method.json
145
+ rnaseq-002.tsv.gz
146
+ sequence-005.vcf.gz
147
+ sequence-006.peptides.tsv
148
+ ```
149
+
150
+ ```sh
151
+ omicsbench suite evaluate results \
152
+ --id rnaseq-002 \
153
+ --id sequence-005 \
154
+ --id sequence-006 \
155
+ --json reports/evaluation.json \
156
+ --html reports/evaluation.html \
157
+ --evidence reports/evaluation-evidence.zip
158
+ ```
159
+
160
+ `method.json` is optional. When supplied, it records the exact method version, command, container or source revision, parameters, runtime, peak memory and thread count. Missing selected outputs fail as benchmark cases.
161
+
138
162
  Compare several tools or parameter sets in one matrix:
139
163
 
140
164
  ```sh
@@ -146,13 +170,57 @@ omicsbench suite matrix \
146
170
  --html reports/matrix.html
147
171
  ```
148
172
 
173
+ Use `evaluate-matrix` when each method directory contains a mixture of RNA tables, VCF calls and peptide tables:
174
+
175
+ ```sh
176
+ omicsbench suite evaluate-matrix \
177
+ --method current=results/current \
178
+ --method candidate=results/candidate \
179
+ --id rnaseq-002 \
180
+ --id sequence-005 \
181
+ --id sequence-006 \
182
+ --html reports/multi-assay.html
183
+ ```
184
+
185
+ The leaderboard uses pass counts and keeps assay metrics separate. It does not average unlike measurements into a single score.
186
+
187
+ Each evaluation records SHA-256 hashes for the submitted results and benchmark manifests, then builds a `run_fingerprint` from those hashes and the validated method receipt. Local directory names do not affect this identity.
188
+
189
+ Apply a checked-in policy to an evaluation before accepting a run:
190
+
191
+ ```sh
192
+ omicsbench suite gate reports/evaluation.json policy.json \
193
+ --json reports/gate.json \
194
+ --junit reports/gate.xml
195
+ ```
196
+
197
+ A policy can require named benchmarks, overall and per-assay pass rates, a method receipt, runtime and memory ceilings, and metric floors scoped to an assay or comparator. Missing required evidence fails the gate.
198
+
199
+ Track several accepted or candidate runs in chronological order:
200
+
201
+ ```sh
202
+ omicsbench suite trend \
203
+ --run v4.0=reports/v4.0.json \
204
+ --run candidate=reports/candidate.json \
205
+ --json reports/trend.json \
206
+ --html reports/trend.html
207
+ ```
208
+
209
+ Trend reports preserve each source fingerprint, method receipt, resource measurements, pass rate and per-benchmark metric history.
210
+
149
211
  Use a previously accepted report as a regression baseline:
150
212
 
151
213
  ```sh
152
214
  omicsbench suite regress accepted.json candidate.json --absolute-tolerance 0.01 --junit reports/regression.xml
153
215
  ```
154
216
 
155
- Omit `--id` to require results for all 12 comparable RNA-seq objects. A completed suite exits with status 0 when every check passes, status 2 when a benchmark or regression gate fails, and status 1 for invalid input. Existing report files are protected unless `--force` is supplied. The [suite reference](docs/benchmark-suites.md) describes the file convention and report fields.
217
+ Omit `--id` from `suite compare` to require results for all 12 comparable RNA-seq objects. Omit it from `suite evaluate` to require every benchmark with a supported comparator. A completed suite exits with status 0 when every check passes, status 2 when a benchmark, policy or regression gate fails, and status 1 for invalid input. Existing report files are protected unless `--force` is supplied. The [suite reference](docs/benchmark-suites.md) describes the file convention and report fields.
218
+
219
+ Verify an evaluation evidence crate without extracting it:
220
+
221
+ ```sh
222
+ omicsbench evidence verify reports/evaluation-evidence.zip
223
+ ```
156
224
 
157
225
  ## Portable bundles
158
226
 
@@ -186,12 +254,17 @@ Profiles are available for whole-genome, exome, targeted-panel, bulk RNA-seq, si
186
254
  | `sequence-003` | standard, ambiguous and terminating protein records | FASTA | 3 |
187
255
  | `sequence-004` | paired DNA reads with mixed qualities and duplication | FASTQ | 4 pairs |
188
256
  | `sequence-005` | paired DNA-seq reads, reference and three known SNVs | FASTQ | 20 pairs |
257
+ | `sequence-006` | protein FASTA and exact in-silico tryptic peptide truth | FASTA/TSV | 3 proteins |
258
+
259
+ These six objects are project-authored synthetic fixtures. Each has an exact file inventory, checksums, format and molecule declarations, expected summary metrics and a deterministic rebuild workflow. `sequence-005` also verifies that every truth-set reference allele matches the bundled reference and that every alternate allele is supported by the paired reads. `sequence-006` verifies exact protein-peptide pairs from a declared tryptic digest. The objects test software behavior and do not represent a biological cohort or sequencing instrument.
260
+
261
+ The version 3 VCF comparator for `sequence-005` matches contig, one-based position, REF and ALT exactly. It reports precision, recall and F1 for A/C/G/T substitutions and verifies REF against the packaged synthetic reference. Genotypes, indels, complex representations and confident-region stratification are outside this fixture. Use a haplotype-aware benchmarking engine such as [hap.py](https://github.com/Illumina/hap.py) or vcfeval with an appropriate truth set and confident regions for real germline benchmarking; the [GA4GH benchmarking project](https://github.com/ga4gh/benchmarking-tools) documents that broader problem.
189
262
 
190
- These five objects are project-authored synthetic fixtures. Each has an exact file inventory, checksums, format and molecule declarations, expected summary metrics and a deterministic rebuild workflow. `sequence-005` also verifies that every truth-set reference allele matches the bundled reference and that every alternate allele is supported by the paired reads. The objects test software behavior and do not represent a biological cohort or sequencing instrument.
263
+ The version 4 peptide comparator accepts `protein_id` and `peptide` columns, with an optional `q_value` column. It scores unmodified pairs after the declared q-value filter and reports peptide precision, recall and F1, protein recall and covered truth residues. It does not parse spectra or claim to replace a full identification standard. The [HUPO-PSI mzIdentML specification](https://github.com/HUPO-PSI/mzIdentML) is the appropriate interchange model for complete mass-spectrometry identification results.
191
264
 
192
265
  ## Bulk RNA-seq benchmarks
193
266
 
194
- Version 2 retains the complete version 1 biological collection unchanged.
267
+ Version 4 retains the complete version 1 biological collection unchanged.
195
268
 
196
269
  | ID | Design | Samples | Pocket genes |
197
270
  |---|---|---:|---:|
@@ -1,8 +1,8 @@
1
1
  # OpenOmicsBench
2
2
 
3
- OpenOmicsBench is a compact benchmark collection and local sequence toolkit for bioinformatics software testing, method checks and teaching. Version 2 keeps the 12 certified bulk RNA-seq objects from version 1 and adds strict FASTA and FASTQ handling, DNA, RNA and protein support, paired-read checks, preprocessing, sequence QC and five deterministic sequence benchmarks.
3
+ OpenOmicsBench is a compact benchmark collection and local sequence toolkit for bioinformatics software testing, method checks and teaching. It contains 12 certified bulk RNA-seq objects, six deterministic DNA, RNA, protein and proteomics fixtures, strict FASTA and FASTQ tools, and a CI-ready evaluation system.
4
4
 
5
- Version 2.2 adds multi-method benchmark matrices, report-to-report regression gates and portable benchmark bundles. Suite reports can be written as JSON, Markdown, JUnit XML, CSV or a self-contained HTML page.
5
+ Version 4 evaluates RNA differential-expression results, DNA variant calls and protein-peptide identifications in the same run. It adds a deterministic tryptic-peptide benchmark, portable run fingerprints, versioned quality and resource policies, and multi-run trend reports. The version 3 VCF scoring, multi-method matrices, offline dashboards and RO-Crate evidence remain available.
6
6
 
7
7
  The package runs offline after installation. Sequence files stay on the local computer. The built-in tools cover inspection and lightweight preprocessing; they do not claim to replace aligners, variant callers, taxonomic classifiers or assay-specific statistical workflows.
8
8
 
@@ -21,6 +21,8 @@ List and validate the bundled benchmarks:
21
21
  omicsbench list
22
22
  omicsbench validate rnaseq-002
23
23
  omicsbench validate sequence-004
24
+ omicsbench variant compare sequence-005 calls.vcf.gz
25
+ omicsbench peptide compare sequence-006 identifications.peptides.tsv
24
26
  ```
25
27
 
26
28
  The wheel contains the complete collection. A repository checkout and network connection are not required.
@@ -102,6 +104,28 @@ Then run:
102
104
  omicsbench suite compare results --id rnaseq-002 --id rnaseq-003 --junit reports/comparison.xml
103
105
  ```
104
106
 
107
+ For a mixed RNA, DNA and protein run, add benchmark-named VCF and peptide output alongside the expression tables:
108
+
109
+ ```text
110
+ results/
111
+ method.json
112
+ rnaseq-002.tsv.gz
113
+ sequence-005.vcf.gz
114
+ sequence-006.peptides.tsv
115
+ ```
116
+
117
+ ```sh
118
+ omicsbench suite evaluate results \
119
+ --id rnaseq-002 \
120
+ --id sequence-005 \
121
+ --id sequence-006 \
122
+ --json reports/evaluation.json \
123
+ --html reports/evaluation.html \
124
+ --evidence reports/evaluation-evidence.zip
125
+ ```
126
+
127
+ `method.json` is optional. When supplied, it records the exact method version, command, container or source revision, parameters, runtime, peak memory and thread count. Missing selected outputs fail as benchmark cases.
128
+
105
129
  Compare several tools or parameter sets in one matrix:
106
130
 
107
131
  ```sh
@@ -113,13 +137,57 @@ omicsbench suite matrix \
113
137
  --html reports/matrix.html
114
138
  ```
115
139
 
140
+ Use `evaluate-matrix` when each method directory contains a mixture of RNA tables, VCF calls and peptide tables:
141
+
142
+ ```sh
143
+ omicsbench suite evaluate-matrix \
144
+ --method current=results/current \
145
+ --method candidate=results/candidate \
146
+ --id rnaseq-002 \
147
+ --id sequence-005 \
148
+ --id sequence-006 \
149
+ --html reports/multi-assay.html
150
+ ```
151
+
152
+ The leaderboard uses pass counts and keeps assay metrics separate. It does not average unlike measurements into a single score.
153
+
154
+ Each evaluation records SHA-256 hashes for the submitted results and benchmark manifests, then builds a `run_fingerprint` from those hashes and the validated method receipt. Local directory names do not affect this identity.
155
+
156
+ Apply a checked-in policy to an evaluation before accepting a run:
157
+
158
+ ```sh
159
+ omicsbench suite gate reports/evaluation.json policy.json \
160
+ --json reports/gate.json \
161
+ --junit reports/gate.xml
162
+ ```
163
+
164
+ A policy can require named benchmarks, overall and per-assay pass rates, a method receipt, runtime and memory ceilings, and metric floors scoped to an assay or comparator. Missing required evidence fails the gate.
165
+
166
+ Track several accepted or candidate runs in chronological order:
167
+
168
+ ```sh
169
+ omicsbench suite trend \
170
+ --run v4.0=reports/v4.0.json \
171
+ --run candidate=reports/candidate.json \
172
+ --json reports/trend.json \
173
+ --html reports/trend.html
174
+ ```
175
+
176
+ Trend reports preserve each source fingerprint, method receipt, resource measurements, pass rate and per-benchmark metric history.
177
+
116
178
  Use a previously accepted report as a regression baseline:
117
179
 
118
180
  ```sh
119
181
  omicsbench suite regress accepted.json candidate.json --absolute-tolerance 0.01 --junit reports/regression.xml
120
182
  ```
121
183
 
122
- Omit `--id` to require results for all 12 comparable RNA-seq objects. A completed suite exits with status 0 when every check passes, status 2 when a benchmark or regression gate fails, and status 1 for invalid input. Existing report files are protected unless `--force` is supplied. The [suite reference](docs/benchmark-suites.md) describes the file convention and report fields.
184
+ Omit `--id` from `suite compare` to require results for all 12 comparable RNA-seq objects. Omit it from `suite evaluate` to require every benchmark with a supported comparator. A completed suite exits with status 0 when every check passes, status 2 when a benchmark, policy or regression gate fails, and status 1 for invalid input. Existing report files are protected unless `--force` is supplied. The [suite reference](docs/benchmark-suites.md) describes the file convention and report fields.
185
+
186
+ Verify an evaluation evidence crate without extracting it:
187
+
188
+ ```sh
189
+ omicsbench evidence verify reports/evaluation-evidence.zip
190
+ ```
123
191
 
124
192
  ## Portable bundles
125
193
 
@@ -153,12 +221,17 @@ Profiles are available for whole-genome, exome, targeted-panel, bulk RNA-seq, si
153
221
  | `sequence-003` | standard, ambiguous and terminating protein records | FASTA | 3 |
154
222
  | `sequence-004` | paired DNA reads with mixed qualities and duplication | FASTQ | 4 pairs |
155
223
  | `sequence-005` | paired DNA-seq reads, reference and three known SNVs | FASTQ | 20 pairs |
224
+ | `sequence-006` | protein FASTA and exact in-silico tryptic peptide truth | FASTA/TSV | 3 proteins |
225
+
226
+ These six objects are project-authored synthetic fixtures. Each has an exact file inventory, checksums, format and molecule declarations, expected summary metrics and a deterministic rebuild workflow. `sequence-005` also verifies that every truth-set reference allele matches the bundled reference and that every alternate allele is supported by the paired reads. `sequence-006` verifies exact protein-peptide pairs from a declared tryptic digest. The objects test software behavior and do not represent a biological cohort or sequencing instrument.
227
+
228
+ The version 3 VCF comparator for `sequence-005` matches contig, one-based position, REF and ALT exactly. It reports precision, recall and F1 for A/C/G/T substitutions and verifies REF against the packaged synthetic reference. Genotypes, indels, complex representations and confident-region stratification are outside this fixture. Use a haplotype-aware benchmarking engine such as [hap.py](https://github.com/Illumina/hap.py) or vcfeval with an appropriate truth set and confident regions for real germline benchmarking; the [GA4GH benchmarking project](https://github.com/ga4gh/benchmarking-tools) documents that broader problem.
156
229
 
157
- These five objects are project-authored synthetic fixtures. Each has an exact file inventory, checksums, format and molecule declarations, expected summary metrics and a deterministic rebuild workflow. `sequence-005` also verifies that every truth-set reference allele matches the bundled reference and that every alternate allele is supported by the paired reads. The objects test software behavior and do not represent a biological cohort or sequencing instrument.
230
+ The version 4 peptide comparator accepts `protein_id` and `peptide` columns, with an optional `q_value` column. It scores unmodified pairs after the declared q-value filter and reports peptide precision, recall and F1, protein recall and covered truth residues. It does not parse spectra or claim to replace a full identification standard. The [HUPO-PSI mzIdentML specification](https://github.com/HUPO-PSI/mzIdentML) is the appropriate interchange model for complete mass-spectrometry identification results.
158
231
 
159
232
  ## Bulk RNA-seq benchmarks
160
233
 
161
- Version 2 retains the complete version 1 biological collection unchanged.
234
+ Version 4 retains the complete version 1 biological collection unchanged.
162
235
 
163
236
  | ID | Design | Samples | Pocket genes |
164
237
  |---|---|---:|---:|
@@ -74,5 +74,11 @@
74
74
  "reference": "nano/reference.fasta",
75
75
  "variant_truth": "expected/variants.tsv",
76
76
  "variant_count": 3,
77
- "context_bases": 10
77
+ "context_bases": 10,
78
+ "variant_comparison": {
79
+ "mode": "exact_allele",
80
+ "scope": "single_nucleotide_substitutions",
81
+ "minimum_precision": 1.0,
82
+ "minimum_recall": 1.0
83
+ }
78
84
  }
@@ -2,7 +2,7 @@
2
2
  "schema_version": "2.0",
3
3
  "id": "sequence-005",
4
4
  "title": "Synthetic paired DNA-seq variant benchmark",
5
- "release": "2.0.0",
5
+ "release": "3.0.0",
6
6
  "assay": "whole_genome_dna_seq",
7
7
  "kind": "synthetic_fixture",
8
8
  "status": "validated",
@@ -93,13 +93,13 @@
93
93
  "tier": "expected",
94
94
  "role": "metrics",
95
95
  "media_type": "application/json",
96
- "bytes": 1739,
97
- "sha256": "9b21fb89fe782b9e7ced92f0bebba8e84f4d3e50188e7af18ad2a429ba87b9bb"
96
+ "bytes": 1902,
97
+ "sha256": "da0813bf715df2a455a7c0eb86dc804dbb8cf582c9aa09119e8d976e3548cd88"
98
98
  }
99
99
  ],
100
100
  "validation": {
101
101
  "profile": "expected/validation.json",
102
- "baseline_version": "dnaseq-truth-v1",
102
+ "baseline_version": "dnaseq-truth-v2",
103
103
  "metrics": []
104
104
  },
105
105
  "sequence": {
@@ -0,0 +1,16 @@
1
+ protein_id peptide start end missed_cleavages
2
+ proteome_alpha MPEPTIDER 0 9 0
3
+ proteome_alpha MPEPTIDERK 0 10 1
4
+ proteome_alpha KAAAGMSTNPK 9 20 1
5
+ proteome_alpha AAAGMSTNPK 10 20 0
6
+ proteome_alpha AAAGMSTNPKVVVVK 10 25 1
7
+ proteome_alpha VVVVKQWER 20 29 1
8
+ proteome_alpha QWERTYIPK 25 34 1
9
+ proteome_beta GILGFVFTLTVPSER 0 15 0
10
+ proteome_beta GILGFVFTLTVPSERDVLK 0 19 1
11
+ proteome_beta DVLKQHPMWQK 15 26 1
12
+ proteome_beta QHPMWQK 19 26 0
13
+ proteome_gamma ACDEFGHIK 0 9 0
14
+ proteome_gamma ACDEFGHIKLMNPQR 0 15 1
15
+ proteome_gamma LMNPQRSTVWYK 9 21 1
16
+ proteome_gamma STVWYKR 15 22 1
@@ -0,0 +1,61 @@
1
+ {
2
+ "profile": "sequence-summary-v1",
3
+ "files": [
4
+ {
5
+ "path": "nano/proteins.fasta",
6
+ "expected": {
7
+ "format": "fasta",
8
+ "molecule": "protein",
9
+ "records": 3,
10
+ "letters": 82,
11
+ "length": {
12
+ "minimum": 22,
13
+ "maximum": 34,
14
+ "mean": 27.333333333333332,
15
+ "median": 26,
16
+ "n50": 26,
17
+ "l50": 2
18
+ },
19
+ "composition": {
20
+ "A": 4,
21
+ "C": 1,
22
+ "D": 3,
23
+ "E": 5,
24
+ "F": 3,
25
+ "G": 4,
26
+ "H": 2,
27
+ "I": 4,
28
+ "K": 8,
29
+ "L": 4,
30
+ "M": 4,
31
+ "N": 2,
32
+ "P": 7,
33
+ "Q": 4,
34
+ "R": 5,
35
+ "S": 3,
36
+ "T": 6,
37
+ "V": 8,
38
+ "W": 3,
39
+ "Y": 2
40
+ },
41
+ "gc_fraction": null,
42
+ "ambiguity_fraction": 0.0,
43
+ "duplicate_sequences": 0
44
+ }
45
+ }
46
+ ],
47
+ "protein_reference": "nano/proteins.fasta",
48
+ "peptide_truth": "expected/peptides.tsv",
49
+ "peptide_count": 15,
50
+ "peptide_comparison": {
51
+ "enzyme": "trypsin",
52
+ "missed_cleavages": 1,
53
+ "minimum_length": 7,
54
+ "maximum_length": 30,
55
+ "maximum_q_value": 0.01,
56
+ "minimum_precision": 1.0,
57
+ "minimum_recall": 1.0,
58
+ "minimum_protein_recall": 1.0,
59
+ "minimum_residue_coverage": 1.0
60
+ }
61
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "schema_version": "2.0",
3
+ "id": "sequence-006",
4
+ "title": "Synthetic proteomics peptide-identification benchmark",
5
+ "release": "4.0.0",
6
+ "assay": "sequence_protein",
7
+ "kind": "synthetic_fixture",
8
+ "status": "validated",
9
+ "archetype": "protein FASTA and exact in-silico tryptic peptide truth",
10
+ "organism": "Synthetic proteome model",
11
+ "taxon_id": null,
12
+ "source": {
13
+ "repository": "Project generator",
14
+ "accession": "sequence-006",
15
+ "url": "https://github.com/vxxqv/openomicsbench",
16
+ "citation": "OpenOmicsBench sequence-006, project-authored deterministic proteomics fixture.",
17
+ "retrieved": "2026-10-10",
18
+ "sha256": null
19
+ },
20
+ "rights": {
21
+ "status": "GREEN",
22
+ "license": "Apache-2.0",
23
+ "evidence": "Generated by the project workflow without third-party protein sequences or spectra.",
24
+ "checked": "2026-10-10"
25
+ },
26
+ "reference": {
27
+ "genome": "not_applicable",
28
+ "annotation": "not_applicable",
29
+ "namespace": "project synthetic protein identifiers",
30
+ "compatibility": "verified"
31
+ },
32
+ "samples": [
33
+ {
34
+ "sample_id": "synthetic-proteome-1",
35
+ "condition": "defined tryptic digest",
36
+ "replicate": 1,
37
+ "batch": "not_applicable",
38
+ "strandedness": "not_applicable"
39
+ }
40
+ ],
41
+ "derivation": {
42
+ "workflow": "workflows/build_sequence_fixtures.py",
43
+ "commit": null,
44
+ "seed": 0,
45
+ "algorithm": "deterministic in-silico tryptic digestion of project-authored protein sequences",
46
+ "parameters": {
47
+ "proteins": 3,
48
+ "enzyme": "trypsin",
49
+ "missed_cleavages": 1,
50
+ "minimum_length": 7,
51
+ "maximum_length": 30,
52
+ "peptides": 15
53
+ },
54
+ "versions": {
55
+ "python": "3.12",
56
+ "openomicsbench_contract": "2.0"
57
+ }
58
+ },
59
+ "files": [
60
+ {
61
+ "path": "nano/proteins.fasta",
62
+ "tier": "nano",
63
+ "role": "sequence",
64
+ "media_type": "text/x-fasta",
65
+ "bytes": 186,
66
+ "sha256": "b9a02f2e1a62751b96b3287214f3b7120a7ac4337cbb0b7797742316d56e4fdc"
67
+ },
68
+ {
69
+ "path": "expected/peptides.tsv",
70
+ "tier": "expected",
71
+ "role": "effects",
72
+ "media_type": "text/tab-separated-values",
73
+ "bytes": 560,
74
+ "sha256": "1c4a7f3a6976424ec7748355994b8a9999de6b580f7987a17b6e390c788e0a52"
75
+ },
76
+ {
77
+ "path": "expected/validation.json",
78
+ "tier": "expected",
79
+ "role": "metrics",
80
+ "media_type": "application/json",
81
+ "bytes": 1316,
82
+ "sha256": "5e0a211d4278b5962dbaaaa6297c4a06f54ea697fdc22447d94352c944f0bb3d"
83
+ }
84
+ ],
85
+ "validation": {
86
+ "profile": "expected/validation.json",
87
+ "baseline_version": "peptide-identification-v1",
88
+ "metrics": []
89
+ },
90
+ "sequence": {
91
+ "format": "fasta",
92
+ "molecule": "protein",
93
+ "paired": false,
94
+ "quality_encoding": "not_applicable"
95
+ },
96
+ "limitations": [
97
+ "The benchmark scores protein-peptide pairs from a deterministic digest; it contains no mass spectra.",
98
+ "Post-translational modifications, charge states, spectrum matching, protein inference and FDR calibration are outside this object."
99
+ ]
100
+ }
@@ -0,0 +1,6 @@
1
+ >proteome_alpha synthetic protein
2
+ MPEPTIDERKAAAGMSTNPKVVVVKQWERTYIPK
3
+ >proteome_beta synthetic protein
4
+ GILGFVFTLTVPSERDVLKQHPMWQK
5
+ >proteome_gamma synthetic protein
6
+ ACDEFGHIKLMNPQRSTVWYKR
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "openomicsbench"
7
- version = "2.2.0"
8
- description = "Traceable omics benchmarks and deterministic FASTA and FASTQ tools"
7
+ version = "4.0.0"
8
+ description = "Traceable RNA, DNA and protein benchmarks with policy-driven evaluation"
9
9
  readme = {file = "README.md", content-type = "text/markdown"}
10
10
  license = "Apache-2.0"
11
11
  authors = [{name = "Vivaan Patni"}]
12
12
  maintainers = [{name = "Vivaan Patni"}]
13
- keywords = ["bioinformatics", "computational-biology", "genomics", "transcriptomics", "proteomics", "bulk-rna-seq", "dna-seq", "fasta", "fastq", "dna", "rna", "protein-sequence", "amino-acid-analysis", "sequence-analysis", "quality-control", "kmer", "variant-truth", "benchmarking", "benchmark-data", "test-data", "data-validation", "data-provenance", "data-integrity", "reproducibility", "scientific-workflows", "research-software", "expression-atlas", "ensembl", "deseq2"]
13
+ keywords = ["bioinformatics", "computational-biology", "genomics", "transcriptomics", "proteomics", "bulk-rna-seq", "dna-seq", "fasta", "fastq", "vcf", "dna", "rna", "protein-sequence", "peptide-identification", "tryptic-digest", "amino-acid-analysis", "sequence-analysis", "quality-control", "kmer", "variant-truth", "variant-benchmarking", "multi-assay", "quality-gate", "run-fingerprint", "trend-report", "ro-crate", "benchmarking", "benchmark-data", "test-data", "data-validation", "data-provenance", "data-integrity", "reproducibility", "scientific-workflows", "research-software", "expression-atlas", "ensembl", "deseq2"]
14
14
  requires-python = ">=3.11"
15
15
  dependencies = ["pydantic>=2.13,<3", "numpy>=2.3,<3"]
16
16
  classifiers = [
@@ -1,2 +1,2 @@
1
1
  """Discovery, validation and local analysis of compact omics benchmarks."""
2
- __version__ = "2.2.0"
2
+ __version__ = "4.0.0"