diff translate.py @ 0:a55eb751d2d8 draft

Uploaded
author jasper
date Tue, 09 May 2017 13:09:07 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/translate.py	Tue May 09 13:09:07 2017 -0400
@@ -0,0 +1,35 @@
+import sys
+import warnings
+import argparse
+from Bio import SeqIO, SeqRecord, BiopythonWarning
+from Bio.Seq import Seq
+from Bio.Alphabet import IUPAC
+
+
+warnings.simplefilter("ignore", BiopythonWarning)
+parser = argparse.ArgumentParser(description="Translation")
+parser.add_argument('-r', action='store', dest='read_frame', type=int)
+parser.add_argument('-i', action='store', dest='input_file')
+parser.add_argument('-o', action='store', dest='output_file')
+
+inputs = parser.parse_args()
+with open(inputs.output_file, 'w') as f:
+    for seq_record in SeqIO.parse(inputs.input_file, 'fasta'):
+        seqid = seq_record.id
+        name=seq_record.name
+        description = seq_record.description
+        if inputs.read_frame > 0:
+            seq_record = seq_record[(inputs.read_frame - 1):]
+        elif inputs.read_frame == -1:
+            seq_record = seq_record.reverse_complement()
+        elif inputs.read_frame == -2:
+            seq_record = seq_record.reverse_complement()
+            seq_record = seq_record[2:]
+        elif inputs.read_frame == -3:
+            seq_record = seq_record.reverse_complement()
+            seq_record = seq_record[1:]
+        dna = Seq(str(seq_record.seq), IUPAC.ambiguous_dna)
+        protein = SeqRecord.SeqRecord(seq=dna.translate(), id=seqid, name=name, description=description)
+        SeqIO.write(protein, f, 'fasta')
+        f.write('\n')
+f.close()