Offline strand-aware restriction maps and verified DNA fragment reconstruction
Dependencies
仅作抽象序列计算和教学。全部样例为合成字符串;不提供真实酶数据库、实验条件、实验控制、疾病判断或湿实验成功率。未自动发布到 MoonCakes,不能据此声称已经通过赛事验收。
moon update
moon check --target wasm-gc --deny-warn
moon test --target wasm-gc
moon run cmd/main --target wasm-gc -- demo
moon run examples/workflow --target wasm-gc
python scripts/cli_smoke.py --target wasm-gcdigest REQUEST_JSON
verify REQUEST_JSON REPORT_JSON
demo
--help$request = Get-Content -Raw examples/circular.json
moon run cmd/main --target wasm-gc -- digest $requestimport pathlib, subprocess
request = pathlib.Path("examples/circular.json").read_text(encoding="utf-8")
result = subprocess.run(
["moon", "run", "cmd/main", "--target", "wasm-gc", "--", "digest", request],
capture_output=True, text=True, encoding="utf-8", check=True)
report = result.stdout.strip()
subprocess.run(["moon", "run", "cmd/main", "--target", "wasm-gc", "--",
"verify", request, report], check=True)import { "CYang-dep/moonrestrict" @restrict }let dna = @restrict.Dna::new("GTAC", topology=Circular)
let enzyme = @restrict.Enzyme::new("synthetic", "ACGT", 1, 3)
let report = @restrict.digest(dna, enzyme)
@restrict.verify_digest(dna, [enzyme], report)
let (before, after) = @restrict.cut_ends(dna, report.cuts[0])
let compatibility = @restrict.compatible_ends(before, after)| 能力 | API |
|---|---|
| 校验/转换 DNA 与模型 | Dna::new, Enzyme::new, reverse_complement |
| 双向识别与确定性 | scan |
| 完整单/多模型切割 | digest, digest_many |
| 证据、片段坐标及原文校验 | verify_digest, Request::verify |
| 平末端、5′/3′突出末端和互补性 | cut_ends, compatible_ends |
| FASTA 与模型 TSV | read_fasta, write_fasta, read_enzymes, write_enzymes |
| 部分切割的数学子集 | partial_digests |
| 区间投影 | annotate_fragments |
| 精确长度指纹与比较 | size_bands, band_signature, compare_maps, select_panel |
| 版本化 JSON 与可移植命令分发 | read_request, read_report, run_json, command |
moon fmt --check
moon check --target wasm-gc --deny-warn
moon check --target wasm --deny-warn
moon check --target js --deny-warn
moon check --target native --deny-warn
python scripts/verify.py --skip-native-runtime
# 有 C 编译器时,运行完整四目标验收:
python scripts/verify.pyfn Enzyme::new(name : String, motif : String, top_offset : Int, bottom_offset : Int) -> Enzyme raise RestrictErrorpub(all) struct PartialReport {
candidate_cuts : Int
total_subsets : Int
truncated : Bool
scenarios : Array[PartialScenario]
} derive(Eq, ToJson, Debug)fn annotate_fragments(dna : Dna, enzymes : Array[Enzyme], report : Digest, annotations : Array[Annotation]) -> Array[AnnotationPiece] raise RestrictErrorfn compare_maps(left_dna : Dna, left_enzymes : Array[Enzyme], left : Digest, right_dna : Dna, right_enzymes : Array[Enzyme], right : Digest) -> MapComparison raise RestrictErrorfn digest_many(dna : Dna, enzymes : Array[Enzyme], policy? : AmbiguityPolicy) -> Digest raise RestrictErrorfn partial_digests(dna : Dna, enzymes : Array[Enzyme], max_scenarios? : Int) -> PartialReport raise RestrictErrorfn select_panel(fingerprints : Array[Array[String]], max_columns : Int) -> FingerprintPanel raise RestrictErrorInstall
Download zipOffline strand-aware restriction maps and verified DNA fragment reconstruction
Dependencies