繁体   English   中英

使用csv python自动编写标题

[英]Automatically writing headers using csv python

我正在尝试编写一个主题查找函数,该函数以氨基酸 fasta 作为输入并在 excel 文件中输出一个主题。

我想要的输出看起来像这样..

SeqName     M1      Hits    M2          Hits
Seq1        MN[A-Z] 3       V[A-Z]R[ML] 2
Seq2        MN[A-Z] 0       V[A-Z]R[ML] 5
Seq3        MN[A-Z] 1       V[A-Z]R[ML] 0

我一直在尝试自动生成标题,因为我要搜索的图案超过 2。(在上面的示例中,只有两个(M1 和 M2))。

我一直在处理的代码看起来像这样..

import re
from Bio import SeqIO
import csv
import collections

def SearchMotif(f1, motif, f2="motifs1.xls"):
    with open(f1, 'r') as fin, open(f2,'wb') as fout:
        writer = csv.writer(fout, delimiter = '\t')

        writer.writerow(['M%s'%(i+1)for i in range(0,len(motif),1)])
        writer.writerow(['Hits' for i in range(0,len(motif),1)])

这会产生

M1      M2
Hits    Hits

有什么办法可以让我的标题行看起来像我想要的输出?

命中是静态的,但 M1 会随着主题的长度而增加。 所以如果我有 5 种不同类型的图案要搜索,它会像..

SeqName    M1    Hits    M2    Hits    M3    Hits    M4    Hits    M5    Hits

很简单。 制作标题行,

>>> headerrow = ['SeqName']
>>> for i in range(1,6):
...   headerrow.append('M%d' % i)
...   headerrow.append('Hits')
...
>>> headerrow
['SeqName', 'M1', 'Hits', 'M2', 'Hits', 'M3', 'Hits', 'M4', 'Hits', 'M5', 'Hits']

和写。

writer.writerow(headerrow)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM