基本上,GenBank文件由基因条目组成(由“gene”声明,然后是相应的“CDS”条目(每个基因只有一个条目),就像下面我展示的两个条目一样。我想在一个以制表符分隔的两列文件中获取location_tag vs product“gene”和“CDS”前面和后面总是有空格。在
A previous question suggested a script.
问题是,似乎因为“product”的名称中有时有“/”字符,它与此脚本有冲突,据我所知,是使用“/”作为字段分隔符来存储数组中的信息?在
我想解决这个问题,要么修改这个脚本,要么构建另一个脚本。在
perl -nE'
BEGIN{ ($/, $") = ("CDS", "\t") }
say "@r[0,1]" if @r= m!/(?:locus_tag|product)="(.+?)"!g and @r>1
' file
gene complement(8972..9094)
/locus_tag="HAPS_0004"
/db_xref="GeneID:7278619"
CDS complement(8972..9094)
/locus_tag="HAPS_0004"
/codon_start=1
/transl_table=11
/product="hypothetical protein"
/protein_id="YP_002474657.1"
/db_xref="GI:219870282"
/db_xref="GeneID:7278619"
/translation="MYYKALAHFLPTLSTMQNILSKSPLSLDFRLLFLAFIDKR"
gene 68..637
/locus_tag="HPNK_00040"
CDS 68..637
/locus_tag="HPNK_00040"
/codon_start=1
/transl_table=11
/product="NinG recombination protein/bacteriophage lambda
NinG family protein"
/protein_id="CRESA:HPNK_00040"
/translation="MIKPKVKKRKCKCCGGEFKSADSFRKWCSAECGVKLAKIAQEKA
RQKAIEKRNREERAKIKATRERLKSRSEWLKDAQAIFNEYIRLRDKDEPCISCRRFHQ
GQYHAGHYRTVKAMPELRFNEDNVHKQCSACNNHLSGNITEYRINLVRKIGAERVEAL
ESYHPPVKWSVEDCKEIIKTYRAKIKELK"
{geni在网上找到了一个样本文件}不完整。在
使用这段代码和^{} 模块,对它进行解析,猜测您要查找的是结构的哪些部分。在本例中,包含
locus_tag
字段和product
字段的“特性”。在用法:
^{pr2}$输出:
同一输入的一个行程序的输出将是:
当然,假设您将
/s
修饰符添加到regex中以说明多行条目(这是leeduhem在注释中指出的):读过你重复的问题http://www.biostars.org/p/94164/(请不要像这样重复发帖),下面是一个最小的Biopython答案:
只需稍作修改,您就可以将其写入文件。在
相关问题 更多 >
编程相关推荐