k-mer频率统计

KMC3工具使用

Posted by Xuan on February 18, 2020

使用KMC3工具统计k-mer频率

KMC3工作原理

Two-stage processing scheme:

1.split reads into several hundred bins(disk files), according to super k-mers

2.Bins are sorted one by one to remove duplicates

containing various tools:

1.Filter :extract from fastq files the reads satisfying some criteria.

2.transform : modify KMC database, remove too frequency/rare k-mers, remove counters?, build histogram??

3.Intersect

4.Union

various tools

Evaluation with another three tools:

  • DIAMUND (2014)
  • NIKS (2013)
  • GenomeTester4 (2015)

KMC3使用及参数说明

kmc : 数k-mer,输出为两个压缩文件(后缀分别为:kmc_pre; kmc_suf)

kmc_dump : 解压输出k-mer及频率信息

参数说明

-ci(value) : exclude k-mers occuring less than (default is 2)

-cx(value) : exclude k-mers occuring more than

for i in $(seq 6 7);
do
./kmc -k${i} -ci1  ~/Data/miRNA/18-25.fastq k${i} ./
./kmc_dump k${i} kc${i}
#按频率排序,删除中间文件,只保存排序后文件
sort -nk2 -r kc${i} > ${i}.freq
rm k${i}* 
rm kc${i}
echo "${i}-mer counting finishing /n"
done

具体问题

1.对于一个k-mer ,是否考虑互补序列? 频率如何算?

假设k-mer (AGGTT), 他的逆序互补序列为(AACCT)

k-mer counters usually do not distinguish between direct k-mers and their reverse complements and collect statistics for canonical k-mers. The canonical k-mer is lexicographically smaller of the pair: the k-mer and its reverse complement.
只取(字母序较小的那条)作为代表。(均被统计,且分别记录各自出现频率;)

  • k为偶数时:本链与反向互补链可能相同

  • k为奇数时:本链与反向互补链不同

2.测序数据是否需要区别本链和反向互补链? 有需要区别链么?

  • 测序中的正负链 (Forward & reverse)

测序之前,要先将序列打断,进行建库。在建库的时候是不区分正负链的,所以在后续测序过程中产生序列也不包含正负链信息。
当测的read要往参考基因组上比对时,参考基因组中每条染色体只有一条序列,这条序列即为正链序列,常用‘+’表示,与正链互补的序列为负链,用‘-’表示。
对一条染色体而言,只有一条正链序列,互补的即为负链。
文献或者数据库中提到的基因所在strand,即为这里所提的正负链。

  • 转录翻译中的正负链(正义链 sensestrand & 反义链 anti-sensestrand)

根据中心法则,DNA转录成mRNA,mRNA翻译成蛋白质。mRNA只能从一条DNA链,根据碱基互补配对转录形成一条RNA链,这条辅助RNA转录的DNA链叫anti-sense strand无义链或者叫template strand模板链.该模版链与mRNA序列互补。
另一条与mRNA链序列相同的DNA链(除了T被U取代),被定义为正链(非模版链),即RNA序列相同的那一个dna单链。
相对应的链就是负链(模版链)。

  • 答:测序数据本身没有正负链标记,在进行map后才会被区别;仅测序后的fastq文件是没有正负链差别的。

3.miRNA测序怎么做的?

4.miRNA去接头后的数据可以直接在miRNA数据库中查找到么?

使用BFCounter工具计算k-mer频率

  • ./BFCounter count
  • ./BFCounter dump
for i in $(seq 6 25);
do
/home/xuanzhan/Data/Downloads/BFCounter/./BFCounter count -k ${i} -n 999999999 -o /home/xuanzhan/Data/miRNA/exp/BFC_${i} /home/xuanzhan/Data/miRNA/exp/18-25.fastq

/home/xuanzhan/Data/Downloads/BFCounter/./BFCounter dump -k ${i} -i /home/xuanzhan/Data/miRNA/exp/BFC_${i} -o /home/xuanzhan/Data/miRNA/exp/BFC_dump_${i}

sort -nk2 -r BFC_dump_${i} > BFCsorted_${i}
done
rm BFC_*

#bfc,coral运行成功;bfc未纠错(可能应该尝试其他参数)
cd /home/xuanzhan/Data/bin

./bfc -t28 18-25.fastq > bfc.fq

./coral -fq 18-25.fastq -o coral.fq

#karect没成功
karect -correct -inputfile=/dev/shm/p_t_chr1.fq  -celltype=diploid -matchtype=hamming -resultprefix=karect_
mv /dev/shm/karect_p_t_chr1.fq /dev/shm/karect_chr1.fq

#bcool 没成功
mkdir bcool
/home/xuanzhan/Data/Downloads/BCOOL/./Bcool -u ${id[${i}]}.fa -o bcool  -t 28
mv bcool/reads_corrected.fa L_bcool_${id[${i}]}.fa
rm -rf bcool/*

Reference

测序正负链和转录翻译正负链概念

[链特异RNA-seq数据不这么看就浪费了 antisense上的lncRNA-seq](http://blog.sciencenet.cn/home.php?mod=space&uid=3372875&do=blog&id=1090305)
[biostar handbook(五) 序列从何而来和质量控制](https://www.jianshu.com/p/ec4d63a8fa9f)