Mercurial > repos > jasper > dna_protein_transle
comparison translate.py @ 0:a55eb751d2d8 draft
Uploaded
author | jasper |
---|---|
date | Tue, 09 May 2017 13:09:07 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a55eb751d2d8 |
---|---|
1 import sys | |
2 import warnings | |
3 import argparse | |
4 from Bio import SeqIO, SeqRecord, BiopythonWarning | |
5 from Bio.Seq import Seq | |
6 from Bio.Alphabet import IUPAC | |
7 | |
8 | |
9 warnings.simplefilter("ignore", BiopythonWarning) | |
10 parser = argparse.ArgumentParser(description="Translation") | |
11 parser.add_argument('-r', action='store', dest='read_frame', type=int) | |
12 parser.add_argument('-i', action='store', dest='input_file') | |
13 parser.add_argument('-o', action='store', dest='output_file') | |
14 | |
15 inputs = parser.parse_args() | |
16 with open(inputs.output_file, 'w') as f: | |
17 for seq_record in SeqIO.parse(inputs.input_file, 'fasta'): | |
18 seqid = seq_record.id | |
19 name=seq_record.name | |
20 description = seq_record.description | |
21 if inputs.read_frame > 0: | |
22 seq_record = seq_record[(inputs.read_frame - 1):] | |
23 elif inputs.read_frame == -1: | |
24 seq_record = seq_record.reverse_complement() | |
25 elif inputs.read_frame == -2: | |
26 seq_record = seq_record.reverse_complement() | |
27 seq_record = seq_record[2:] | |
28 elif inputs.read_frame == -3: | |
29 seq_record = seq_record.reverse_complement() | |
30 seq_record = seq_record[1:] | |
31 dna = Seq(str(seq_record.seq), IUPAC.ambiguous_dna) | |
32 protein = SeqRecord.SeqRecord(seq=dna.translate(), id=seqid, name=name, description=description) | |
33 SeqIO.write(protein, f, 'fasta') | |
34 f.write('\n') | |
35 f.close() |