2017-03-27 14 views
1

私はpython3の初心者ですから、これはあなたにとって簡単な質問だと思います。 fastaファイルのヘッダーを印刷するときに、かっこが含まれています。どうすればそれらを削除できますか?出力で括弧を取り除く

import sys 
from Bio import Entrez 
from Bio import SeqIO 


#define email for entrez login 
db   = "nuccore" 
Entrez.email = "[email protected]" 

#load accessions from arguments 
if len(sys.argv[1:]) > 1: 
    accs = sys.argv[1:] 
else: #load accesions from stdin 
    accs = [ l.strip() for l in sys.stdin if l.strip() ] 
#fetch 
sys.stderr.write("Fetching %s entries from GenBank: %s\n" % (len(accs), ", ".join(accs[:10]))) 
for i,acc in enumerate(accs): 
    try: 
    sys.stderr.write(" %9i %s   \r" % (i+1,acc)) 
    handle = Entrez.efetch(db=db, rettype="fasta", id=acc) 
    seq_record = SeqIO.read(handle, "fasta") 

    if (len(seq_record.seq) > 0): 
     header = ">" + seq_record.description + " Len:" , len(seq_record.seq) 
     print(header) 
     print(seq_record.seq) 
    except: 
    sys.stderr.write("Error! Cannot fetch: %s  \n" % acc) 


./acc2fasta.py 163345 303239 

それは出力に括弧を取り除くためにどのように

(">M69206.1 Bovine MHC class I AW10 mRNA (haplotype AW10), 3' end Len:", 1379) 
TCCTGCTGCTCTCGGGGGTCCTGGTCCTGACCGAGACCCGGGCTGGCTCCCACTCGATGAGGTATTTCAGCACCGCCGTGTCCCGGCCCGGCCTCGGGGAGCCCCGGTACCTGGAAGTCGGCTACGTGGACGACACGCAGTTCGTGCGGTTTGACAGCGACGCCCCGAATCCGAGGATGGAGCCGCGGGCGCGGTGGGTGGAGCAGGAGGGGCCGGAGTATTGGGATCGGGAGACGCAAAGGGCCAAGGGCAACGCACAATTTTTCCGAGTGAGCCTGAACAACCTGCGCGGCTACTACAACCAGAGCGAGGCCGGGTCTCACACCCTCCAGTGGATGTCCGGCTGCTACGTGGGGCCGGACGGGCGTCCTCCGCGCGGGTTCATGCAGTTCGGCTACGACGGCAGAGATTACCTCGCCCTGAACGAGGACCTGCGCTCCTGGACCGCGGTGGAGACGATGGCTCAGATCTCCAAACGCAAGATGGAGGCGGCCGGTGAAGCTGAGGTACAGAGGAACTACCTGGAGGGCCGGTGCGTGGAGTGGCTCCGCAGATACCTGGAGAACGGGAAGGACACGCTGCTGCGCGCAGACCCTCCAAAGGCACATGTGACCCGTCACCCGATCTCTGGTCGTGAGGTCACCCTGAGGTGCTGGGCCCTGGGCTTCTACCCTGAAGAGATCTCACTGACCTGGCAGCGCAATGGGGAGGACCAGACCCAGGACATGGAGCTTGTGGAGACCAGGCCTTCAGGGGACGGAAACTTCCAGAAGTGGGCGGCCCTGTTGGTGCCTTCTGGAGAGGAGCAGAAATACACATGCCAAGTGCAGCACGAGGGGCTTCAGGAGCCCCTCACCCTGAAATGGGAACCTCCTCAGCCCTCCTTCCTCACCATGGGCATCATTGTTGGCCTGGTTCTCCTCGTGGTCACTGGAGCTGTGGTGGCTGGAGTTGTGATCTGCATGAAGAAGCGCTCAGGTGAAAAACGAGGGACTTATATCCAGGCTTCAAGCAGTGACAGTGCCCAGGGCTCTGATGTGTCTCTCACGGTTCCTAAAGTGTGAGACACCTGCCTTCGGGGGACTGAGTGATGCTTCATCCCGCTATGTGACATCAGATCCCCGGAACCCCTTTTTCTGCAGCTGCATCTGAATGTGTCAGTGCCCCTATTCGCATAAGTAGGAGTTAGGGAGACTGGCCCACCCATGCCCACTGCTGCCCTTCCCCACTGCCGTCCCTCCCCACCCTGACCTGTGTTCTCTTCCCTGATCCACTGTCCTGTTCCAGCAGAGACGAGGCTGGACCATGTCTATCCCTGTCTTTGCTTTATATGCACTGAAAAATGATATCTTCTTTCCTTATTGAAAATAAAATCTGTC 
Error! Cannot fetch: 303239   

を返します?

+0

理由@EdwinvanMierloブラケットがありますが、説明と長さを分離するコンマで 'tuple'を作成しているので、されています –

答えて

5
header = ">" + seq_record.description + " Len:" , len(seq_record.seq) 
    print(header) 

あなたは(予想)コンマで、そうすることによってtupleの表現を印刷しているだけでなく、括弧(不要)

最善の方法ではなく、データjoinになりますので、カンマが挿入されています文字列フィールドの間に、しかしtuple表現が省略されています

print(",".join(header)) 

あなたのケースでは、それは少しトリッカーです、あなたは文字列に文字列以外の引数を変換する必要があります(tuple表現がしました変換が、join)がない:

print(",".join([str(x) for x in header])) 

結果:

>M69206.1 Bovine MHC class I AW10 mRNA (haplotype AW10), 3' end Len:,1379 
関連する問題