k-mer 分析¶
更新于: 2020-09-14
内容简介
k-mer 分析可以不依赖参考基因组,对序列 ATCG 特定 kmer 进行统计计算差异的方法。
安装¶
通过 pip 安装¶
khmer 是一个 python 包,可以使用 python 包安装工具 pip 来安装。
通过 conda 安装¶
用 conda 新建一个虚拟环境安装 khmer。当前版本为 [2.12][http://khmer.readthedocs.io/en/v2.1.2/],安装过程还会自动安装依赖工具 [screed][https://github.com/dib-lab/screed](一个轻量级 python 序列数据库工具)。
使用¶
khmer 有一套命令行工具,可以非常方便的运行使用。另外也可以使用 khmer 的 API,编写 python 代码调用。
load-into-counting.py
normalize-by-median.py
去除冗余序列。脚本程序将 Fast[A/Q] 格式数据文件列表化,脚本输出的序列可以被组装软件比如 SPAdes 等进行序列组装。
readstats.py
统计 FASTA/Q 序列信息。
$ readstats.py -o R1.output R1.fastq.gz
$ cat R1.output
found 449472737 bps / 1879073 seqs; 239.2 average length -- R1.fastq.gz
---------------
449472737 bp / 1879073 seqs; 239.2 average length -- R1.fastq.gz
---------------
449472737 bp / 1879073 seqs; 239.2 average length -- total
khmer 用途¶
对 de novo assembly 进行数字均一化进行预处理
Python API¶
# ipython 环境中调用 khmer 模块
$ ipython
In [1]: import khmer
In [2]: counts = khmer.Counttable(31, 1e7, 4)
In [3]: counts.consume_seqfile('R1.fastq.gz')
(25000, 1150000)
# 31 是 kmer 长度,1e7 是 table size,4 是 table 数
# 25000 表示序列数量,高通量测序里即 reads 数。
# 1150000 表示指定 kmer 切割后各种 kmer 序列数
In [4]: counts.get('TGACTTTCTTCGCTTCCTGACGGCTTATGCC')
105