Biostar學(xué)習(xí)筆記(6)正則表達(dá)式和序列比對(duì)

正則表達(dá)式

學(xué)習(xí)資料:

Intro to Regular expressions

30分鐘入門正則表達(dá)式

為什么要學(xué)習(xí)正則表達(dá)式:在進(jìn)行基因序列比對(duì)的時(shí)候配椭,需要對(duì)每個(gè)基因的特定序列進(jìn)行匹配星压、評(píng)分花沉,匹配規(guī)則往往比較復(fù)雜,正則表達(dá)式可以高效的實(shí)現(xiàn)這一需求督暂。
入門知識(shí)點(diǎn):

  1. \b是正則表達(dá)式規(guī)定的一個(gè)特殊代碼(好吧裳食,某些人叫它元字符哆姻,metacharacter),代表著單詞的開頭或結(jié)尾,也就是單詞的分界處封断。雖然通常英文的單詞是由空格斯辰,標(biāo)點(diǎn)符號(hào)或者換行來(lái)分隔的,但是\b并不匹配這些單詞分隔字符中的任何一個(gè)坡疼,它只匹配一個(gè)位置彬呻。

舉例:從him,history,high,hi中查找hi這個(gè)單詞,需要使用的正則表達(dá)式為:\bhi\b

假如你要找的是hi后面不遠(yuǎn)處跟著一個(gè)Lucy柄瑰,你應(yīng)該用\bhi\b.*\bLucy\b

*同樣是元字符闸氮,不過它代表的不是字符,也不是位置教沾,而是數(shù)量——它指定*前邊的內(nèi)容可以連續(xù)重復(fù)使用任意次以使整個(gè)表達(dá)式得到匹配湖苞。

0\d\d-\d\d\d\d\d\d\d\d匹配這樣的字符串:以0開頭,然后是兩個(gè)數(shù)字详囤,然后是一個(gè)連字號(hào)“-”财骨,最后是8個(gè)數(shù)字(也就是中國(guó)的電話號(hào)碼。當(dāng)然藏姐,這個(gè)例子只能匹配區(qū)號(hào)為3位的情形)隆箩。

\d是個(gè)新的元字符,匹配一位數(shù)字(0羔杨,或1捌臊,或2,或……)兜材。

-不是元字符理澎,只匹配它本身

為了避免那么多煩人的重復(fù),我們也可以這樣寫這個(gè)表達(dá)式:0\d{2}-\d{8}曙寡。這里\d后面的{2}({8})的意思是前面\d必須連續(xù)重復(fù)匹配2次(8次)糠爬。

元字符

代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束

表1.常用的元字符

代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞的開始或結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束

字符轉(zhuǎn)義

特殊字符字符轉(zhuǎn)義符:\
主要用于解決*.等特殊字符在正則表達(dá)式中無(wú)法代表其自身的問題。

*表達(dá)方式: \*

.表達(dá)方式:\.

重復(fù)

代碼/語(yǔ)法 說明
* 重復(fù)零次或更多次
+ 重復(fù)一次或更多次
? 重復(fù)零次或一次
{n} 重復(fù)n次
{n,} 重復(fù)n次或更多次
{n,m} 重復(fù)n到m次

表2.常用的限定符

代碼/語(yǔ)法 說明
* 重復(fù)零次或更多次
+ 重復(fù)一次或更多次
? 重復(fù)零次或一次
{n} 重復(fù)n次
{n,} 重復(fù)n次或更多次
{n,m} 重復(fù)n到m次

字符類

要想查找數(shù)字举庶,字母或數(shù)字执隧,空白是很簡(jiǎn)單的,因?yàn)橐呀?jīng)有了對(duì)應(yīng)這些字符集合的元字符户侥,但是如果你想匹配沒有預(yù)定義元字符的字符集合(比如元音字母a,e,i,o,u)需要自己制定規(guī)則:如[aeiou]就匹配任何一個(gè)英文元音字母镀琉,[.?!]匹配標(biāo)點(diǎn)符號(hào)(.或?或!)。

\(?0\d{2}[) -]?\d{8}
“(”和“)”也是元字符蕊唐,后面的分組節(jié)里會(huì)提到屋摔,所以在這里需要使用轉(zhuǎn)義。
這個(gè)表達(dá)式可以匹配幾種格式的電話號(hào)碼替梨,像(010)88886666钓试,或022-22334455署尤,或02912345678等。我們對(duì)它進(jìn)行一些分析吧:首先是一個(gè)轉(zhuǎn)義字符(,它能出現(xiàn)0次或1次(?),然后是一個(gè)0亚侠,后面跟著2個(gè)數(shù)字(\d{2})曹体,然后是)或-或空格中的一個(gè),它出現(xiàn)1次或不出現(xiàn)(?)硝烂,最后是8個(gè)數(shù)字(\d{8})箕别。

分枝條件

正則表達(dá)式里的分枝條件指的是有幾種規(guī)則,如果滿足其中任意一種規(guī)則都應(yīng)該當(dāng)成匹配滞谢,具體方法是用|把不同的規(guī)則分隔開串稀。其實(shí)就是將所有可能的正則表達(dá)式用|連接起來(lái)啦~

0\d{2}-\d{8}|0\d{3}-\d{7}這個(gè)表達(dá)式能匹配兩種以連字號(hào)分隔的電話號(hào)碼:一種是三位區(qū)號(hào),8位本地號(hào)(如010-12345678)狮杨,一種是4位區(qū)號(hào)母截,7位本地號(hào)(0376-2233445)。
注意:
使用分枝條件時(shí)橄教,要注意各個(gè)條件的順序清寇。

分組

用小括號(hào)來(lái)指定子表達(dá)式(也叫做分組),然后你就可以指定這個(gè)子表達(dá)式的重復(fù)次數(shù)了护蝶,你也可以對(duì)子表達(dá)式進(jìn)行其它一些操作(后面會(huì)有介紹)华烟。

(\d{1,3}.){3}\d{1,3}是一個(gè)簡(jiǎn)單的IP地址匹配表達(dá)式。要理解這個(gè)表達(dá)式持灰,請(qǐng)按下列順序分析它:\d{1,3}匹配1到3位的數(shù)字盔夜,(\d{1,3}.){3}匹配三位數(shù)字加上一個(gè)英文句號(hào)(這個(gè)整體也就是這個(gè)分組)重復(fù)3次,最后再加上一個(gè)一到三位的數(shù)字(\d{1,3})堤魁。

反義

有時(shí)需要查找不屬于某個(gè)能簡(jiǎn)單定義的字符類的字符喂链。比如想查找除了數(shù)字以外,其它任意字符都行的情況妥泉,這時(shí)需要用到反義:

代碼/語(yǔ)法 說明
\W 匹配任意不是字母椭微,數(shù)字,下劃線涛漂,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或結(jié)束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個(gè)字母以外的任意字符

表3.常用的反義代碼

代碼/語(yǔ)法 說明
\W 匹配任意不是字母赏表,數(shù)字检诗,下劃線匈仗,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或結(jié)束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個(gè)字母以外的任意字符

例子:\S+匹配不包含空白符的字符串。
<a[^>]+>匹配用尖括號(hào)括起來(lái)的以a開頭的字符串逢慌。

以上是一些基礎(chǔ)類正則表達(dá)式悠轩,高級(jí)進(jìn)階還請(qǐng)看鏈接腫作者給的更詳細(xì)的示例。強(qiáng)烈推薦看開頭的鏈接網(wǎng)站攻泼,真的是30分鐘入門正則表達(dá)式~
linux中可以使用grep配合正則表達(dá)式抓取符合一定特征的字符火架。

k-mer簡(jiǎn)介

The term k-mer typically refers to all the possible substrings of length k that are contained in a string.
k-mer主要有以下一些用途:

  1. 糾錯(cuò):出現(xiàn)少的k-mer可能是測(cè)序錯(cuò)誤
  2. 分類:一些特殊的k-mer可能鑒定基因組
  3. 偽比對(duì):新的偽比對(duì)軟件可以直接利用常見的k-mer來(lái)定位reads

k-mer計(jì)算要遠(yuǎn)遠(yuǎn)快于序列比對(duì)鉴象,因此可以加快比對(duì)效率。

序列比對(duì)

序列比對(duì)是生物信息學(xué)最為核心的概念何鸡。
在顯示序列比對(duì)結(jié)果時(shí)纺弊,-代表空缺,|代表匹配骡男,.代表錯(cuò)配淆游。示例:

ATGCAAATGACAAATAC
|||| |||.||.|
ATGC---TGATAACT--

如果沒有特殊說明,一般是用下面的序列和上面的序列進(jìn)行比對(duì)隔盛,上面的結(jié)果說明序列有5個(gè)堿基缺失和2個(gè)堿基錯(cuò)配犹菱。

ATGC---TGATAACT--
|||| |||.||.|
ATGCAAATGACAAATAC
這種序列比對(duì)結(jié)果說明序列有5個(gè)插入堿基和2個(gè)錯(cuò)配堿基。
序列比對(duì)結(jié)果與評(píng)分規(guī)則有很大關(guān)系吮炕。
常用堿基匹配評(píng)分規(guī)則 EDNAFULL scoring matrix腊脱。

curl -O  ftp://ftp.ncbi.nlm.nih.gov/blast/matrices/NUC.4.4
cat NUC.4.4

序列比對(duì)評(píng)分分為堿基(基因)匹配規(guī)則和蛋白匹配評(píng)分規(guī)則兩種。
序列比對(duì)結(jié)果和匹配規(guī)則的選取有很大關(guān)系龙亲。如果要深入了解陕凹,建議閱讀更多的參考資料。我也需要再深入學(xué)習(xí)一下鳄炉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捆姜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子迎膜,更是在濱河造成了極大的恐慌泥技,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件磕仅,死亡現(xiàn)場(chǎng)離奇詭異珊豹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)榕订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門店茶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人劫恒,你說我怎么就攤上這事贩幻。” “怎么了两嘴?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵丛楚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我憔辫,道長(zhǎng)趣些,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任贰您,我火速辦了婚禮坏平,結(jié)果婚禮上拢操,老公的妹妹穿的比我還像新娘。我一直安慰自己舶替,他們只是感情好令境,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著顾瞪,像睡著了一般展父。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玲昧,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天栖茉,我揣著相機(jī)與錄音,去河邊找鬼孵延。 笑死吕漂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尘应。 我是一名探鬼主播惶凝,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼犬钢!你這毒婦竟也來(lái)了苍鲜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤玷犹,失蹤者是張志新(化名)和其女友劉穎混滔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歹颓,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坯屿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巍扛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片领跛。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖撤奸,靈堂內(nèi)的尸體忽然破棺而出吠昭,到底是詐尸還是另有隱情,我是刑警寧澤胧瓜,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布矢棚,位于F島的核電站,受9級(jí)特大地震影響贷痪,放射性物質(zhì)發(fā)生泄漏幻妓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一劫拢、第九天 我趴在偏房一處隱蔽的房頂上張望肉津。 院中可真熱鬧,春花似錦舱沧、人聲如沸妹沙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)距糖。三九已至,卻和暖如春牵寺,著一層夾襖步出監(jiān)牢的瞬間悍引,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工帽氓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趣斤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓黎休,卻偏偏與公主長(zhǎng)得像浓领,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子势腮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容