simplify-bioinformatics-code 是做什么的?
一个用于简化生物信息学代码的 Codex 技能,同时保留科学意图、可靠输入和可读的分析结构。
概述
该技能帮助开发者将冗长或复杂的生物信息学脚本转化为更简洁、可维护的版本,同时确保:
- 科学意图:算法背后的生物学假设和计算逻辑保持不变。
- 可靠输入:已验证的数据源、文件路径和参数不会被意外修改。
- 可读分析结构:代码以清晰、逻辑分步骤的方式呈现,便于审查和共享。
适用平台
- Codex(例如在 OpenAI 的 ChatGPT 或 VS Code 中使用)
- 其他支持技能机制的 AI 编码助手(如 Claude Code 或 Cursor)
工作原理
- 输入扫描:分析输入的代码片段或文件,识别科学函数和关键输入(如参考基因组路径、阈值、参数)。
- 意图提取:标记代码中体现生物学逻辑的核心部分(例如序列比对步骤、统计检验)。
- 简化规则:应用预设规则集来:
- 移除冗余实现细节(如重复注释或过度防御性检查)
- 重命名变量以提高清晰度
- 将长函数拆分为模块化步骤
- 保留科学文献引用和注释
- 输出验证:确保简化后的代码与原始代码在功能上等效。
示例用法
简化前的代码(Python)
# 加载并修剪原始读段
def process_reads(filename, trim_quality=20):
import pysam
samfile = pysam.AlignmentFile(filename, "rb")
reads = []
for read in samfile.fetch():
if read.is_unmapped:
continue
# 根据平均质量分数修剪
if read.query_qualities:
avg_qual = sum(read.query_qualities) / len(read.query_qualities)
if avg_qual < trim_quality:
continue
reads.append(read)
return reads
简化后的代码(输出)
def load_filtered_reads(bam_path, min_avg_quality=20):
"""加载 BAM 文件并过滤低质量读段。
保留映射的读段;根据平均碱基质量分数筛选。
"""
import pysam
with pysam.AlignmentFile(bam_path, "rb") as bam:
mapped_reads = [
read for read in bam.fetch()
if not read.is_unmapped
and read.query_qualities
and (sum(read.query_qualities) / len(read.query_qualities)) >= min_avg_quality
]
return mapped_reads
使用说明
- 确保代码包含清晰的科学意图(如注释或描述性函数名)。
- 输入可以是单个函数、完整脚本或多个文件。
- 该技能会保留原始科学文献引用和关键参数。
注意事项
- 该技能不会改变算法逻辑或科学假设。
- 如果输入缺乏明确意图(例如过于模糊的变量名),简化后的代码可能仍需要人工审查。
- 始终在简化后验证输出,特别是在处理敏感分析时。