1
這是我的第一篇文章。我想寫一個小腳本來統計一行中的多個獨特重複。該文本是一個DNA序列enter link description here,所以文本將是四個字母的組合:A,T,G和C. 如果一個字符串出現兩次,它將被計數兩次,以此類推。統計一行中的多個唯一字符串
我想查找的唯一字符串是三個AG,GA,CT或TC的重複,分別是(AG)3,(GA)3,(CT)3和(TC)3。我不想讓程序重複四次或更多次。
字符串數:
AGAGAG
GAGAGA
CTCTCT
TCTCTC
實施例輸入文件(由製表符分隔兩列):
Sequence_1 AGAGAG
Sequence_2 AGAGAGT
Sequence_3 AGAGAGAG
Sequence_4 AGAGAT
Sequence_5 AGAGAGAGAGAGAGAGAGT
Sequence_6 AGAGAGTAGAGAG
Sequence_7 CTCTCTCTCTC
Sequence_8 TAGAGAGAT
Sequence_9 TAAGAGAGAAG
希望的輸出:
Sequence_1 AGAGAG 1
Sequence_2 AGAGAGT 1
Sequence_3 AGAGAGAG 0
Sequence_4 AGAGAT 0
Sequence_5 AGAGAGAGAGAGAGAGAG 0
Sequence_6 AGAGAGTAGAGAG 2
Sequence_7 CTCTCTCTCTCAAGAGAG 1
Sequence_8 TAGAGAGAT 1
Sequence_9 TAAGAGAGAAG 1
我有一個小單使用awk編寫的內襯,但我認爲在匹配字符串時沒有具體說明:
awk '{if($1 ~ /AGAGAG/)x++; if($1 ~ /TCTCTC/)x++;if($1 ~ /GAGAGA/)x++;if($1 ~ /CTCTCT/)x++;print x;x=0}' inputfile.tab
非常感謝您的幫助。一切順利,Bernardo
嗨janos。當然,Sequence_3必須有零個計數。雖然它包含字符串(GA)3,但它同時位於(AG)4內,因此不應該算作正數。對不起,如果我沒有足夠的重點! – biotech
我修改了腳本,爲您的輸入生成所需的輸出。但我不確定它處理所有的角落案件。測試一下,如果你發現一個處理不當的情況,那麼更新你的問題中的樣本。 – janos
嗨janos,我添加了序列8和9.由於一個角的後面跟着$ s的第一個字符或之前是$ s的第二個字符,因此計數爲負數。我們應該修改腳本以容忍這種情況之一,但不能同時處理這兩種情況。那是對的嗎? – biotech