我在生物信息學的工作,我需要在這看起來像大文件計算的模式,如GATTACCA:
「ATTTCCCGATCCGAG GATT(/ N)
ACCA CGTAGATGATACACGT(etc)「 有沒有辦法讓Grep忽略/ n換行符? 感謝您的幫助!用grep搜索超過multipile行模式
1
A
回答
1
我想這可能就是你所想要的東西:
tr -d '\n' < file | grep -o GATTACCA
它(臨時)從文件(使用tr
及其-d
選項刪除)傳遞到grep
之前移除換行。
+0
謝謝!這工作到目前爲止最簡單... 現在...任何想法如何解析成python? 我知道如何在python中使用簡單的linux命令,但不知道如何管道... – MrJanx
1
你可以做到這一點通過awk和grep來算在你的文件的話GATTACCA
的出現次數,
awk -v RS="\0" '{gsub (/\n/,""); print}' file | grep -o 'GATTACCA' | wc -l
說明:
RS="\0" # Turns the input file into a single record.
gsub (/\n/,"") # Removes all the \n character.
grep -o 'GATTACCA' # From the awk output, it fetches the string GATTACCA and prints every match in a new line.
wc -l # To count the number of lines
0
你已經有兩個很好的通用答案。另一種方法是使用sed
:
perl -pe 's/\n//' file | grep -o GATACA
但是,如果你在FASTA文件時,這可以是有趣:
#! /bin/sh
gawk '{
if (substr($1,1,1)==">")
if (NR>1)
printf "\n%s\t", substr($0,2,length($0)-1)
else
printf "%s\t", substr($0,2,length($0)-1)
else
printf "%s", $0
}END{printf "\n"}' "[email protected]"
上面的腳本改變FASTA格式TBL(SEQ IDsequence,所有在同一行上)。我經常用它來grepping:
FastaToTbl foo.fa | grep GATTACA
我也有一個TblToFasta恢復原來的:
#! /bin/sh
# tbl-to-fasta.awk transforms a tbl file into a fasta file, 60 columns per record
# usage=gawk -f tbl-to-fasta TBL_FILE
gawk '{
sequence=$NF
ls = length(sequence)
is = 1
fld = 1
while (fld < NF)
{
if (fld == 1){printf ">"}
printf "%s " , $fld
if (fld == NF-1)
{
printf "\n"
}
fld = fld+1
}
while (is <= ls)
{
printf "%s\n", substr(sequence,is,60)
is=is+60
}
}' "[email protected]"
1
相關問題
- 1. 模式搜索Grep
- 2. 使用grep多個搜索模式
- 3. 使用grep進行搜索
- 4. grep的搜索特定的模式
- 5. grep,如何搜索確切模式?
- 6. Grep/Sed/Awk塊和搜索模式
- 7. 混亂上的grep模式搜索
- 8. 搜索超過使用NSPredicate
- 9. 使用正則表達式grep搜索
- 10. 使用grep來搜索R中的行
- 11. Bash腳本使用Grep來搜索文件中的模式
- 12. 使用grep搜索多個模式的函數
- 13. Vim多行搜索模式
- 14. 通行證搜索模式
- 15. 使用grep來搜索
- 16. Bash使用存儲在文件中的模式執行多個grep搜索
- 17. Grep命令搜索
- 18. grep搜索替換
- 19. 多的grep搜索
- 20. 遞歸搜索grep
- 21. grep的挑戰 - 搜索任意數量的字符後提取搜索模式
- 22. 通過PostgreSql函數搜索'grep-alike'
- 23. 模式搜索()
- 24. 模式搜索
- 25. 搜索超過Rails中
- 26. grep命令不是搜索完整模式
- 27. 帶模式文件的反向grep搜索?
- 28. 在grep搜索中返回行嗎?
- 29. 在grep搜索後顯示n行
- 30. jedi-vim自動完成。通過grep式搜索完成
你只是需要的數'GATT \ nACCA'發生?這個文件有多大? – Kent
檔案有多大?其次 - grep通過換行符識別,所以它不能匹配它。但是你可以使用「tr」來替換換行符和空格,但是再次,文件有多大? –