Charpter 10 Sequence Pattern 模式匹配
Sequence Pattern序列模式:A sequence pattern is a sequence of bases described by certain rules.根据已有的序列模式来寻找看似杂乱无章的序列中是否有符合你目标的序列。
1. 正则表达式 Regular Expression
一个能在线查看你的正则表达式是否正确匹配目标词句的实用网站推荐:RegExr
正则表达式:用来匹配某个字符串的特征模板。在多门计算机语言中都可通用。
-
元字符metacharacter:
.
-
*
:注意贪婪法则,从匹配最多次开始 +
-
?
:从最少次开始往后匹配 {min,max}
-
(a)(b)\2\1
:反向引用 -
|
:择一匹配 -
\w \d \s \S \D \W \t \r \n -b $
&'...` - `^ $
-
egrep 命令常用参数
egrep 为拓展的grep 支持的元字符较多
-v 反向匹配
-c 计数
-e 匹配多个模式
-w 匹配整个单词
-n 输出表明行号
-i 忽略大小写
-A -B 同时输出后前几行
2. K-mers
K-mer:指一个长的字符串中所有 长度为K的子字符串。
K-mer用途:
- 纠错:稀有少见的K-mer可能是测序错误
- 分类:certain k-mer may uniquely identify genomes.基因组中特意的k-mers可以区分不同的物种
- Psudo-alignment:对参考基因建立Kmers的索引,然后通过将测序的reads的K-mer和参考基因的K-mer索引比较,从而对基因进行定量。
使用jellyfish来统计k-mers
# Get some sequence data.
efetch -id KU182908 -db nucleotide -format fasta > KU182908.fa
# Count the k-mers up to size 10.
jellyfish count -C -m 10 -s10M KU182908.fa
# Show a histogram of k-mers.
jellyfish histo mer_counts.jf
# The k-mers present at least 7 times.
jellyfish dump -L 7 mer_counts.jf
另外可用k-mer估算估算基因组,属于基因组survey中的一部分,杂合率/重复率/基因组大小
二代数据组装基因组——徐州更
Charpter 11 Sequence Alignments 序列联配
Sequence alignment(pairwise alignment): means arranging two sequences so that regions of their similarity line up.
联配的表示方法:
- 通常表示
-
-
: 表示gap -
|
:表示比对上 - '.' :表示错配,可能是位点突变导致
-
- 机器表示CIGAR位于SAM的第六行:4M3D3M1X2M1X1M2D
- M match
- D deletion
- X mismatch
序列联配的打分
根据不同的联配情况进行打分,匹配上5分,匹配错-4分,gap -10分,延续gap多扣0.5
全局比对 global alignments
在线全局比对网站:NEEDLE
全局比对尽可能保证两条序列的每个碱基都能匹对,不会对序列的两端gap进行惩罚
局部比对 local alignment
局部比对是尽可能找到那些子区域是最优的联配,然后按照得分矩阵,产生分数在阈值之内的比对结果。
在线局部比对网站Water
Alignment reliability depends on the information content of the aligned sequence itself. Alignments that include low complexity regions are typically less reliable. Additional analysis is typically needed to confirm these results.
多序列比对
mafft比对,其多序列比对效果要高于clustalX和muscle
mafft --auto in.fa >out_aln.fa
网友评论