DNA序列合法性检查¶
检查 DNA 序列、记录或数据集是否符合字母表、长度、Gap、质量和元数据等规则,并返回结构化的问题列表。
只要发现一处错误,返回结果的 is_valid 就是 False;所有问题仍会保存在结构化 issues 中。
1) 校验序列与数据集¶
- 作用: 一次检查字母表、非法符号、空序列、长度、Gap、模糊碱基比例、记录元数据、PHRED 质量、空集合和重复 ID,并返回逐项问题报告,用于在分析前筛除或修正无效数据。
-
计算方法: 逐项检查配置规则并汇总 issues;任一错误使 is_valid=False,警告本身不使输入无效。
-
API:
dnakit.validate(value[必须], config[可选]);单条输入返回ValidationReport,集合输入返回DatasetValidationReport。配置类型为dnakit.ValidationConfig或dnakit.DatasetValidationConfig。 - 输入: 普通用户直接传
DNA。其中只有一条记录时使用ValidationConfig并返回单条报告;包含多条记录时可使用DatasetValidationConfig,也可直接传ValidationConfig作为每条记录的规则。旧核心对象仍兼容。 - 输出: 单条输入返回
ValidationReport,集合返回DatasetValidationReport;均提供有效性和问题列表。 - 示例代码:
from dnakit import DNA, ValidationConfig, validate
single = validate(
DNA("ACGN", alphabet="iupac"),
config=ValidationConfig(alphabet="strict"),
)
print(single.is_valid)
print([issue.code for issue in single.issues])
records = DNA(
[
{"sequence": "ACGT", "id": "valid"},
{"sequence": "AC", "id": "short"},
]
)
collection = validate(records, config=ValidationConfig(min_length=3))
print(collection.is_valid)
print([issue.code for issue in collection.issues])
- 示例结果: