测序数据分析¶
1) 统计 BAM 并生成区域共识¶
- 作用: 查看比对记录统计、各位点碱基深度与多数共识。
- 计算方法: 解析 BAM flags;筛选质量合格的 A/C/G/T 比对,平票或深度不足返回 N。
- API:
dnakit.bioinformatics.reads.alignment_summary(path);dnakit.bioinformatics.reads.coverage_consensus(path, region, min_base_quality=20, min_mapping_quality=20, min_depth=1) - 输入: 已排序并索引的
aligned.bam;需要bio-reads。共识保持参考正链坐标,不加入插入/删除。 - 输出:
alignment_summary返回比对数量字典;coverage_consensus返回共识序列和覆盖信息。 - 示例代码:
from dnakit.bioinformatics.reads import Region, alignment_summary, coverage_consensus
summary = alignment_summary("aligned.bam")
result = coverage_consensus("aligned.bam", Region("chr1", 100, 180))
print(summary)
print(result["consensus"])
- 示例结果:
summary 为计数字典;result 含区域、A/C/G/T 计数、深度与共识序列。需要真实 BAM,此处未执行。
依赖与说明:FAQ。
2) 一键运行单样本 DNA-seq 流程¶
- 作用: 从 reads 依次得到质控报告、BAM 和 VCF。
- 计算方法: 串联 FastQC → BWA → samtools → bcftools,并保留各阶段结果。
- API:
dnakit.bioinformatics.ngs.dna_seq_workflow(reference, first, output_directory, second=None, ploidy=2, qc=True, config=None) - 输入: 带
.fai的参考 FASTA 和 FASTQ;对应四个程序在 PATH 中;新输出目录。 - 输出: 返回按阶段名索引的
ToolResult字典,包含 VCF 等产物路径。 - 示例代码:
from dnakit.bioinformatics import ExecutionConfig
from dnakit.bioinformatics.ngs import dna_seq_workflow
stages = dna_seq_workflow("reference.fa", "R1.fq.gz", "new_dna_analysis",
second="R2.fq.gz", ploidy=2, config=ExecutionConfig(threads=4))
print(stages["variants"].artifacts["variants.vcf.gz"])
- 示例结果:
返回阶段名到 ToolResult 的字典:默认包含 qc、mapping、bam、variants。外部程序示例未执行。
依赖与说明:FAQ。
3) 运行单样本 RNA-seq 流程¶
- 作用: 从 RNA-seq reads 得到 BAM、转录本和基因计数。
- 计算方法: 依次运行 HISAT2、samtools、StringTie 和 featureCounts。
- API:
dnakit.bioinformatics.ngs.rna_seq_workflow(reference, annotation, first, output_directory, second=None, strandedness=0) - 输入: 参考 FASTA、GTF 和 FASTQ;上述程序在 PATH 中;
strandedness为 0/1/2;新输出目录。 - 输出: 返回按阶段名索引的
ToolResult字典,包含表达计数表等产物路径。 - 示例代码:
from dnakit.bioinformatics.ngs import rna_seq_workflow
stages = rna_seq_workflow("reference.fa", "genes.gtf", "R1.fq.gz",
"new_rna_analysis", second="R2.fq.gz", strandedness=0)
print(stages["rna"].artifacts["counts.tsv"])
- 示例结果:
返回含 bam、rna 的字典;RNA 阶段含 transcripts.gtf 和 counts.tsv。外部程序示例未执行。
依赖与说明:FAQ。
4) 从 ChIP-seq BAM 检测富集峰¶
- 作用: 比较 treatment/control BAM,得到富集峰与覆盖轨迹。
- 计算方法: 使用 MACS3 callpeak 进行峰检测。
- API:
dnakit.bioinformatics.ngs.chip_seq_workflow(treatment, control, output_directory, genome_size=..., paired_end=False, qvalue=0.05) - 输入: 已处理的 treatment/control BAM、有效基因组大小、文库单双端信息;MACS3 在 PATH 中;新输出目录。
- 输出: 返回
ToolResult,包含后端backend、产物路径artifacts和运行日志log。 - 示例代码:
from dnakit.bioinformatics.ngs import chip_seq_workflow
result = chip_seq_workflow("treatment.bam", "control.bam", "new_chip_analysis",
genome_size=2700000000, paired_end=True)
print(sorted(result.artifacts))
- 示例结果:
返回 ToolResult;artifacts 包含 MACS3 生成的峰文件和 coverage 文件。外部程序示例未执行。
依赖与说明:FAQ。
5) 生成 Sanger 参考坐标共识¶
- 作用: 合并一个或多个 Sanger reads,检查构建序列。
- 计算方法: 对裁剪后的 read 做双向局部比对,筛选质量、identity 和覆盖度后逐位投票。
- API:
dnakit.bioinformatics.cloning.sanger_consensus(traces, reference, min_quality=20, min_identity=0.8, min_read_coverage=0.8, min_depth=1) - 输入: 含
id/sequence/qualities的 trace 字典和参考序列;需要bio-analysis。N 表示平票或不足覆盖;共识不加入 indel。 - 输出: 返回字典,包含共识序列、深度数组和变异信息。
- 示例代码:
from dnakit.bioinformatics.cloning import sanger_consensus
trace = {"id": "synthetic", "sequence": "AACCGGTT", "qualities": (30,) * 8}
result = sanger_consensus([trace], "AACCGGTT")
print(result["consensus"])
print(result["depth"].tolist())
- 示例结果:
依赖与说明:FAQ。