LDT*_*LDT 5 python bash awk biopython
我有一个包含数千个登录号的文件:
看起来像这样..
>NC_033829.1 Kallithea virus isolate DrosEU46_Kharkiv_2014, complete genome
AGTCAGCAACGTCGATGTGGCGTACAATTTCTTGATTACATTTTTGTTCCTAACAAAATGTTGATATACT
>NC_020414.2 Escherichia phage UAB_Phi78, complete genome
TAGGCGTGTGTCAGGTCTCTCGGCCTCGGCCTCGCCGGGATGTCCCCATAGGGTGCCTGTGGGCGCTAGG
Run Code Online (Sandbox Code Playgroud)
如果想将其拆分为多个文件,每个文件都有一个登录号,那么我可以使用以下代码
awk -F '|' '/^>/ {F=sprintf("%s.fasta",$2); print > F;next;} {print >> F;}' < yourfile.fa
Run Code Online (Sandbox Code Playgroud)
我有一个包含数千个登录号(又名 >NC_*)的文件,并希望将其拆分,例如每个文件包含约 5000 个登录号。因为我是 awk/bash/python 的新手,所以我很难找到一个巧妙的解决方案
任何想法或评论表示赞赏
从您的问题中尚不清楚每个输入块的“登录号”是唯一的(不要假设阅读您问题的人了解有关您的域的任何信息 - 对我们来说这只是文本行)。如果您的问题只是说您希望每个输出文件有 5000 个换行符分隔的块而不是 5000 个登录号,那么情况会更清楚。
看到您发布的答案后,现在很清楚您应该使用以下内容:
awk -v RS= -v ORS='\n\n' '
(NR%5000) == 1 { close(out); out="myseq"(++n_seq)".fa" }
{ print > out }
' my_sequences.fa
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |