1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #!/usr/bin/python
#-*- coding: utf-8 -*-
import re
import sys
from Bio import Entrez
from Bio import SeqIO
###variables########
Entrez.email=sys.argv[2]##ton adresse mail
nums=sys.argv[1]##JN403374-JN406266 pour récupérer (par exemple) les séquences nucléotidiques JN403374, JN403375, .. , JN406266
################
var=""
split=nums.split("-")
head=re.match("^([^\d]+)(\d+)$",split[0]).group(1)
start=int(re.match("^([^\d]+)(\d+)$",split[0]).group(2))
stop=int(re.match("^([^\d]+)(\d+)$",split[1]).group(2))
for i in range (start,stop+1):
gi="{0}{1}".format(head,i)
handle=Entrez.efetch(db='nucleotide',id=gi,rettype="gb")# Accession id works, returns genbank format, looks in the 'nucleotide' database
record = SeqIO.read(handle, "genbank")
handle.close()
var=var+">{0}\n{1}\n".format(gi,record.seq)
######menu au choix######
##output dans terminal##
#print var
##output dans fichier###
file=open("{0}.fasta".format(nums),'w')
file.write(var)
file.close()
###################### |
Partager