dnakit 0.1.0.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. dnakit-0.1.0.dev0/CHANGELOG.md +69 -0
  2. dnakit-0.1.0.dev0/CITATION.cff +16 -0
  3. dnakit-0.1.0.dev0/CONTRIBUTING.md +53 -0
  4. dnakit-0.1.0.dev0/DISCLAIMER.md +26 -0
  5. dnakit-0.1.0.dev0/LICENSE +21 -0
  6. dnakit-0.1.0.dev0/MANIFEST.in +21 -0
  7. dnakit-0.1.0.dev0/PKG-INFO +126 -0
  8. dnakit-0.1.0.dev0/README.md +59 -0
  9. dnakit-0.1.0.dev0/THIRD_PARTY_NOTICES.md +73 -0
  10. dnakit-0.1.0.dev0/benchmarks/README.md +18 -0
  11. dnakit-0.1.0.dev0/benchmarks/__init__.py +1 -0
  12. dnakit-0.1.0.dev0/benchmarks/benchmark_core.py +465 -0
  13. dnakit-0.1.0.dev0/benchmarks/results/local_benchmark_report.json +671 -0
  14. dnakit-0.1.0.dev0/docs/acknowledgements.md +230 -0
  15. dnakit-0.1.0.dev0/docs/api/features/01_core_objects.md +222 -0
  16. dnakit-0.1.0.dev0/docs/api/features/02_io_data.md +154 -0
  17. dnakit-0.1.0.dev0/docs/api/features/03_standardization.md +43 -0
  18. dnakit-0.1.0.dev0/docs/api/features/03_validation.md +48 -0
  19. dnakit-0.1.0.dev0/docs/api/features/04_ops_001_sequence_direction.md +66 -0
  20. dnakit-0.1.0.dev0/docs/api/features/04_ops_002_transcription_translation.md +45 -0
  21. dnakit-0.1.0.dev0/docs/api/features/04_ops_003_subsequence_extraction.md +23 -0
  22. dnakit-0.1.0.dev0/docs/api/features/04_ops_004_sequence_editing.md +29 -0
  23. dnakit-0.1.0.dev0/docs/api/features/04_ops_005_mutation_generation.md +199 -0
  24. dnakit-0.1.0.dev0/docs/api/features/04_ops_006_sequence_concatenation.md +51 -0
  25. dnakit-0.1.0.dev0/docs/api/features/04_ops_007_masking.md +23 -0
  26. dnakit-0.1.0.dev0/docs/api/features/04_ops_007_trimming.md +33 -0
  27. dnakit-0.1.0.dev0/docs/api/features/04_ops_008_circular_sequence_operations.md +30 -0
  28. dnakit-0.1.0.dev0/docs/api/features/05_all_descriptors.md +623 -0
  29. dnakit-0.1.0.dev0/docs/api/features/06_patterns.md +244 -0
  30. dnakit-0.1.0.dev0/docs/api/features/07_physicochemical.md +332 -0
  31. dnakit-0.1.0.dev0/docs/api/features/08_feature_engineering.md +68 -0
  32. dnakit-0.1.0.dev0/docs/api/features/08_fingerprints.md +162 -0
  33. dnakit-0.1.0.dev0/docs/api/features/09_alignment.md +133 -0
  34. dnakit-0.1.0.dev0/docs/api/features/09_search.md +167 -0
  35. dnakit-0.1.0.dev0/docs/api/features/09_similarity_alignment.md +130 -0
  36. dnakit-0.1.0.dev0/docs/api/features/10_clustering.md +269 -0
  37. dnakit-0.1.0.dev0/docs/api/features/10_datasets.md +343 -0
  38. dnakit-0.1.0.dev0/docs/api/features/10_deduplication.md +148 -0
  39. dnakit-0.1.0.dev0/docs/api/features/12_evaluation.md +300 -0
  40. dnakit-0.1.0.dev0/docs/api/features/13_visualization.md +161 -0
  41. dnakit-0.1.0.dev0/docs/api/features/14_engineering.md +395 -0
  42. dnakit-0.1.0.dev0/docs/api/features/15_download.md +568 -0
  43. dnakit-0.1.0.dev0/docs/api/features/16_common_genomes.md +5 -0
  44. dnakit-0.1.0.dev0/docs/api/features/17_sequence_chunking.md +120 -0
  45. dnakit-0.1.0.dev0/docs/api/features/18_optics_concentration.md +208 -0
  46. dnakit-0.1.0.dev0/docs/api/features/19_duplex_thermodynamics.md +303 -0
  47. dnakit-0.1.0.dev0/docs/api/features/20_secondary_structure.md +215 -0
  48. dnakit-0.1.0.dev0/docs/api/features/21_structure3d.md +198 -0
  49. dnakit-0.1.0.dev0/docs/api/features/22_database_query.md +148 -0
  50. dnakit-0.1.0.dev0/docs/api/features/function_tree.md +266 -0
  51. dnakit-0.1.0.dev0/docs/api/features/index.md +58 -0
  52. dnakit-0.1.0.dev0/docs/api/index.md +401 -0
  53. dnakit-0.1.0.dev0/docs/changelog.md +69 -0
  54. dnakit-0.1.0.dev0/docs/demo/data/fixed_demo.json +28 -0
  55. dnakit-0.1.0.dev0/docs/demo/index.md +61 -0
  56. dnakit-0.1.0.dev0/docs/examples/index.md +97 -0
  57. dnakit-0.1.0.dev0/docs/faq.md +168 -0
  58. dnakit-0.1.0.dev0/docs/index.md +10 -0
  59. dnakit-0.1.0.dev0/docs/installation.md +29 -0
  60. dnakit-0.1.0.dev0/docs/planning/01_requirements_review.md +196 -0
  61. dnakit-0.1.0.dev0/docs/planning/02_architecture_design.md +731 -0
  62. dnakit-0.1.0.dev0/docs/planning/03_dependency_validation_development_plan.md +245 -0
  63. dnakit-0.1.0.dev0/docs/planning/04_conditional_and_unavailable_features.md +51 -0
  64. dnakit-0.1.0.dev0/docs/planning/05_mvp_delivery_report.md +241 -0
  65. dnakit-0.1.0.dev0/docs/planning/06_stage4_stage5_delivery_report.md +287 -0
  66. dnakit-0.1.0.dev0/docs/planning/07_requirements_evidence_index.md +85 -0
  67. dnakit-0.1.0.dev0/docs/planning/08_api_simplification_audit.md +45 -0
  68. dnakit-0.1.0.dev0/docs/planning/README.md +14 -0
  69. dnakit-0.1.0.dev0/docs/planning/database_capabilities.csv +54 -0
  70. dnakit-0.1.0.dev0/docs/planning/requirements_traceability.csv +185 -0
  71. dnakit-0.1.0.dev0/docs/quickstart.md +177 -0
  72. dnakit-0.1.0.dev0/docs/tutorials/index.md +47 -0
  73. dnakit-0.1.0.dev0/docs/validation.md +103 -0
  74. dnakit-0.1.0.dev0/environment-dev.yml +10 -0
  75. dnakit-0.1.0.dev0/examples/README.md +11 -0
  76. dnakit-0.1.0.dev0/examples/advanced_workflow.yml +83 -0
  77. dnakit-0.1.0.dev0/examples/fixed_demo.fasta +6 -0
  78. dnakit-0.1.0.dev0/examples/fixed_demo_expected.json +24 -0
  79. dnakit-0.1.0.dev0/mkdocs.yml +115 -0
  80. dnakit-0.1.0.dev0/notebooks/00_skeleton_check.ipynb +205 -0
  81. dnakit-0.1.0.dev0/notebooks/01_advanced_workflow.ipynb +339 -0
  82. dnakit-0.1.0.dev0/pyproject.toml +130 -0
  83. dnakit-0.1.0.dev0/setup.cfg +4 -0
  84. dnakit-0.1.0.dev0/src/dnakit/__init__.py +108 -0
  85. dnakit-0.1.0.dev0/src/dnakit/_version.py +5 -0
  86. dnakit-0.1.0.dev0/src/dnakit/alignment/__init__.py +6 -0
  87. dnakit-0.1.0.dev0/src/dnakit/alignment/pairwise.py +512 -0
  88. dnakit-0.1.0.dev0/src/dnakit/alignment/results.py +188 -0
  89. dnakit-0.1.0.dev0/src/dnakit/backends/__init__.py +80 -0
  90. dnakit-0.1.0.dev0/src/dnakit/backends/external.py +517 -0
  91. dnakit-0.1.0.dev0/src/dnakit/backends/registry.py +207 -0
  92. dnakit-0.1.0.dev0/src/dnakit/batch.py +452 -0
  93. dnakit-0.1.0.dev0/src/dnakit/cache/__init__.py +5 -0
  94. dnakit-0.1.0.dev0/src/dnakit/cache/store.py +424 -0
  95. dnakit-0.1.0.dev0/src/dnakit/chunking.py +920 -0
  96. dnakit-0.1.0.dev0/src/dnakit/cli/__init__.py +5 -0
  97. dnakit-0.1.0.dev0/src/dnakit/cli/__main__.py +6 -0
  98. dnakit-0.1.0.dev0/src/dnakit/cli/app.py +814 -0
  99. dnakit-0.1.0.dev0/src/dnakit/cli/workflow.py +94 -0
  100. dnakit-0.1.0.dev0/src/dnakit/config/__init__.py +5 -0
  101. dnakit-0.1.0.dev0/src/dnakit/config/loader.py +381 -0
  102. dnakit-0.1.0.dev0/src/dnakit/core/__init__.py +80 -0
  103. dnakit-0.1.0.dev0/src/dnakit/core/_json.py +206 -0
  104. dnakit-0.1.0.dev0/src/dnakit/core/backend_info.py +70 -0
  105. dnakit-0.1.0.dev0/src/dnakit/core/collection.py +163 -0
  106. dnakit-0.1.0.dev0/src/dnakit/core/coordinates.py +295 -0
  107. dnakit-0.1.0.dev0/src/dnakit/core/enums.py +95 -0
  108. dnakit-0.1.0.dev0/src/dnakit/core/facade.py +719 -0
  109. dnakit-0.1.0.dev0/src/dnakit/core/feature.py +90 -0
  110. dnakit-0.1.0.dev0/src/dnakit/core/gap.py +82 -0
  111. dnakit-0.1.0.dev0/src/dnakit/core/issues.py +62 -0
  112. dnakit-0.1.0.dev0/src/dnakit/core/provenance.py +305 -0
  113. dnakit-0.1.0.dev0/src/dnakit/core/record.py +161 -0
  114. dnakit-0.1.0.dev0/src/dnakit/core/results.py +134 -0
  115. dnakit-0.1.0.dev0/src/dnakit/core/sequence.py +327 -0
  116. dnakit-0.1.0.dev0/src/dnakit/datasets/__init__.py +100 -0
  117. dnakit-0.1.0.dev0/src/dnakit/datasets/_advanced_shared.py +198 -0
  118. dnakit-0.1.0.dev0/src/dnakit/datasets/_metadata.py +33 -0
  119. dnakit-0.1.0.dev0/src/dnakit/datasets/advanced_deduplicate.py +183 -0
  120. dnakit-0.1.0.dev0/src/dnakit/datasets/advanced_split.py +302 -0
  121. dnakit-0.1.0.dev0/src/dnakit/datasets/clustering.py +286 -0
  122. dnakit-0.1.0.dev0/src/dnakit/datasets/config.py +531 -0
  123. dnakit-0.1.0.dev0/src/dnakit/datasets/deduplicate.py +303 -0
  124. dnakit-0.1.0.dev0/src/dnakit/datasets/evaluation.py +244 -0
  125. dnakit-0.1.0.dev0/src/dnakit/datasets/filter.py +135 -0
  126. dnakit-0.1.0.dev0/src/dnakit/datasets/neural_clustering.py +221 -0
  127. dnakit-0.1.0.dev0/src/dnakit/datasets/results.py +520 -0
  128. dnakit-0.1.0.dev0/src/dnakit/datasets/split.py +450 -0
  129. dnakit-0.1.0.dev0/src/dnakit/descriptors/__init__.py +102 -0
  130. dnakit-0.1.0.dev0/src/dnakit/descriptors/_dinucleotide.py +345 -0
  131. dnakit-0.1.0.dev0/src/dnakit/descriptors/_shared.py +180 -0
  132. dnakit-0.1.0.dev0/src/dnakit/descriptors/all.py +917 -0
  133. dnakit-0.1.0.dev0/src/dnakit/descriptors/basic.py +193 -0
  134. dnakit-0.1.0.dev0/src/dnakit/descriptors/codon.py +195 -0
  135. dnakit-0.1.0.dev0/src/dnakit/descriptors/complexity.py +201 -0
  136. dnakit-0.1.0.dev0/src/dnakit/descriptors/entropy.py +101 -0
  137. dnakit-0.1.0.dev0/src/dnakit/descriptors/homopolymer.py +105 -0
  138. dnakit-0.1.0.dev0/src/dnakit/descriptors/kmer.py +88 -0
  139. dnakit-0.1.0.dev0/src/dnakit/descriptors/results.py +286 -0
  140. dnakit-0.1.0.dev0/src/dnakit/descriptors/schema.py +414 -0
  141. dnakit-0.1.0.dev0/src/dnakit/descriptors/window.py +203 -0
  142. dnakit-0.1.0.dev0/src/dnakit/download/__init__.py +54 -0
  143. dnakit-0.1.0.dev0/src/dnakit/download/catalogs.py +166 -0
  144. dnakit-0.1.0.dev0/src/dnakit/download/ena.py +131 -0
  145. dnakit-0.1.0.dev0/src/dnakit/download/encode.py +103 -0
  146. dnakit-0.1.0.dev0/src/dnakit/download/files.py +469 -0
  147. dnakit-0.1.0.dev0/src/dnakit/download/indexes.py +233 -0
  148. dnakit-0.1.0.dev0/src/dnakit/download/metadata.py +164 -0
  149. dnakit-0.1.0.dev0/src/dnakit/download/models.py +227 -0
  150. dnakit-0.1.0.dev0/src/dnakit/download/ncbi.py +333 -0
  151. dnakit-0.1.0.dev0/src/dnakit/download/sequence.py +133 -0
  152. dnakit-0.1.0.dev0/src/dnakit/download/ucsc.py +99 -0
  153. dnakit-0.1.0.dev0/src/dnakit/evaluation/__init__.py +81 -0
  154. dnakit-0.1.0.dev0/src/dnakit/evaluation/_shared.py +288 -0
  155. dnakit-0.1.0.dev0/src/dnakit/evaluation/collection.py +270 -0
  156. dnakit-0.1.0.dev0/src/dnakit/evaluation/config.py +591 -0
  157. dnakit-0.1.0.dev0/src/dnakit/evaluation/distribution.py +287 -0
  158. dnakit-0.1.0.dev0/src/dnakit/evaluation/frechet.py +223 -0
  159. dnakit-0.1.0.dev0/src/dnakit/evaluation/generative.py +381 -0
  160. dnakit-0.1.0.dev0/src/dnakit/evaluation/reference.py +409 -0
  161. dnakit-0.1.0.dev0/src/dnakit/evaluation/results.py +137 -0
  162. dnakit-0.1.0.dev0/src/dnakit/evaluation/scorecard.py +211 -0
  163. dnakit-0.1.0.dev0/src/dnakit/evaluation/sequence.py +403 -0
  164. dnakit-0.1.0.dev0/src/dnakit/evaluation/synthesis.py +249 -0
  165. dnakit-0.1.0.dev0/src/dnakit/exceptions.py +189 -0
  166. dnakit-0.1.0.dev0/src/dnakit/fingerprints/__init__.py +109 -0
  167. dnakit-0.1.0.dev0/src/dnakit/fingerprints/_shared.py +116 -0
  168. dnakit-0.1.0.dev0/src/dnakit/fingerprints/advanced.py +829 -0
  169. dnakit-0.1.0.dev0/src/dnakit/fingerprints/bit.py +229 -0
  170. dnakit-0.1.0.dev0/src/dnakit/fingerprints/encoding.py +351 -0
  171. dnakit-0.1.0.dev0/src/dnakit/fingerprints/kmer.py +170 -0
  172. dnakit-0.1.0.dev0/src/dnakit/fingerprints/results.py +531 -0
  173. dnakit-0.1.0.dev0/src/dnakit/fingerprints/sketch.py +246 -0
  174. dnakit-0.1.0.dev0/src/dnakit/io/__init__.py +112 -0
  175. dnakit-0.1.0.dev0/src/dnakit/io/_advanced_common.py +105 -0
  176. dnakit-0.1.0.dev0/src/dnakit/io/_formats.py +994 -0
  177. dnakit-0.1.0.dev0/src/dnakit/io/annotations.py +1179 -0
  178. dnakit-0.1.0.dev0/src/dnakit/io/api.py +759 -0
  179. dnakit-0.1.0.dev0/src/dnakit/io/config.py +315 -0
  180. dnakit-0.1.0.dev0/src/dnakit/io/genbank.py +523 -0
  181. dnakit-0.1.0.dev0/src/dnakit/io/indexed.py +1146 -0
  182. dnakit-0.1.0.dev0/src/dnakit/io/metadata.py +452 -0
  183. dnakit-0.1.0.dev0/src/dnakit/io/parquet.py +56 -0
  184. dnakit-0.1.0.dev0/src/dnakit/io/results.py +131 -0
  185. dnakit-0.1.0.dev0/src/dnakit/io/source.py +138 -0
  186. dnakit-0.1.0.dev0/src/dnakit/io/tables.py +1237 -0
  187. dnakit-0.1.0.dev0/src/dnakit/molbio/__init__.py +101 -0
  188. dnakit-0.1.0.dev0/src/dnakit/molbio/_shared.py +266 -0
  189. dnakit-0.1.0.dev0/src/dnakit/molbio/assembly.py +279 -0
  190. dnakit-0.1.0.dev0/src/dnakit/molbio/crispr.py +181 -0
  191. dnakit-0.1.0.dev0/src/dnakit/molbio/optimization.py +897 -0
  192. dnakit-0.1.0.dev0/src/dnakit/molbio/primer3_design.py +667 -0
  193. dnakit-0.1.0.dev0/src/dnakit/molbio/primers.py +899 -0
  194. dnakit-0.1.0.dev0/src/dnakit/molbio/restriction.py +573 -0
  195. dnakit-0.1.0.dev0/src/dnakit/molbio/results.py +583 -0
  196. dnakit-0.1.0.dev0/src/dnakit/ops/__init__.py +588 -0
  197. dnakit-0.1.0.dev0/src/dnakit/ops/_common.py +201 -0
  198. dnakit-0.1.0.dev0/src/dnakit/ops/circular.py +193 -0
  199. dnakit-0.1.0.dev0/src/dnakit/ops/concat.py +204 -0
  200. dnakit-0.1.0.dev0/src/dnakit/ops/direction.py +27 -0
  201. dnakit-0.1.0.dev0/src/dnakit/ops/edit.py +443 -0
  202. dnakit-0.1.0.dev0/src/dnakit/ops/evolution.py +991 -0
  203. dnakit-0.1.0.dev0/src/dnakit/ops/mutation.py +151 -0
  204. dnakit-0.1.0.dev0/src/dnakit/ops/records.py +1012 -0
  205. dnakit-0.1.0.dev0/src/dnakit/ops/translation.py +257 -0
  206. dnakit-0.1.0.dev0/src/dnakit/patterns/__init__.py +81 -0
  207. dnakit-0.1.0.dev0/src/dnakit/patterns/_shared.py +282 -0
  208. dnakit-0.1.0.dev0/src/dnakit/patterns/coding.py +360 -0
  209. dnakit-0.1.0.dev0/src/dnakit/patterns/crispr.py +337 -0
  210. dnakit-0.1.0.dev0/src/dnakit/patterns/motif.py +721 -0
  211. dnakit-0.1.0.dev0/src/dnakit/patterns/regions.py +341 -0
  212. dnakit-0.1.0.dev0/src/dnakit/patterns/repeats.py +480 -0
  213. dnakit-0.1.0.dev0/src/dnakit/patterns/restriction.py +281 -0
  214. dnakit-0.1.0.dev0/src/dnakit/patterns/results.py +411 -0
  215. dnakit-0.1.0.dev0/src/dnakit/py.typed +1 -0
  216. dnakit-0.1.0.dev0/src/dnakit/references/__init__.py +27 -0
  217. dnakit-0.1.0.dev0/src/dnakit/references/models.py +155 -0
  218. dnakit-0.1.0.dev0/src/dnakit/references/ncbi.py +785 -0
  219. dnakit-0.1.0.dev0/src/dnakit/representations/__init__.py +29 -0
  220. dnakit-0.1.0.dev0/src/dnakit/representations/backends.py +928 -0
  221. dnakit-0.1.0.dev0/src/dnakit/representations/checkpoints.py +356 -0
  222. dnakit-0.1.0.dev0/src/dnakit/representations/extraction.py +220 -0
  223. dnakit-0.1.0.dev0/src/dnakit/representations/models.py +395 -0
  224. dnakit-0.1.0.dev0/src/dnakit/representations/results.py +79 -0
  225. dnakit-0.1.0.dev0/src/dnakit/search/__init__.py +132 -0
  226. dnakit-0.1.0.dev0/src/dnakit/search/_http.py +271 -0
  227. dnakit-0.1.0.dev0/src/dnakit/search/_shared.py +108 -0
  228. dnakit-0.1.0.dev0/src/dnakit/search/blast.py +516 -0
  229. dnakit-0.1.0.dev0/src/dnakit/search/ena.py +245 -0
  230. dnakit-0.1.0.dev0/src/dnakit/search/encode.py +102 -0
  231. dnakit-0.1.0.dev0/src/dnakit/search/ensembl.py +874 -0
  232. dnakit-0.1.0.dev0/src/dnakit/search/models.py +159 -0
  233. dnakit-0.1.0.dev0/src/dnakit/search/ncbi.py +756 -0
  234. dnakit-0.1.0.dev0/src/dnakit/search/ucsc.py +388 -0
  235. dnakit-0.1.0.dev0/src/dnakit/secondary_structure/__init__.py +38 -0
  236. dnakit-0.1.0.dev0/src/dnakit/secondary_structure/dotbracket.py +410 -0
  237. dnakit-0.1.0.dev0/src/dnakit/secondary_structure/nupack.py +589 -0
  238. dnakit-0.1.0.dev0/src/dnakit/secondary_structure/results.py +142 -0
  239. dnakit-0.1.0.dev0/src/dnakit/similarity/__init__.py +125 -0
  240. dnakit-0.1.0.dev0/src/dnakit/similarity/_shared.py +152 -0
  241. dnakit-0.1.0.dev0/src/dnakit/similarity/approximate.py +258 -0
  242. dnakit-0.1.0.dev0/src/dnakit/similarity/compare.py +162 -0
  243. dnakit-0.1.0.dev0/src/dnakit/similarity/dashing.py +936 -0
  244. dnakit-0.1.0.dev0/src/dnakit/similarity/distance.py +279 -0
  245. dnakit-0.1.0.dev0/src/dnakit/similarity/index.py +365 -0
  246. dnakit-0.1.0.dev0/src/dnakit/similarity/matrix.py +254 -0
  247. dnakit-0.1.0.dev0/src/dnakit/similarity/results.py +676 -0
  248. dnakit-0.1.0.dev0/src/dnakit/similarity/search.py +286 -0
  249. dnakit-0.1.0.dev0/src/dnakit/similarity/sketch.py +96 -0
  250. dnakit-0.1.0.dev0/src/dnakit/similarity/vector.py +662 -0
  251. dnakit-0.1.0.dev0/src/dnakit/standardize/__init__.py +77 -0
  252. dnakit-0.1.0.dev0/src/dnakit/standardize/_shared.py +100 -0
  253. dnakit-0.1.0.dev0/src/dnakit/standardize/config.py +411 -0
  254. dnakit-0.1.0.dev0/src/dnakit/standardize/gaps.py +1060 -0
  255. dnakit-0.1.0.dev0/src/dnakit/standardize/normalize.py +565 -0
  256. dnakit-0.1.0.dev0/src/dnakit/standardize/results.py +247 -0
  257. dnakit-0.1.0.dev0/src/dnakit/standardize/validate.py +487 -0
  258. dnakit-0.1.0.dev0/src/dnakit/structure3d/__init__.py +47 -0
  259. dnakit-0.1.0.dev0/src/dnakit/structure3d/_shared.py +47 -0
  260. dnakit-0.1.0.dev0/src/dnakit/structure3d/geometry.py +773 -0
  261. dnakit-0.1.0.dev0/src/dnakit/structure3d/pdb.py +253 -0
  262. dnakit-0.1.0.dev0/src/dnakit/structure3d/results.py +233 -0
  263. dnakit-0.1.0.dev0/src/dnakit/structure3d/threedna.py +174 -0
  264. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/__init__.py +112 -0
  265. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/_shared.py +92 -0
  266. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/backends.py +653 -0
  267. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/calculations.py +837 -0
  268. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/config.py +175 -0
  269. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/equilibrium.py +340 -0
  270. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/optics.py +385 -0
  271. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/parameters.py +79 -0
  272. dnakit-0.1.0.dev0/src/dnakit/thermodynamics/results.py +445 -0
  273. dnakit-0.1.0.dev0/src/dnakit/visualization/__init__.py +43 -0
  274. dnakit-0.1.0.dev0/src/dnakit/visualization/_svg.py +185 -0
  275. dnakit-0.1.0.dev0/src/dnakit/visualization/advanced.py +314 -0
  276. dnakit-0.1.0.dev0/src/dnakit/visualization/config.py +255 -0
  277. dnakit-0.1.0.dev0/src/dnakit/visualization/export.py +349 -0
  278. dnakit-0.1.0.dev0/src/dnakit/visualization/matrix.py +279 -0
  279. dnakit-0.1.0.dev0/src/dnakit/visualization/report.py +431 -0
  280. dnakit-0.1.0.dev0/src/dnakit/visualization/results.py +236 -0
  281. dnakit-0.1.0.dev0/src/dnakit/visualization/sequence.py +459 -0
  282. dnakit-0.1.0.dev0/src/dnakit/workflows/__init__.py +45 -0
  283. dnakit-0.1.0.dev0/src/dnakit/workflows/manifest.py +365 -0
  284. dnakit-0.1.0.dev0/src/dnakit/workflows/runner.py +1548 -0
  285. dnakit-0.1.0.dev0/src/dnakit/workflows/schema.py +898 -0
  286. dnakit-0.1.0.dev0/src/dnakit.egg-info/PKG-INFO +126 -0
  287. dnakit-0.1.0.dev0/src/dnakit.egg-info/SOURCES.txt +383 -0
  288. dnakit-0.1.0.dev0/src/dnakit.egg-info/dependency_links.txt +1 -0
  289. dnakit-0.1.0.dev0/src/dnakit.egg-info/entry_points.txt +2 -0
  290. dnakit-0.1.0.dev0/src/dnakit.egg-info/requires.txt +49 -0
  291. dnakit-0.1.0.dev0/src/dnakit.egg-info/top_level.txt +1 -0
  292. dnakit-0.1.0.dev0/tests/integration/test_downloaded_dna_structures.py +100 -0
  293. dnakit-0.1.0.dev0/tests/test_benchmarks.py +80 -0
  294. dnakit-0.1.0.dev0/tests/test_cli_workflows.py +374 -0
  295. dnakit-0.1.0.dev0/tests/test_import.py +48 -0
  296. dnakit-0.1.0.dev0/tests/test_static_demo.py +58 -0
  297. dnakit-0.1.0.dev0/tests/unit/test_alignment_pairwise.py +164 -0
  298. dnakit-0.1.0.dev0/tests/unit/test_backends_registry.py +124 -0
  299. dnakit-0.1.0.dev0/tests/unit/test_batch.py +234 -0
  300. dnakit-0.1.0.dev0/tests/unit/test_cache_store.py +184 -0
  301. dnakit-0.1.0.dev0/tests/unit/test_chunking.py +156 -0
  302. dnakit-0.1.0.dev0/tests/unit/test_config_loader.py +183 -0
  303. dnakit-0.1.0.dev0/tests/unit/test_core_coordinates.py +116 -0
  304. dnakit-0.1.0.dev0/tests/unit/test_core_facade.py +187 -0
  305. dnakit-0.1.0.dev0/tests/unit/test_core_records.py +216 -0
  306. dnakit-0.1.0.dev0/tests/unit/test_core_results.py +104 -0
  307. dnakit-0.1.0.dev0/tests/unit/test_core_sequence.py +114 -0
  308. dnakit-0.1.0.dev0/tests/unit/test_datasets_advanced_deduplicate.py +124 -0
  309. dnakit-0.1.0.dev0/tests/unit/test_datasets_advanced_split_evaluation.py +222 -0
  310. dnakit-0.1.0.dev0/tests/unit/test_datasets_clustering.py +96 -0
  311. dnakit-0.1.0.dev0/tests/unit/test_datasets_deduplicate.py +205 -0
  312. dnakit-0.1.0.dev0/tests/unit/test_datasets_filter.py +97 -0
  313. dnakit-0.1.0.dev0/tests/unit/test_datasets_split.py +424 -0
  314. dnakit-0.1.0.dev0/tests/unit/test_descriptors_all.py +283 -0
  315. dnakit-0.1.0.dev0/tests/unit/test_descriptors_basic.py +113 -0
  316. dnakit-0.1.0.dev0/tests/unit/test_descriptors_complexity.py +65 -0
  317. dnakit-0.1.0.dev0/tests/unit/test_descriptors_kmer_entropy.py +95 -0
  318. dnakit-0.1.0.dev0/tests/unit/test_descriptors_runs_windows_codons.py +226 -0
  319. dnakit-0.1.0.dev0/tests/unit/test_evaluation_collection.py +90 -0
  320. dnakit-0.1.0.dev0/tests/unit/test_evaluation_distribution_risk_scorecard.py +237 -0
  321. dnakit-0.1.0.dev0/tests/unit/test_evaluation_frechet.py +180 -0
  322. dnakit-0.1.0.dev0/tests/unit/test_evaluation_generative.py +226 -0
  323. dnakit-0.1.0.dev0/tests/unit/test_evaluation_reference.py +180 -0
  324. dnakit-0.1.0.dev0/tests/unit/test_evaluation_sequence.py +140 -0
  325. dnakit-0.1.0.dev0/tests/unit/test_external_backend_adapters.py +149 -0
  326. dnakit-0.1.0.dev0/tests/unit/test_fingerprints_advanced.py +267 -0
  327. dnakit-0.1.0.dev0/tests/unit/test_fingerprints_bit.py +105 -0
  328. dnakit-0.1.0.dev0/tests/unit/test_fingerprints_encoding.py +168 -0
  329. dnakit-0.1.0.dev0/tests/unit/test_fingerprints_kmer.py +128 -0
  330. dnakit-0.1.0.dev0/tests/unit/test_fingerprints_sketch.py +74 -0
  331. dnakit-0.1.0.dev0/tests/unit/test_io_annotations_advanced.py +135 -0
  332. dnakit-0.1.0.dev0/tests/unit/test_io_config_results.py +147 -0
  333. dnakit-0.1.0.dev0/tests/unit/test_io_genbank_advanced.py +161 -0
  334. dnakit-0.1.0.dev0/tests/unit/test_io_indexed_advanced.py +215 -0
  335. dnakit-0.1.0.dev0/tests/unit/test_io_metadata_advanced.py +91 -0
  336. dnakit-0.1.0.dev0/tests/unit/test_io_sequence_formats.py +360 -0
  337. dnakit-0.1.0.dev0/tests/unit/test_io_source.py +168 -0
  338. dnakit-0.1.0.dev0/tests/unit/test_io_structured.py +334 -0
  339. dnakit-0.1.0.dev0/tests/unit/test_io_tables_advanced.py +479 -0
  340. dnakit-0.1.0.dev0/tests/unit/test_molbio_optimization.py +188 -0
  341. dnakit-0.1.0.dev0/tests/unit/test_molbio_primers_crispr.py +548 -0
  342. dnakit-0.1.0.dev0/tests/unit/test_molbio_restriction_assembly.py +132 -0
  343. dnakit-0.1.0.dev0/tests/unit/test_neural_clustering.py +292 -0
  344. dnakit-0.1.0.dev0/tests/unit/test_ops_circular.py +123 -0
  345. dnakit-0.1.0.dev0/tests/unit/test_ops_direction_translation.py +75 -0
  346. dnakit-0.1.0.dev0/tests/unit/test_ops_edit.py +147 -0
  347. dnakit-0.1.0.dev0/tests/unit/test_ops_evolution.py +389 -0
  348. dnakit-0.1.0.dev0/tests/unit/test_ops_mutation_concat.py +130 -0
  349. dnakit-0.1.0.dev0/tests/unit/test_ops_records.py +410 -0
  350. dnakit-0.1.0.dev0/tests/unit/test_patterns_coding_restriction_crispr.py +237 -0
  351. dnakit-0.1.0.dev0/tests/unit/test_patterns_motif.py +172 -0
  352. dnakit-0.1.0.dev0/tests/unit/test_patterns_regions_repeats.py +171 -0
  353. dnakit-0.1.0.dev0/tests/unit/test_references.py +192 -0
  354. dnakit-0.1.0.dev0/tests/unit/test_remote_download.py +415 -0
  355. dnakit-0.1.0.dev0/tests/unit/test_remote_search.py +486 -0
  356. dnakit-0.1.0.dev0/tests/unit/test_secondary_structure.py +284 -0
  357. dnakit-0.1.0.dev0/tests/unit/test_similarity_approximate.py +88 -0
  358. dnakit-0.1.0.dev0/tests/unit/test_similarity_dashing.py +282 -0
  359. dnakit-0.1.0.dev0/tests/unit/test_similarity_distance.py +151 -0
  360. dnakit-0.1.0.dev0/tests/unit/test_similarity_index.py +122 -0
  361. dnakit-0.1.0.dev0/tests/unit/test_similarity_search.py +224 -0
  362. dnakit-0.1.0.dev0/tests/unit/test_similarity_sketch.py +44 -0
  363. dnakit-0.1.0.dev0/tests/unit/test_similarity_vector_matrix.py +324 -0
  364. dnakit-0.1.0.dev0/tests/unit/test_standardize_gaps.py +557 -0
  365. dnakit-0.1.0.dev0/tests/unit/test_standardize_normalize.py +338 -0
  366. dnakit-0.1.0.dev0/tests/unit/test_standardize_validate.py +246 -0
  367. dnakit-0.1.0.dev0/tests/unit/test_structure3d.py +167 -0
  368. dnakit-0.1.0.dev0/tests/unit/test_thermodynamics_backends.py +174 -0
  369. dnakit-0.1.0.dev0/tests/unit/test_thermodynamics_calculations.py +402 -0
  370. dnakit-0.1.0.dev0/tests/unit/test_thermodynamics_optics_equilibrium.py +158 -0
  371. dnakit-0.1.0.dev0/tests/unit/test_visualization_advanced.py +63 -0
  372. dnakit-0.1.0.dev0/tests/unit/test_visualization_charts.py +146 -0
  373. dnakit-0.1.0.dev0/tests/unit/test_visualization_export.py +250 -0
  374. dnakit-0.1.0.dev0/tests/unit/test_visualization_sequence.py +149 -0
  375. dnakit-0.1.0.dev0/tests/unit/test_workflow_cli.py +64 -0
  376. dnakit-0.1.0.dev0/tests/unit/test_workflow_manifest.py +110 -0
  377. dnakit-0.1.0.dev0/tests/unit/test_workflow_runner.py +507 -0
  378. dnakit-0.1.0.dev0/tests/validation/test_validation_runner.py +64 -0
  379. dnakit-0.1.0.dev0/validation/CODE_REVIEW.md +19 -0
  380. dnakit-0.1.0.dev0/validation/README.md +25 -0
  381. dnakit-0.1.0.dev0/validation/STRUCTURE_FEATURE_CODE_REVIEW.md +38 -0
  382. dnakit-0.1.0.dev0/validation/__init__.py +1 -0
  383. dnakit-0.1.0.dev0/validation/fixtures/README.md +5 -0
  384. dnakit-0.1.0.dev0/validation/results/local_validation_report.json +407 -0
  385. dnakit-0.1.0.dev0/validation/run_validation.py +605 -0
@@ -0,0 +1,69 @@
1
+ # Changelog
2
+
3
+ 本项目遵循语义化版本。`0.1.0.dev0` 是开发预览版,公开接口在首个正式版本前可能调整。
4
+
5
+ ## [0.1.0.dev0] - 2026-08-28
6
+
7
+ ### Added
8
+
9
+ - 面向普通用户的统一 `dnakit.DNA(...)` 门面:同一个入口接收单条/多条序列、逐条 record mapping、ID、拓扑、metadata、feature 和旧核心对象;下标与切片仍返回 `DNA`。
10
+ - 新增 `dnakit.representations`:可选择 11 种 DNA 基础模型提取固定长度 rep,checkpoint 默认下载到当前目录 `ckpt/` 并复用;新增 `neural_cluster_sequences()` 完成 L2、可选 PCA、seed 固定的 k-means、中心最近代表序列和完整结果审计。
11
+ - 新增 `evaluate_frechet_distance()`:默认复用 DATA-027 的 LucaOne 表征和 L2 归一化,以样本空间等价算法计算两个 DNA 集合的 Fréchet 表征分布距离。
12
+ - 新增 `evaluate_fragment_similarity()` 和 `evaluate_snn()`:分别以 exact k-mer 出现次数余弦相似度和 hashed k-mer 指纹最近邻 Tanimoto 均值实现 MOSES Frag/SNN 的 DNA 适配。
13
+ - `dnakit.datasets.exclude_species()` 和 `exclude_chromosomes()`:按显式 metadata 精确排除一个或多个物种/染色体;缺少目标字段时结构化报错。
14
+ - MkDocs 文档站启用中文站内搜索框、搜索建议和结果关键词高亮。
15
+ - `ValidationConfig(sequence_length=...)`、`dnakit validate --sequence-length` 和工作流 `validate` 步骤现可按标准化后的精确 `symbol_length` 判定序列是否合法。
16
+ - 根目录新增 MIT 许可证文件,版权人标注为 Pengsen Ma,并将许可证纳入发行归档。
17
+ - 新增 `THIRD_PARTY_NOTICES.md`、`DISCLAIMER.md` 及文档站“致谢与引用”合并页,明确外部工具、用户数据、费用和非临床使用边界。
18
+ - 有界 GenBank 子集、GFF3、BED3–6、AGP 2.1、普通 FASTA/严格四行 FASTQ 持久索引、坐标提取、分块迭代和元数据管理。
19
+ - 以显式 `TableSchema` 有界读写 CSV/TSV/JSON/Parquet 的 `read_table()`、`export_table()` 和不可变审计结果。
20
+ - 复杂度/重复描述符,motif/PWM、ORF、限制酶、PAM、CpG island、回文、倒置重复、串联重复、STR 和低复杂度扫描。
21
+ - 分子量、基于公开 nearest-neighbor 吸光参数的未修饰 ssDNA 260 nm 理论消光系数,以及内部复现的 SantaLucia 1998 Tm、盐修正、nearest-neighbor、ΔG/ΔH/ΔS、堆积、完整互补 duplex 和局部 Tm;`duplex_stability()` 可显式使用用户安装的 Primer3 CLI adapter 评价 canonical mismatch/dangling heterodimer。
22
+ - 单/双链光学性质、OD260/A260/摩尔浓度/质量浓度/物质的量/质量换算、显式染料/修饰修正,以及 Ka/Kd、双链比例、理论熔解曲线、末端稳定性、Na⁺+K⁺ 和 DMSO/甲酰胺经验修正。
23
+ - dot-bracket 二级结构与配对概率派生指标、单独许可安装后才执行的显式 NUPACK 4 adapter,以及 PDB 坐标几何、SASA、体积、形状、骨架二面角、近似螺旋参数、NMR ensemble RMSF 和 3DNA/DSSR 解析。
24
+ - RCSB 1BNA、1AC7、139D 本地校验样本、SHA-256 清单、带进度条的结构分析脚本和机器可读结果。
25
+ - 纯外部 CLI 的 `Primer3CLIAdapter`,要求显式 `oligotm`/`ntthal` 路径,支持 Tm、hairpin、self-dimer 和 heterodimer,并记录许可、路径和 provenance;下游统一结果会校验序列、条件和结构选项绑定。
26
+ - MinHash/FracMinHash、motif/限制酶/GC/repeat/coding/固定 16 维热力学/混合/多尺度指纹及训练集拟合的预处理器;结构特征使用显式 adapter 或固定缺失策略。
27
+ - 有界近似匹配、global/local/semi-global 线性/仿射 gap 比对、sketch 相似度、持久索引和 Top-k 最近邻。
28
+ - 环状/IUPAC/近似去重、identity/edit/k-mer/fingerprint 聚类、层次聚类、代表序列、时间划分、多约束启发式划分、leakage 和划分质量评价。
29
+ - `SplitConfig(method="hash")` 顺序无关的稳定哈希划分:使用 SHA-256、seed 和唯一 `record.id`,并保持精确比例配额。
30
+ - validity、ambiguity、quality、complexity、uniqueness、diversity、redundancy、reference-scoped novelty/memorization、分布相似度、synthesis-risk 和规则型 scorecard。
31
+ - 酶切、末端/连接、PCR、引物匹配、可选结构引物属性、严格设计请求及显式路径的 `Primer3CLIDesignAdapter`、Gibson/LCR/Golden Gate/BioBrick 序列级组装、CRISPR 候选、规则优化、密码子优化和突变文库;Primer3 设计候选会反查模板坐标、左右引物序列和产物长度。
32
+ - 线性/环状 feature 图、alignment 图、相似度矩阵、自包含 HTML 报告,以及可选 PNG/TIFF/PDF 600 dpi 导出。
33
+ - 后端 registry、BLAST/MMseqs2/sourmash 被动 metadata/显式版本句柄、要求调用方提供可执行文件的严格 Dashing Jaccard/Top-k adapter、内容寻址 JSON 缓存、线程批处理、稳定 resume、JSON/YAML 多步骤工作流和可审计运行清单。
34
+ - `describe`、`fingerprint`、`search`、`orfs`、`compare`、`report` 和 `workflow` 等统一 CLI 能力,以及兼容开发入口 `python -m dnakit.cli.workflow run`。
35
+ - 本地正确性验证器、带 seed/环境/参数/逐样本记录的 microbenchmark、DNAKit/Biopython 对等任务比较、所选公开 callable 源码行口径、高级 Notebook、完整工作流示例和阶段 4/5 交付报告。
36
+ - TestPyPI 和正式 PyPI 的手动工作流配置;构建审查 job 无发布凭据,只有上传 job 具有 `id-token: write`,二者均带许可证、版本与显式确认门禁,本阶段未触发。
37
+
38
+ ### Changed
39
+
40
+ - `evolution_generate()` 保留 `mut_frac` 参数名,并新增逐碱基 `insert_frac`、`delete_frac` 概率;插入可用 `insert_min/insert_max` 选择单碱基或随机长度片段,算法审计版本升级为 `dnakit-evoaug-v3`。单次连续片段插入/删除继续由 `indel_generate()` 提供。
41
+ - 文档将 FP-004 Canonical k-mer 并入 FP-003 k-mer 特征的 Canonical 模式,并将 FP-005 统一命名为 k-mer Sketch;公开 Python API 和稳定追踪编号保持兼容。
42
+ - 普通文件读取统一为 `read(..., mode="dna"|"stream")`,验证统一为 `validate()`;无后缀编辑、反向互补和环状操作对 `DNA` 输入同步注释并返回 `DNA`,旧 `read_one/read_set/validate_set/*_record` 入口继续兼容。
43
+ - DNA 基础模型表征和神经网络聚类的默认 checkpoint 从 GROVER 改为 `LucaGroup/LucaOne-gene-step36.8M`;默认缓存目录为 `ckpt/lucaone-gene-step36-8m/`,自定义 checkpoint 代码仍需显式授权。
44
+ - 删除内置 DiProDB 240 个数值;固定 240 字段 schema 保持不变,默认后 60 项为 `None`,用户可加载有权使用的严格 15×16 JSON 表。
45
+ - 删除 `primer3` extra、`primer3-py` 依赖和 Python binding adapter;Primer3 统一改为用户单独安装并提供显式 CLI 路径。
46
+ - `normalize()` 新增 `keep_ambiguous`、`keep_u`和 `keep_other`;默认保留 IUPAC 模糊碱基,审计删除 `U` 和其他非 DNA 字符。
47
+ - 需求追踪矩阵改为逐项按当前源码、测试和本地后端状态核对,不再保留过期 `planned` 声明。
48
+ - 将独立的 identity、query coverage 和 target coverage 功能项合并到 `SIM-008` 序列比对结果,并删除重复编号。
49
+ - 批处理支持有界线程执行、稳定原始索引/派生 seed 和已完成 ID 跳过。
50
+ - 可视化范围收缩为序列、feature、alignment 和相似度矩阵,通用图片导出和 HTML 报告保持不变。
51
+ - 可视化导出扩展为原子多格式输出,并对像素、记录数和内嵌结果字节数设硬上限。
52
+ - README、安装、快速入门、API、FAQ、引用/许可证和文档站导航同步到阶段 4/5 真实状态。
53
+
54
+ ### Validation
55
+
56
+ - 11 种模型 registry、checkpoint 复用/下载契约、IUPAC/Gap/矩阵边界和 rep → k-means/PCA 由单元测试覆盖;GROVER 使用真实本地 checkpoint 完成 4 条序列的 rep + k-means smoke,其余模型保持条件状态。
57
+ - 人工小序列、IUPAC、空序列、200,000 nt 输入和跨原点环状限制酶位点通过边界验证。
58
+ - 限制酶、分子量终端约定、全局比对、字面搜索和 single/complete/average linkage 与 Biopython 对照通过。
59
+ - Primer3 CLI adapter 以临时受控替身验证命令白名单、Boulder-IO、字段/单位解析、失败、超时和输出上限;不再把旧 Python binding 对照写成当前科学验证。
60
+ - Dashing adapter 的固定命令、矩阵解析、失败/超时/输出/输入突变边界由受控替身覆盖,本地 `v1.0.2-4-g0635` 两序列 exact 文档示例 smoke 通过;尚未做科学差分。
61
+ - Primer3 不属于 Python 依赖且不随 DNAKit 打包;CLI adapter 记录 `GPL-2.0-or-later` 提示,用户仍须按实际安装版本复核。
62
+ - NUPACK adapter 的字段映射、边界和错误处理已用受控替身测试;当前环境没有 NUPACK,因此仍不存在真实 NUPACK 数值差分结论。
63
+
64
+ ### Remaining boundaries
65
+
66
+ - DNAKit 自身许可证已确定为 MIT;本版本作为开发预览版发布,依赖兼容性仍需持续复核。
67
+ - 尚未部署 GitHub Pages,也未执行论文复现实验。
68
+ - NUPACK、Primer3、DSSR/3DNA 和 Dashing 不随项目安装/下载;DiProDB 数值不再内置;各外部工具/数据的许可、可能费用和真实科学差分仍由使用者按实际版本复核。
69
+ - PyArrow 25.0.1 下的 DNAKit Parquet 写出/`read_table()` 往返已通过;其他引擎/版本交叉矩阵尚未执行。
@@ -0,0 +1,16 @@
1
+ cff-version: 1.2.0
2
+ message: "DNAKit is a development preview. Cite DNAKit plus every algorithm, database, and optional backend used by your workflow."
3
+ title: "DNAKit"
4
+ type: software
5
+ version: "0.1.0.dev0"
6
+ license: "MIT"
7
+ authors:
8
+ - name: "DNAKit contributors"
9
+ abstract: "A development-stage Python toolkit for deterministic DNA sequence standardization, descriptors, thermodynamics, fingerprints, similarity, dataset curation, evaluation, molecular-biology simulation, and visualization."
10
+ keywords:
11
+ - DNA
12
+ - bioinformatics
13
+ - sequence analysis
14
+ - thermodynamics
15
+ - data curation
16
+ - reproducibility
@@ -0,0 +1,53 @@
1
+ # 贡献指南
2
+
3
+ DNAKit 当前处于本地开发阶段,尚未建立公开 GitHub 协作流程。贡献应先保持小范围、可测试并与需求追踪矩阵对应。
4
+
5
+ ## 开发环境
6
+
7
+ ```bash
8
+ conda env create -f environment-dev.yml
9
+ conda activate dnakit-dev
10
+ python -m pip install -e ".[dev,docs]"
11
+ ```
12
+
13
+ 环境必须保持 `PYTHONNOUSERSITE=1`,避免用户级包影响验证。
14
+
15
+ ## 修改要求
16
+
17
+ - 支持 Python 3.10 及以上版本,使用类型注解。
18
+ - 公共行为需要 pytest 测试;边界行为需要明确错误和参数验证。
19
+ - 算法必须标记为 `native`、`adapter`、`reimplementation` 或 `novel`。
20
+ - adapter 必须记录后端名称、版本、参数、许可证提示和缺失后端行为。
21
+ - 随机流程必须记录 seed;外部数据库必须记录版本和校验信息。
22
+ - 不提交 NUPACK、Dashing、数据库快照、构建产物、缓存或其他不可分发工件。
23
+ - 不虚构尚未实现的 API、benchmark 或正确性结论。
24
+
25
+ ## 本地检查
26
+
27
+ ```bash
28
+ ruff check src tests
29
+ ruff format --check src tests
30
+ mypy
31
+ pytest
32
+ pytest --nbmake notebooks/00_skeleton_check.ipynb
33
+ mkdocs build --strict
34
+ python -m build
35
+ twine check dist/*
36
+ ```
37
+
38
+ 代码、测试、文档、追踪矩阵和变更记录应在同一次修改中保持一致。
39
+
40
+ ## 提交内容
41
+
42
+ 每项实现应说明:
43
+
44
+ 1. 对应的需求 ID;
45
+ 2. 公共 API 和 CLI 行为;
46
+ 3. 输入边界、异常和数值容差;
47
+ 4. 测试与对照工具;
48
+ 5. 算法来源、引用、许可证和 provenance;
49
+ 6. 用户可见的变更记录和示例。
50
+
51
+ ## 发布限制
52
+
53
+ 项目采用 MIT 许可证,但当前仍不创建正式发布、不上传 TestPyPI/PyPI、不推送 GitHub,也不部署网站。发布操作必须在项目所有者明确批准后单独执行。
@@ -0,0 +1,26 @@
1
+ # DNAKit 免责声明 / Disclaimer
2
+
3
+ ## 中文
4
+
5
+ DNAKit 是研究与教学用途的软件,不是医疗器械,也不用于临床诊断、治疗、患者管理、实验安全决策或其他高风险用途。软件输出可能不完整、不准确或不适用于特定实验;使用者必须独立验证计算、参数、输入数据和实验结论。
6
+
7
+ DNAKit 按仓库 `LICENSE` 中的 MIT 许可证提供。该许可证已经包含“按原样提供”、无明示或默示担保以及责任限制条款。本文件用于进一步说明使用边界,不替代、缩减或修改 MIT 许可证,也不构成法律、医疗或合规意见。
8
+
9
+ DNAKit 自身采用 MIT 许可证,允许研究和商业使用。因此,“本项目仅供学术研究”只是当前开发目的说明,不能被解释为对下游使用者施加非商业限制,也不能自动免除作者或使用者的法律责任。
10
+
11
+ 使用者负责:
12
+
13
+ - 确认其提供的数据、参数表、数据库和外部程序具有适用的访问、使用与再分发权限;
14
+ - 遵守第三方许可证、订阅条款、署名/引用要求、出口管制、隐私、伦理、生物安全及所在司法辖区的法律法规;
15
+ - 在论文、软件或服务中准确披露实际使用的方法、版本、参数、限制和第三方来源;
16
+ - 在依赖结果开展实验、发表、部署或商业活动前完成独立验证和必要的专业审查。
17
+
18
+ DNAKit 不保证任何第三方资源免费、持续可用、适合商业用途或允许再分发。第三方条款和费用可能变化;请在使用时核对其官方许可证和价格页面。详见 `THIRD_PARTY_NOTICES.md`。
19
+
20
+ ## English
21
+
22
+ DNAKit is research and educational software. It is not a medical device and is not intended for clinical diagnosis, treatment, patient management, laboratory-safety decisions, or other high-risk uses. Results may be incomplete, inaccurate, or unsuitable for a particular experiment and must be independently validated.
23
+
24
+ DNAKit is provided under the MIT License in `LICENSE`, including its “AS IS” warranty disclaimer and limitation of liability. This document clarifies scope; it does not replace, narrow, or modify the MIT License and is not legal, medical, or regulatory advice.
25
+
26
+ Users are responsible for verifying their rights to all supplied data, parameter tables, databases, and external software; complying with applicable third-party terms, citation requirements, privacy, ethics, biosafety, export-control, and other laws; and independently validating results before publication, deployment, experimentation, or commercial use. DNAKit does not warrant that third-party resources are free, continuously available, commercially usable, or redistributable. See `THIRD_PARTY_NOTICES.md`.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Pengsen Ma
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ include README.md
2
+ include CHANGELOG.md
3
+ include CITATION.cff
4
+ include CONTRIBUTING.md
5
+ include LICENSE
6
+ include DISCLAIMER.md
7
+ include THIRD_PARTY_NOTICES.md
8
+ include pyproject.toml
9
+ include environment-dev.yml
10
+ recursive-include src *.py py.typed
11
+ recursive-include tests *.py
12
+ recursive-include benchmarks *.py *.md *.json
13
+ recursive-include validation *.py *.md *.json
14
+ recursive-include examples *.json *.fasta *.yml *.md
15
+ recursive-include docs *.md *.json *.csv
16
+ include mkdocs.yml
17
+ recursive-include notebooks *.ipynb
18
+
19
+ prune dashing_similarity
20
+ prune ckpt
21
+ global-exclude __pycache__ *.py[cod] *.so *.a *.o
@@ -0,0 +1,126 @@
1
+ Metadata-Version: 2.4
2
+ Name: dnakit
3
+ Version: 0.1.0.dev0
4
+ Summary: Deterministic tools for DNA sequence analysis
5
+ Author: DNAKit contributors
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/mapengsen/DNAKit
8
+ Project-URL: Documentation, https://github.com/mapengsen/DNAKit/tree/main/docs
9
+ Project-URL: Repository, https://github.com/mapengsen/DNAKit
10
+ Project-URL: Issues, https://github.com/mapengsen/DNAKit/issues
11
+ Project-URL: Changelog, https://github.com/mapengsen/DNAKit/blob/main/CHANGELOG.md
12
+ Classifier: Development Status :: 2 - Pre-Alpha
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
22
+ Classifier: Typing :: Typed
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ License-File: DISCLAIMER.md
27
+ License-File: THIRD_PARTY_NOTICES.md
28
+ Requires-Dist: PyYAML>=6.0
29
+ Requires-Dist: rich>=13.7
30
+ Requires-Dist: tomli>=2.0; python_version < "3.11"
31
+ Requires-Dist: typer>=0.12
32
+ Provides-Extra: dev
33
+ Requires-Dist: build>=1.2; extra == "dev"
34
+ Requires-Dist: hypothesis>=6.100; extra == "dev"
35
+ Requires-Dist: mypy>=1.11; extra == "dev"
36
+ Requires-Dist: numpy<3,>=1.26; extra == "dev"
37
+ Requires-Dist: pytest>=8.0; extra == "dev"
38
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
39
+ Requires-Dist: ruff>=0.8; extra == "dev"
40
+ Requires-Dist: twine>=5.0; extra == "dev"
41
+ Requires-Dist: types-PyYAML>=6.0; extra == "dev"
42
+ Provides-Extra: docs
43
+ Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
44
+ Requires-Dist: mkdocs-material<10,>=9.5; extra == "docs"
45
+ Requires-Dist: mkdocstrings[python]<1,>=0.27; extra == "docs"
46
+ Requires-Dist: nbmake<2,>=1.5; extra == "docs"
47
+ Provides-Extra: viz
48
+ Requires-Dist: CairoSVG<3,>=2.7; extra == "viz"
49
+ Requires-Dist: Pillow<13,>=10; extra == "viz"
50
+ Provides-Extra: io
51
+ Requires-Dist: pyarrow<26,>=19; extra == "io"
52
+ Provides-Extra: validation
53
+ Requires-Dist: biopython<2,>=1.85; extra == "validation"
54
+ Provides-Extra: neural
55
+ Requires-Dist: huggingface-hub<2,>=0.28; extra == "neural"
56
+ Requires-Dist: numpy<3,>=1.26; extra == "neural"
57
+ Requires-Dist: scikit-learn<2,>=1.5; extra == "neural"
58
+ Requires-Dist: torch<3,>=2.5; extra == "neural"
59
+ Requires-Dist: transformers<5,>=4.49; extra == "neural"
60
+ Provides-Extra: neural-caduceus
61
+ Requires-Dist: mamba-ssm<3,>=2.2; extra == "neural-caduceus"
62
+ Provides-Extra: neural-enformer
63
+ Requires-Dist: enformer-pytorch<1,>=0.8.11; extra == "neural-enformer"
64
+ Provides-Extra: neural-evo2
65
+ Requires-Dist: evo2<0.6,>=0.5.3; extra == "neural-evo2"
66
+ Dynamic: license-file
67
+
68
+ <p align="center">
69
+ <img alt="DNAKit logo" src="https://raw.githubusercontent.com/mapengsen/DNAKit/main/docs/assets/images/DNAKit-icon.png" width="40%">
70
+ </p>
71
+
72
+ <p align="center">
73
+ <a href="https://pypi.org/project/dnakit/">
74
+ <img src="https://img.shields.io/pypi/v/dnakit?include_prereleases&amp;label=PyPI" alt="PyPI version">
75
+ </a>
76
+ <a href="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml">
77
+ <img src="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml/badge.svg" alt="CI status">
78
+ </a>
79
+ <a href="https://pypi.org/project/dnakit/">
80
+ <img src="https://img.shields.io/pypi/pyversions/dnakit" alt="Supported Python versions">
81
+ </a>
82
+ <a href="https://github.com/mapengsen/DNAKit/blob/main/LICENSE">
83
+ <img src="https://img.shields.io/github/license/mapengsen/DNAKit" alt="MIT license">
84
+ </a>
85
+ </p>
86
+
87
+ # DNAKit 是什么?
88
+
89
+ DNAKit 是面向 DNA 序列的可复现 Python 工具包,定位类似“DNA 领域的 RDKit”。它覆盖标准化、文件与注释格式、基础操作、描述符、模式扫描、热力学、指纹、相似度、聚类与数据划分、综合评价、分子生物学模拟和可视化,并可选用 DNA 基础模型提取 rep 后进行 k-means 聚类;不集成启动子活性、表达量、TF 结合强度或 CRISPR 编辑效率等任务型深度学习预测模型。
90
+
91
+ # 安装与快速入门
92
+
93
+ 安装当前开发预览版:
94
+
95
+ ```bash
96
+ pip install dnakit==0.1.0.dev0
97
+ ```
98
+
99
+ 如果需要参与开发,克隆仓库后通过 Conda 创建完整环境:
100
+
101
+ ```bash
102
+ conda env create -f environment-dev.yml
103
+ conda activate dnakit-dev
104
+ ```
105
+
106
+ 随后可以阅读 [Python 快速入门指南](https://github.com/mapengsen/DNAKit/blob/main/docs/quickstart.md)。
107
+
108
+ 更详细的依赖、可选后端和安装说明见 [安装文档](https://github.com/mapengsen/DNAKit/blob/main/docs/installation.md)。
109
+
110
+ # 文档
111
+
112
+ 完整文档位于 [DNAKit 文档首页](https://github.com/mapengsen/DNAKit/blob/main/docs/index.md) 和仓库的 [`docs`](https://github.com/mapengsen/DNAKit/tree/main/docs) 目录。
113
+
114
+ 所有功能模块可在 [功能树总览](https://github.com/mapengsen/DNAKit/blob/main/docs/api/features/function_tree.md) 中查看,常见问题见 [FAQ](https://github.com/mapengsen/DNAKit/blob/main/docs/faq.md)。
115
+
116
+ # 支持与社区
117
+
118
+ 如果有问题、意见或建议,可以先查看:
119
+
120
+ - [常见问题](https://github.com/mapengsen/DNAKit/blob/main/docs/faq.md)
121
+ - [贡献指南](https://github.com/mapengsen/DNAKit/blob/main/CONTRIBUTING.md)
122
+ - [GitHub Issues](https://github.com/mapengsen/DNAKit/issues)
123
+
124
+ 如果发现缺陷或希望增加功能,请按照 [贡献指南](https://github.com/mapengsen/DNAKit/blob/main/CONTRIBUTING.md) 中的要求记录问题和复现信息。
125
+
126
+ DNAKit 当前处于开发预览阶段,公开接口在正式版本发布前可能调整。
@@ -0,0 +1,59 @@
1
+ <p align="center">
2
+ <img alt="DNAKit logo" src="https://raw.githubusercontent.com/mapengsen/DNAKit/main/docs/assets/images/DNAKit-icon.png" width="40%">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://pypi.org/project/dnakit/">
7
+ <img src="https://img.shields.io/pypi/v/dnakit?include_prereleases&amp;label=PyPI" alt="PyPI version">
8
+ </a>
9
+ <a href="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml">
10
+ <img src="https://github.com/mapengsen/DNAKit/actions/workflows/ci.yml/badge.svg" alt="CI status">
11
+ </a>
12
+ <a href="https://pypi.org/project/dnakit/">
13
+ <img src="https://img.shields.io/pypi/pyversions/dnakit" alt="Supported Python versions">
14
+ </a>
15
+ <a href="https://github.com/mapengsen/DNAKit/blob/main/LICENSE">
16
+ <img src="https://img.shields.io/github/license/mapengsen/DNAKit" alt="MIT license">
17
+ </a>
18
+ </p>
19
+
20
+ # DNAKit 是什么?
21
+
22
+ DNAKit 是面向 DNA 序列的可复现 Python 工具包,定位类似“DNA 领域的 RDKit”。它覆盖标准化、文件与注释格式、基础操作、描述符、模式扫描、热力学、指纹、相似度、聚类与数据划分、综合评价、分子生物学模拟和可视化,并可选用 DNA 基础模型提取 rep 后进行 k-means 聚类;不集成启动子活性、表达量、TF 结合强度或 CRISPR 编辑效率等任务型深度学习预测模型。
23
+
24
+ # 安装与快速入门
25
+
26
+ 安装当前开发预览版:
27
+
28
+ ```bash
29
+ pip install dnakit==0.1.0.dev0
30
+ ```
31
+
32
+ 如果需要参与开发,克隆仓库后通过 Conda 创建完整环境:
33
+
34
+ ```bash
35
+ conda env create -f environment-dev.yml
36
+ conda activate dnakit-dev
37
+ ```
38
+
39
+ 随后可以阅读 [Python 快速入门指南](https://github.com/mapengsen/DNAKit/blob/main/docs/quickstart.md)。
40
+
41
+ 更详细的依赖、可选后端和安装说明见 [安装文档](https://github.com/mapengsen/DNAKit/blob/main/docs/installation.md)。
42
+
43
+ # 文档
44
+
45
+ 完整文档位于 [DNAKit 文档首页](https://github.com/mapengsen/DNAKit/blob/main/docs/index.md) 和仓库的 [`docs`](https://github.com/mapengsen/DNAKit/tree/main/docs) 目录。
46
+
47
+ 所有功能模块可在 [功能树总览](https://github.com/mapengsen/DNAKit/blob/main/docs/api/features/function_tree.md) 中查看,常见问题见 [FAQ](https://github.com/mapengsen/DNAKit/blob/main/docs/faq.md)。
48
+
49
+ # 支持与社区
50
+
51
+ 如果有问题、意见或建议,可以先查看:
52
+
53
+ - [常见问题](https://github.com/mapengsen/DNAKit/blob/main/docs/faq.md)
54
+ - [贡献指南](https://github.com/mapengsen/DNAKit/blob/main/CONTRIBUTING.md)
55
+ - [GitHub Issues](https://github.com/mapengsen/DNAKit/issues)
56
+
57
+ 如果发现缺陷或希望增加功能,请按照 [贡献指南](https://github.com/mapengsen/DNAKit/blob/main/CONTRIBUTING.md) 中的要求记录问题和复现信息。
58
+
59
+ DNAKit 当前处于开发预览阶段,公开接口在正式版本发布前可能调整。
@@ -0,0 +1,73 @@
1
+ # DNAKit Third-Party Notices
2
+
3
+ Last reviewed: 2026-08-23.
4
+
5
+ This file is an engineering compliance inventory, not legal advice. DNAKit itself is licensed under MIT. A dependency, external executable, database, paper, or user-supplied parameter table keeps its own terms; citing a paper does not by itself grant permission to redistribute its software or data.
6
+
7
+ ## Distribution boundary
8
+
9
+ The DNAKit wheel and sdist do **not** bundle DiProDB numerical tables, Primer3, NUPACK, DSSR/3DNA, Dashing, BLAST, MMseqs2, sourmash, REBASE, JASPAR, DNA foundation-model checkpoints, NCBI, Ensembl, ENA, ENCODE, UCSC, or their databases. External programs are never downloaded automatically. Public-data adapters access providers only when explicitly called. Where an executable adapter exists, the user must install the tool separately and provide an explicit executable or installation path. A model checkpoint is downloaded to the local `ckpt/` directory only when the user explicitly invokes the representation API; it is not redistributed in DNAKit artifacts.
10
+
11
+ Python dependencies declared in `pyproject.toml` are resolved as separate distributions by the installer; their source code is not vendored into the DNAKit wheel. This inventory covers direct dependencies. Users and redistributors must also inspect resolved transitive dependencies for their actual environment and versions.
12
+
13
+ ## Direct Python dependencies
14
+
15
+ | Scope | Component | License identifier or upstream label | DNAKit use |
16
+ | --- | --- | --- | --- |
17
+ | Runtime | PyYAML | MIT | YAML configuration |
18
+ | Runtime | Rich | MIT | terminal rendering and progress |
19
+ | Runtime | Typer | MIT | command-line interface |
20
+ | Runtime, Python <3.11 | tomli | MIT | TOML parsing |
21
+ | `viz` extra | CairoSVG | LGPL-3.0-or-later | optional SVG conversion |
22
+ | `viz` extra | Pillow | MIT-CMU | optional raster export |
23
+ | `io` extra | PyArrow | Apache-2.0 | optional Parquet I/O |
24
+ | `validation` extra | Biopython | Biopython License Agreement | validation only |
25
+ | `neural` extra | Hugging Face Hub, NumPy, scikit-learn, PyTorch, Transformers | Apache-2.0, BSD-family, and Apache-2.0 labels; verify resolved versions | checkpoint retrieval, inference, and k-means |
26
+ | `neural-caduceus` extra | mamba-ssm | Apache-2.0 label; verify resolved version | optional Caduceus runtime |
27
+ | `neural-enformer` extra | enformer-pytorch | MIT label; verify resolved version | optional Enformer runtime |
28
+ | `neural-evo2` extra | evo2 and transitive dependencies | verify the installed version and official repository | optional Evo 2 runtime |
29
+ | `docs` extra | MkDocs | BSD-2-Clause | documentation build |
30
+ | `docs` extra | Material for MkDocs | MIT | documentation theme |
31
+ | `docs` extra | mkdocstrings | ISC | API documentation |
32
+ | `docs` extra | nbmake | Apache-2.0 | notebook test gate |
33
+ | `dev` extra | build | MIT | local package build |
34
+ | `dev` extra | Hypothesis | MPL-2.0 | tests |
35
+ | `dev` extra | mypy | MIT | type checking |
36
+ | `dev` extra | pytest | MIT | tests |
37
+ | `dev` extra | pytest-cov | MIT | coverage |
38
+ | `dev` extra | Ruff | MIT | lint and formatting |
39
+ | `dev` extra | twine | Apache-2.0 | local distribution checks |
40
+ | `dev` extra | types-PyYAML | Apache-2.0 | type stubs |
41
+
42
+ Exact versions and license texts must be checked in the distributions actually installed. Useful upstream locations include [PyPI](https://pypi.org/), [Biopython licensing](https://biopython.org/DIST/docs/LICENSE), and each project repository.
43
+
44
+ ## User-installed tools and supplied data
45
+
46
+ | Resource | DNAKit integration and distribution | Terms/cost warning |
47
+ | --- | --- | --- |
48
+ | Primer3 CLI (`primer3_core`, `oligotm`, `ntthal`) | Pure external CLI adapter; explicit paths; no Python binding and no bundled binary | Primer3 source files state GPL-2.0-or-later; verify the installed release and comply with its license. See the [official repository](https://github.com/primer3-org/primer3) and [manual](https://github.com/primer3-org/primer3/blob/main/src/primer3_manual.htm). |
49
+ | NUPACK | User installs separately; DNAKit does not download, bundle, or expose it as a hosted service | Separate NUPACK terms/subscription apply and access may require payment. Academic and commercial terms differ. Check the [official download and licensing page](https://www.nupack.org/download/overview) before use. |
50
+ | DSSR/3DNA | User installs separately; DNAKit only parses explicitly supplied output | Academic and commercial permissions differ; free academic availability is still subject to the issued license. Check the [official DSSR licensing notice](https://home.x3dna.org/highlights/x3dna-dssr-is-funded-and-dssr-basic-academic-is-free). |
51
+ | Dashing | User supplies an explicit executable; no binary/source is included in distributions | GPL-3.0; verify the installed version in the [official repository](https://github.com/dnbaker/dashing). |
52
+ | DiProDB-derived or other dinucleotide tables | DNAKit supplies only a JSON schema and loader. It contains no DiProDB numerical values. | No redistribution permission for the public table has been assumed. The user must obtain or create a table they are entitled to use and cite its actual source. See [DiProDB](https://diprodb.fli-leibniz.de/). |
53
+ | BLAST, MMseqs2, sourmash and external databases | Not installed or bundled; registered capabilities are conditional and version-specific | Verify each program and database license separately. Database access does not imply redistribution rights. |
54
+ | NCBI, Ensembl, ENA, ENCODE and UCSC public services/data | Queried or downloaded only on explicit user calls; source URLs and checksums are recorded; no remote dataset is embedded in distributions | Check provider usage, attribution, privacy, controlled-access and redistribution terms. dbGaP and other controlled data still require formal authorization. |
55
+ | Hugging Face DNA-model checkpoints | Downloaded into `ckpt/` after explicit model selection with a source manifest; weights are not bundled in wheel/sdist | DNABERT-2, NTv2, HyenaDNA, Caduceus, GROVER, LucaOne, GENERator, Enformer, and Evo 2 may have different terms. Review the official links on the [clustering feature page](docs/api/features/10_clustering.md#data-027-neural-clustering). |
56
+ | AlphaGenome | Loaded only after the user accepts access terms, obtains the checkpoint, and installs the official research code | The checkpoint is gated and carries non-commercial model terms. Review the [official repository](https://github.com/google-deepmind/alphagenome_research) and current model page. |
57
+ | JanusDNA | Official Harvard Dataverse file is downloaded with MD5 verification; the user must also supply the official source environment | Review the [official repository](https://github.com/Qihao-Duan/JanusDNA), [Dataverse DOI](https://doi.org/10.7910/DVN/HDT0RN), and applicable code/data terms. |
58
+
59
+ The DNABERT-2, NTv2, HyenaDNA, Caduceus, LucaOne, and GENERator Transformers
60
+ checkpoints include Python code required by their loaders. DNAKit rejects that execution by
61
+ default. It is enabled only after the user reviews the source and explicitly sets
62
+ `allow_remote_code=True`. This opt-in does not replace a code audit, dependency lock, or
63
+ license review.
64
+
65
+ Keeping a tool in a separate process or asking the user to install it reduces bundling and automatic-distribution risk, but it is not a legal conclusion that every intended use is permitted. Commercial deployment, hosted services, redistribution, or journal supplementary archives require a new review of the exact artifacts being distributed.
66
+
67
+ ## Scientific attribution
68
+
69
+ Methods, papers, databases, and websites used as scientific foundations are listed in `docs/acknowledgements.md`. Those citations document provenance; they do not replace software/data licenses. Runtime provenance should record the actual tool/table name, version, source, parameters, and checksum.
70
+
71
+ ## No assurance of zero cost or zero risk
72
+
73
+ DNAKit does not promise that any optional tool, database, or future version is free of charge. Terms, availability, and fees can change. Before each release, archive, hosted deployment, or commercial use, repeat the dependency and artifact audit and retain copies of the applicable license texts.
@@ -0,0 +1,18 @@
1
+ # DNAKit 本地性能基准
2
+
3
+ `benchmark_core.py` 测量原生核心操作的耗时和 Python 分配器峰值内存。报告包含完整参数、随机种子、输入摘要、Python/DNAKit/Rich 版本与平台信息。
4
+
5
+ 结果只适用于当前机器与软件环境,不是跨机器性能声明。`tracemalloc` 不统计所有原生库内存。脚本有输入长度、重复次数、预热次数、案例数和总工作量硬上限,默认拒绝覆盖已有报告。
6
+
7
+ 示例:
8
+
9
+ ```bash
10
+ python -m benchmarks.benchmark_core \
11
+ --sizes 100,1000,10000 \
12
+ --repeats 3 \
13
+ --warmups 1 \
14
+ --seed 20260813 \
15
+ --tasks construct,normalize,gc_content,kmer_fingerprint,minhash,subsequence_search \
16
+ --output benchmarks/results/local_benchmark_report.json
17
+ ```
18
+
@@ -0,0 +1 @@
1
+ """Local, bounded DNAKit benchmark utilities."""