Linux中實現根據scaffold名稱從fasta檔案中提取資料(scaffold名稱長)

小鲨鱼2018發表於2024-12-01

001、

(base) [sy20213040737@admin2 test]$ ls
chr.list  test.fa
(base) [sy20213040737@admin2 test]$ cat test.fa          ## 測試fasta檔案
>chr1 xxxx
aaaabbb
cccccddd
>chrx eee jj
aaaaaabbbbbc
cccccdddd
>chr3 iii rr
aaaaaaaaa
aaaaaaaaa
bbbbbbbb
>chry errrrr
aaaaaaaabbbb
bbbbbbbbb
>chrk iiiii
aaaaaaaaaaaaaaa
aaaaaaa
(base) [sy20213040737@admin2 test]$ cat chr.list          ## 提取的scaffold名稱
>chr1 xxxx
>chr3 iii rr
(base) [sy20213040737@admin2 test]$ awk '{if(NR == FNR){ay1[$1]} else {if($0 ~ /^>/ && $1 in ay1){pass = 0} else if($0 ~ /^>/ && !($1 in ay1)) {pass = 1}; if(pass == 0) {print $0}}}' chr.list test.fa     ## 提取程式
>chr1 xxxx
aaaabbb
cccccddd
>chr3 iii rr
aaaaaaaaa
aaaaaaaaa
bbbbbbbb

相關文章