Biostar 第七课01 模式识别

模式识别的bash工具 grep egrep dreg 和 fuzznuc

dreg -filter -pattern  AAAAAA
fuzznuc -filter -pattern 'AANAA'

通配符
{m,n} 前面的字母出现次数在m和n之间

#找ATG开头的额
egrep "^ATG" --color=always
# ATG结尾的
egrep "ATG\$" --color=always
#找两个TA间有A或者T的
egrep "TA[A,T]TA" --color=always 
#找两个TA间夹着AA或者CC的
egrep "TA(AA|CC)TA" --color=always
#找两个TA见可能有零个或者多个连续的A的
egrep "TA(A*)TA" --color=always
#两个TA间有至少一个连续的A的
egrep "TA(A+)TA" --color=always
#两个TA间有2到5个连续的A的
egrep "TAA{2,5}TA" --color=always
#找一下illumina的通用引物
egrep "AGATCGG.*" --color=always

寻找基因组中的端粒序列,这个比较有趣,看作者是怎样一步步的优化自己的程序的

#因为会wrap,所以不能很有效工作
egrep -i '(TTAGGG)' --color=always
#稍微改一下,出现3到10次的端粒片段的
egrep -i '(TTAGGG){3,10}' --color=always
#把\n去掉就可以搞定wrap这个问题了,这个还真是可以试试
tr -d '\n' | egrep -o -i '(TTAGGG){20,30}' --color=always

还有一个工具就是dreg,这个不用自己去掉wrap

dreg -filter -pattern '(TTAGGG){20,30}' 

Kmer用途
1 矫正测序错误,一般来说罕见低频的Kmer可能是由于测序错误产生的
2 分类,有一些k mer可以用来作为基因组的标志,我的理解是区分不同物种的基因组,这个不太确定
3 Pseudo-alignment 不知道怎么翻译这个,基于共同的kmer就可以将reads正确的基因组坐标搞定,貌似用这个原理的aligner速度都很快,不论是构建索引还是align,几分钟就可以搞定

k-mer的搜寻工具 jellyfish

#把十个以内的k mer都搜出来
jellyfish count -C -m 10 -s10M KU182908.fa 
# 然后用结果画个hist图
jellyfish histo mer_counts.jf 
#根据结果寻找至少出现7次的k mer
jellyfish dump -L 7  mer_counts.jf
#找一个 TTAAGAAAAA 的kmer
cat KU182908.fa | dreg -filter -pattern TTAAGAAAAA

fastqc的kmer就别太当真了,因为如果长的kmer出现的话,还会有衍生出的短kmer被反复统计,结果偏差太大

你可能感兴趣的:(Biostar 第七课01 模式识别)