模式識別的bash工具 grep egrep dreg 和 fuzznuc
dreg -filter -pattern AAAAAA
fuzznuc -filter -pattern 'AANAA'
通配符
{m,n} 前面的字母出現(xiàn)次數(shù)在m和n之間
#找ATG開頭的額
egrep "^ATG" --color=always
# ATG結(jié)尾的
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見可能有零個或者多個連續(xù)的A的
egrep "TA(A*)TA" --color=always
#兩個TA間有至少一個連續(xù)的A的
egrep "TA(A+)TA" --color=always
#兩個TA間有2到5個連續(xù)的A的
egrep "TAA{2,5}TA" --color=always
#找一下illumina的通用引物
egrep "AGATCGG.*" --color=always
尋找基因組中的端粒序列,這個比較有趣,看作者是怎樣一步步的優(yōu)化自己的程序的
#因為會wrap瘫析,所以不能很有效工作
egrep -i '(TTAGGG)' --color=always
#稍微改一下扫腺,出現(xiàn)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可能是由于測序錯誤產(chǎn)生的
2 分類,有一些k mer可以用來作為基因組的標(biāo)志醉者,我的理解是區(qū)分不同物種的基因組但狭,這個不太確定
3 Pseudo-alignment 不知道怎么翻譯這個,基于共同的kmer就可以將reads正確的基因組坐標(biāo)搞定撬即,貌似用這個原理的aligner速度都很快立磁,不論是構(gòu)建索引還是align,幾分鐘就可以搞定
k-mer的搜尋工具 jellyfish
#把十個以內(nèi)的k mer都搜出來
jellyfish count -C -m 10 -s10M KU182908.fa
# 然后用結(jié)果畫個hist圖
jellyfish histo mer_counts.jf
#根據(jù)結(jié)果尋找至少出現(xiàn)7次的k mer
jellyfish dump -L 7 mer_counts.jf
#找一個 TTAAGAAAAA 的kmer
cat KU182908.fa | dreg -filter -pattern TTAAGAAAAA
fastqc的kmer就別太當(dāng)真了剥槐,因為如果長的kmer出現(xiàn)的話息罗,還會有衍生出的短kmer被反復(fù)統(tǒng)計,結(jié)果偏差太大