genetic_code

    Comprehensive Multi-Genetic Code Table Utility Library in MoonBit

    bioinformatics
    genomics
    genetic-code
    translation
    dna
    rna
    Download zip
    Author
    Version
    0.1.0
    License
    Apache-2.0
    Last updated
    18 days ago
    Downloads
    21

    #moonbit-genetic-code

    CI License

    MoonBit 实现的遗传密码、核酸序列和编码区分析工具库。项目面向需要在不同遗传密码表下翻译、筛选和比较 DNA/RNA 序列的研究脚本与可复现分析流程。

    #功能概览

    • 内置 26 张 NCBI 遗传密码表,覆盖标准、细菌/古菌/质体、线粒体和纤毛虫等代码;支持密码子家族、表结构校验、重编码比较和注册表审计。
    • 支持 DNA/RNA、IUPAC 简并碱基、反向互补、k-mer、GC/熵/质量画像、motif 搜索、滑动窗口、全局/局部比对和 CIGAR 摘要。
    • 提供六框翻译、密码子级注释、批量翻译、CDS 校验与修复、CDS 质量摘要和六框 ORF 扫描。
    • 提供 RSCU、CAI、ENC、GC3s、密码子使用熵、宿主偏好反向翻译、约束优化和限制性位点检查。
    • 支持单密码子 SNV 枚举、转换/颠换分类、同义/错义/无义/终止丢失汇总,以及蛋白质组成与基础理化统计。
    • 提供 FASTA 解析、规范化、诊断、定宽写出、JSON 报告和组合分析门面。

    #包结构

    作用
    src/core核苷酸、IUPAC 碱基、密码子、氨基酸和读码框基础类型
    src/tablesNCBI 遗传密码表、元数据、校验、比较和密码子家族
    src/sequence序列画像、质量、k-mer、motif、区间和比对算法
    src/translator翻译引擎、六框翻译、IUPAC 解析、密码子注释和蛋白统计
    src/cds / src/orfCDS 诊断、修复、质量摘要和 ORF 后处理
    src/bias / src/optimize密码子偏好性、熵指标和确定性约束优化
    src/mutationSNV 枚举、变异后果和进化相关指标
    src/ioFASTA、NCBI 表解析、格式化和 JSON 导出
    src/analysis将多个领域包组合成单记录/批量分析报告

    #快速开始

    需要 MoonBit stable 工具链。官方安装方式见 MoonBit CLI 文档

    moon update moon check --deny-warn --target all moon test --deny-warn --target all moon run src/main

    当前 CLI 示例输出:

    moonbit-genetic-code CLI registered_tables=26 table=1 name=The Standard Code records=2 parse_issues=0 record=demo_cds length=9 protein=MR* cds_valid=true orfs=1 codons=3 record=partial length=6 protein=MR cds_valid=false orfs=0 codons=2

    #库使用示例

    let parsed = @io.parse_fasta(">cds\nATGCGTTAA\n")
    let reports = @analysis.analyze_records(
    parsed.records,
    @analysis.AnalysisOptions::default(),
    )
    println(reports[0].translation.protein) // MR*

    FASTA 解析会保留可恢复记录,同时通过 FastaIssue 报告缺少 header、重复标识符、空序列和非法字符。需要脚本消费时,可以使用 format_fasta_jsonformat_analysis_report_json

    #基准

    基准输入固定、运行前有一次 warm-up,输出原始耗时和 checksum。运行:

    moon run benchmarks --release --target native

    一次本地记录(Windows、MoonBit 0.1.20260819)如下;耗时只用于本机回归比较:

    case=translation_report input_bases=120000 iterations=20 elapsed_ms=662 checksum=1066660 case=six_frame_orf_scan input_bases=12000 iterations=10 elapsed_ms=58 checksum=13330 case=constrained_optimization input_bases=1800 iterations=20 elapsed_ms=38 checksum=36000

    详细环境信息与方法见 benchmarks/README.mdbenchmarks/results.md

    #验证与 CI

    本地完整检查:

    moon fmt --check moon check --deny-warn --target all moon info moon test --deny-warn --target all moon build --target native moon run src/main moon run benchmarks --release --target native

    For package-level coverage diagnostics:

    moon test --deny-warn --target native --enable-coverage moon coverage report -p ziju-max/genetic_code/src/analysis -f summary moon coverage analyze --package ziju-max/genetic_code/src/analysis

    GitHub Actions 在 Ubuntu、macOS 和 Windows 上安装官方 stable 工具链,执行格式、全目标 check/test、接口生成差异检查;Ubuntu 额外执行 native build、CLI、覆盖率和 benchmark smoke test。

    #数据来源与许可证

    内置遗传密码表的 64 密码子布局和表号语义参考 NCBI 的 The Genetic Codes 及其公开的 gc.prt 表定义。本项目将表值和解析约定重新表达为 MoonBit 数据结构与 API,不捆绑 NCBI 软件运行时;使用时应以 NCBI 页面中的最新表版本和适用条款为准。

    项目使用 Apache License 2.0