Bash
重命名生物資訊學中multifasta文件的標題
這是我的 file1.fa(seqID, \t, sequence),它不是標準的 fasta 格式文件。
abc MFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNISGPGGTGKTFLMSHLIDDTMPA cef AFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNESGPGGTGKTFLMSHLIDDTMFA rig AAAAAAAAAAAAAAAAAAAAAAAAAAGGEGKFKKKKKSKKKKKKKKKKKKKKKKKKK
現在我想將其轉換為標準的 fasta 格式,如下所示:
>abc MFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNISGPGGTGKTFLMSHLIDDTMPA >cef AFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNESGPGGTGKTFLMSHLIDDTMFA >rig AAAAAAAAAAAAAAAAAAAAAAAAAAGGEGKFKKKKKSKKKKKKKKKKKKKKKKKKK
我試過這樣,但我不知道如何添加“>”,有人可以幫助我嗎?
less -S file1.fa | sed 's/\t/\n/g' > file2.fa
您可以簡單地使用
sed
而不使用less
. 您還可以就地編輯文件,而無需將輸出重定向到新文件。您的
sed
命令將變為:sed -i'.bak' 's/\(.*\)\t/>\1\n/g' file1.fa
或者,如果您不想*就地編輯,*您可以使用:
sed 's/\(.*\)\t/>\1\n/g' file1.fa > file2.fa
使用Raku(以前稱為 Perl_6)
raku -pe 's/^ (<:Ll>+) (\s) />$0\n/;' #OR raku -pe 's/^ <((<:Ll>+) (\s))> <:Lu>+ />$0\n/;'
這些答案使用 Raku 的
:Ll
(Unicode 字母小寫)和:Lu
(Unicode 字母大寫)字元類定義:https://docs.raku.org/language/regexes#Unicode_properties
如果您願意,您可以簡單地替換
\S+
以表示一個或多個非空白字元。您還可以更改\s
為更具體的\t
令牌。在第二個範例中,Raku 的
<(
……)>
擷取標記指示 Raku 將所有內容從匹配對像中刪除,因此<:Lu>+
在替換中匹配但未刪除。樣本輸入:
abc MFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNISGPGGTGKTFLMSHLIDDTMPA cef AFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNESGPGGTGKTFLMSHLIDDTMFA rig AAAAAAAAAAAAAAAAAAAAAAAAAAGGEGKFKKKKKSKKKKKKKKKKKKKKKKKKK
樣本輸出:
>abc MFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNISGPGGTGKTFLMSHLIDDTMPA >cef AFSKPTKAPLNKGQEAVAKEFFDFLLDPNATEFNESGPGGTGKTFLMSHLIDDTMFA >rig AAAAAAAAAAAAAAAAAAAAAAAAAAGGEGKFKKKKKSKKKKKKKKKKKKKKKKKKK
https://docs.raku.org/language/regexes