diff convert_bc_to_binary_RY.py @ 8:17ef0e0dae68 draft

Uploaded
author rnateam
date Tue, 10 Nov 2015 09:13:44 -0500
parents de4ea3aa1090
children 0b9aab6aaebf
line wrap: on
line diff
--- a/convert_bc_to_binary_RY.py	Tue Nov 10 08:12:25 2015 -0500
+++ b/convert_bc_to_binary_RY.py	Tue Nov 10 09:13:44 2015 -0500
@@ -39,12 +39,17 @@
 # positional arguments
 parser.add_argument(
     "infile",
-    help="Path to fasta input file.")
+    help="Path to fastq input file.")
 # optional arguments
 parser.add_argument(
     "-o", "--outfile",
     help="Write results to this file.")
 parser.add_argument(
+    "--fasta-format",
+    dest="fasta_format",
+    help="Read and write fasta instead of fastq format.",
+    action="store_true")
+parser.add_argument(
     "-v", "--verbose",
     help="Be verbose.",
     action="store_true")
@@ -73,8 +78,13 @@
 def translate_nt_to_RY_iterator(robj):
     """Translate SeqRecords sequences to RY alphabet."""
     for record in robj:
+        if not args.fasta_format:
+            saved_letter_annotations = record.letter_annotations
+        record.letter_annotations = {}
         record.seq = Seq(translate_nt_to_RY(str(record.seq)),
                          IUPAC.unambiguous_dna)
+        if not args.fasta_format:
+            record.letter_annotations = saved_letter_annotations
         yield record
 
 # handle arguments
@@ -94,8 +104,14 @@
 
 # get input iterator
 input_handle = open(args.infile, "rU")
-input_seq_iterator = SeqIO.parse(input_handle, "fasta")
+if args.fasta_format:
+    input_seq_iterator = SeqIO.parse(input_handle, "fasta")
+else:
+    input_seq_iterator = SeqIO.parse(input_handle, "fastq")
 convert_seq_iterator = translate_nt_to_RY_iterator(input_seq_iterator)
 output_handle = (open(args.outfile, "w") if args.outfile is not None else stdout)
-SeqIO.write(convert_seq_iterator, output_handle, "fasta")
+if args.fasta_format:
+    SeqIO.write(convert_seq_iterator, output_handle, "fasta")
+else:
+    SeqIO.write(convert_seq_iterator, output_handle, "fastq")
 output_handle.close()