摆脱输出中的括号

dav*_*vid 1 python bioinformatics biopython python-3.x

我认为这对你来说是一个简单的问题,因为我是python3的初学者.打印fasta文件的标题时,它包含括号.我怎么能删除它们?

import sys
from Bio import Entrez
from Bio import SeqIO


#define email for entrez login
db           = "nuccore"
Entrez.email = "someone@email.com"

#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
Run Code Online (Sandbox Code Playgroud)

它会回来

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

如何摆脱输出中的括号?

Jea*_*bre 5

  header = ">" + seq_record.description + " Len:" , len(seq_record.seq)
  print(header)
Run Code Online (Sandbox Code Playgroud)

tuple用逗号(预期)打印了这样做的表示,但也用括号(不需要的)打印

最好的方法是改为join数据,因此在字符串字段之间插入逗号,但tuple省略了表示:

print(",".join(header))
Run Code Online (Sandbox Code Playgroud)

在你的情况下,它是一个小的tricker,你必须将非字符串参数转换为字符串(tuple表示转换,但join没有):

print(",".join([str(x) for x in header]))
Run Code Online (Sandbox Code Playgroud)

结果:

>M69206.1 Bovine MHC class I AW10 mRNA (haplotype AW10), 3' end Len:,1379
Run Code Online (Sandbox Code Playgroud)