text: user1421: I have run a blastx of metagenomic databases (raw illumina reads) using the nr database. Unfortunately, I forgot to add the --outfmt 6 argument to the code and got the traditional output.  
  Could I parse this output into --outfmt 6?
  
  user96: The blast_formatter command allows you to produce output in any of the formats supported by BLAST. However, it requires that you run blastx with --outfmt 11 (ASN.1 format). I'm not sure there are any tools that will do the conversion from the full default BLAST report. This could potentially be scripted, but would be complex enough that you're probably better off re-running BLAST.
  
  user123: Biopython has a parser for Blast's default text format (which I assume is the one you have). Just use the blast-text string to specify this format in SearchIO's parse method.
  from Bio import SearchIO
  results = SearchIO.parse('myfile.txt', 'blast-text')
  for entry in results:
      # extract the information you want
      query = entry.id
      for hit in entry.hits:
          subject = hit.id
          for hsp in hit.hsps:
              identity = hsp.ident_num *100 / entry.seq_len
              aln_len = hsp.aln.get_alignment_length()
              mismatches = aln_len - hsp.ident_num # not sure about this
              gaps = hsp.gap_num
              q_start = hsp.query_start + 1
              q_end = hsp.query_end
              s_start = hsp.hit_start + 1
              s_end = hsp.hit_end
              e_value = hsp.evalue
              bit_score = int(hsp.bitscore)
              # print in outfmt 6 format
              print('\t'.join([str(x) for x in [query,
                                        subject,
                                        identity,
                                        aln_len,
                                        mismatches,
                                        gaps,
                                        q_start,
                                        q_end,
                                        s_start,
                                        s_end,
                                        e_value,
                                        bit_score]]))
  
  Have a look at Biopython's docs for more information on how to parse Blast results.
  
original_text: 1421: <p>I have run a blastx of metagenomic databases (raw illumina reads) using the nr database. Unfortunately, I forgot to add the <code>--outfmt 6</code> argument to the code and got the traditional output.  </p>
  
  <p>Could I parse this output into <code>--outfmt 6</code>?</p>
   96: <p>The <a href="https://www.ncbi.nlm.nih.gov/books/NBK279697/" rel="nofollow noreferrer"><code>blast_formatter</code> command</a> allows you to produce output in any of the formats supported by BLAST. However, it requires that you run <code>blastx</code> with <code>--outfmt 11</code> (ASN.1 format). I'm not sure there are any tools that will do the conversion from the full default BLAST report. This could potentially be scripted, but would be complex enough that you're probably better off re-running BLAST.</p>
   123: <p>Biopython has a parser for Blast's default text format (which I assume is the one you have). Just use the <code>blast-text</code> string to specify this format in <code>SearchIO</code>'s <code>parse</code> method.</p>
  
  <pre><code>from Bio import SearchIO
  results = SearchIO.parse('myfile.txt', 'blast-text')
  for entry in results:
      # extract the information you want
      query = entry.id
      for hit in entry.hits:
          subject = hit.id
          for hsp in hit.hsps:
              identity = hsp.ident_num *100 / entry.seq_len
              aln_len = hsp.aln.get_alignment_length()
              mismatches = aln_len - hsp.ident_num # not sure about this
              gaps = hsp.gap_num
              q_start = hsp.query_start + 1
              q_end = hsp.query_end
              s_start = hsp.hit_start + 1
              s_end = hsp.hit_end
              e_value = hsp.evalue
              bit_score = int(hsp.bitscore)
              # print in outfmt 6 format
              print('\t'.join([str(x) for x in [query,
                                        subject,
                                        identity,
                                        aln_len,
                                        mismatches,
                                        gaps,
                                        q_start,
                                        q_end,
                                        s_start,
                                        s_end,
                                        e_value,
                                        bit_score]]))
  </code></pre>
  
  <p>Have a look at <a href="http://biopython.org/DIST/docs/api/Bio.SearchIO.BlastIO-module.html" rel="nofollow noreferrer">Biopython's docs</a> for more information on how to parse Blast results.</p>
  