【发布时间】:2018-09-23 00:31:42
【问题描述】:
我经常需要使用从其他程序/代码生成的表格将大型 multifasta 解析为单独的 multifasta 以进行下游对齐。
我有一个大的 multifasta (seq.fa):
>sp1_gene1
ATTAC
>sp1_gene2
CCATTA
...
>sp2_gene1
ATTAC
>sp1_gene2
TCGAGT
我有一个 tsv 文件,第一列中包含基因座名称,后续列中包含标题列表。每行中的字段数可能不相等,因为一个物种可能没有它。但是我可以很容易地为每个物种添加标题,并为丢失的数据输入NA 或类似的东西。表(genes.tsv):
geneA sp1_gene3 sp2_gene1
geneB sp1_gene5 sp2_gene7
...
我想使用基因表来创建带有标题和序列的单个 multifastas(最好使用第一列中的名称)以获得如下内容:
cat geneA.fa
>sp1_gene3
ATTAC
>sp2_gene1
ATTAC
...
cat geneB.fa
>sp1_gene5
TCGAGT
>sp2_gene7
ATTAC
...
我熟悉 bash(awk、grep、sed),并且还在学习 R 和 python 的生物信息学。我最初是在 bash 中将表格拆分为单独的文件,将 fasta 转换为 csv,然后 grepping 并加入,但它真的很乱,并不总是有效。关于可以做到这一点的脚本或包的任何建议? 谢谢!
【问题讨论】:
-
抱歉,我没有时间回答这个问题。可以使用
biopython来完成。使用biopython读入seq.fa文件,然后循环遍历genes.tsv文件并使用if语句检查fasta 标头是否与基因列表匹配,然后附加到列表中。
标签: bioinformatics biopython fasta bioconductor