[ PROMPT_NODE_27346 ]
scikit-bio
[ SKILL_DOCUMENTATION ]
# scikit-bio
## 概述
scikit-bio 是一个用于处理生物数据的综合 Python 库。应用此技能进行生物信息学分析,涵盖序列操作、比对、系统发育学、微生物生态学和多变量统计。
## 何时使用此技能
当用户需要进行以下操作时,应使用此技能:
- 处理生物序列(DNA、RNA、蛋白质)
- 需要读取/写入生物文件格式(FASTA, FASTQ, GenBank, Newick, BIOM 等)
- 执行序列比对或基序搜索
- 构建或分析系统发育树
- 计算多样性指标(alpha/beta 多样性,UniFrac 距离)
- 执行排序分析(PCoA, CCA, RDA)
- 对生物/生态数据运行统计检验(PERMANOVA, ANOSIM, Mantel)
- 分析微生物组或群落生态学数据
- 处理来自语言模型的蛋白质嵌入
- 需要操作生物数据表
## 核心能力
### 1. 序列操作
使用专门针对 DNA、RNA 和蛋白质数据的类来处理生物序列。
**关键操作:**
- 从 FASTA, FASTQ, GenBank, EMBL 格式读取/写入序列
- 序列切片、拼接和搜索
- 反向互补、转录(DNA→RNA)和翻译(RNA→蛋白质)
- 使用正则表达式查找基序和模式
- 计算距离(Hamming 距离,基于 k-mer 的距离)
- 处理序列质量分数和元数据
**常见模式:**
python
import skbio
# 从文件读取序列
seq = skbio.DNA.read('input.fasta')
# 序列操作
rc = seq.reverse_complement()
rna = seq.transcribe()
protein = rna.translate()
# 查找基序
motif_positions = seq.find_with_regex('ATG[ACGT]{3}')
# 检查属性
has_degens = seq.has_degenerates()
seq_no_gaps = seq.degap()
**重要提示:**
- 使用 `DNA`, `RNA`, `Protein` 类处理带有验证的语法序列
- 使用 `Sequence` 类处理没有字母限制的通用序列
- 质量分数会自动从 FASTQ 文件加载到位置元数据中
- 元数据类型:序列级(ID, 描述)、位置级(每碱基)、区间级(区域/特征)
### 2. 序列比对
使用动态规划算法执行成对和多序列比对。
**关键能力:**
- 全局比对(Needleman-Wunsch 及其半全局变体)
- 局部比对(Smith-Waterman)
- 可配置的评分方案(匹配/不匹配、空位罚分、替换矩阵)
- CIGAR 字符串转换
- 多序列比对