我有一个包含数千个登录号的文件:
看起来像这样
>NC_033829.1 Kallithea virus isolate DrosEU46_Kharkiv_2014, complete genome
AGTCAGCAACGTCGATGTGGCGTACAATTTCTTGATTACATTTTTGTTCCTAACAAAATGTTGATATACT
>NC_020414.2 Escherichia phage UAB_Phi78, complete genome
TAGGCGTGTGTCAGGTCTCTCGGCCTCGGCCTCGCCGGGATGTCCCCATAGGGTGCCTGTGGGCGCTAGG
如果要将其拆分为多个文件,每个文件都有一个登录号,那么我可以使用以下代码
awk -F '|' '/^>/ {F=sprintf("%s.fasta",$2); print > F;next;} {print >> F;}' < yourfile.fa
我有一个包含数千个登录号(aka>;NC_*)的文件,并希望将其拆分,例如每个文件包含约5000个登录号。因为我是awk/bash/python新手,所以我很难找到一个简洁的解决方案
任何想法或意见都将不胜感激
非常感谢你的回答,我学到了很多。我真正想做的是将multifasta文件拆分为具有相同登录号的文件。经过一场漫长的战斗,在一位同事的帮助下,以下是我的答案
在这里,您可以创建新的fasta文件,其中每个文件都有5000个登录号或标题
谢谢大家
从您的问题中不清楚“登录号”在每个输入块中是唯一的(不要假设阅读您问题的人对您的域有任何了解-对我们来说,这只是一行行文字)。如果您将问题措辞为每个输出文件只需要5000个新行分隔块,而不是5000个登录号,则会更清楚
看到您发布的答案后,现在很清楚您应该使用以下内容:
假设:部分由空行分隔
算法:
Awk术语:“记录”将是我们的节-文件的一部分,用空行分隔(即两个换行符一个接一个。“字段”通常用空格分隔-用空格分隔或
>
字符第二个字段将是登录号只需将记录分隔符设置为两个换行符,将字段分隔符设置为
>
或空格,然后将该行输出到名为with second field的文件:@edit将
>
更改为>>
,将RS='\n\n'
更改为RS=''
@edit并添加了close
相关问题 更多 >
编程相关推荐