changeset 2:bb0d4cd765c5 draft

planemo upload for repository https://bitbucket.org/drosofff/gedtools/ commit 6dee2ab33610e7724e9423cc09818bcbbf11ea82
author drosofff
date Tue, 29 Sep 2015 06:32:31 -0400
parents 1964514aabde
children 8f5d48294f70
files BlastParser_and_hits.py BlastParser_and_hits.xml
diffstat 2 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/BlastParser_and_hits.py	Mon Sep 14 12:18:46 2015 -0400
+++ b/BlastParser_and_hits.py	Tue Sep 29 06:32:31 2015 -0400
@@ -130,6 +130,13 @@
 def outputParsing (F, Fasta, results, Xblastdict, fastadict, filter_relativeCov=0, filter_maxScore=0, filter_meanScore=0, mode="verbose"):
     F= open(F, "w")
     Fasta=open(Fasta, "w")
+    blasted_transcripts = []
+    for subject in results:
+        if results[subject]["RelativeSubjectCoverage"]<filter_relativeCov or results[subject]["maxBitScores"]<filter_maxScore or results[subject]["meanBitScores"]<filter_meanScore:
+            continue
+        for transcript in Xblastdict[subject]:
+            blasted_transcripts.append(transcript)
+    blasted_transcripts = list( set( blasted_transcripts))
     if mode == "verbose":
         print >>F, "# SeqId\t%Identity\tAlignLength\tStartSubject\tEndSubject\t%QueryHitCov\tE-value\tBitScore\n"
         for subject in sorted (results, key=lambda x: results[x]["meanBitScores"], reverse=True):
@@ -172,18 +179,14 @@
             print >> Fasta, "" # final carriage return for the sequence
     F.close()
     Fasta.close()
+    return blasted_transcripts
         
-def sort_sequences (fastadict, blastdict, matched_sequences, unmatched_sequences):
+def dispatch_sequences (fastadict, blasted_transcripts, matched_sequences, unmatched_sequences):
     '''to output the sequences that matched and did not matched in the blast'''
-    blasted_transcripts = []
-    for subject in blastdict:
-        for transcript in blastdict[subject]:
-            blasted_transcripts.append(transcript)
-    blasted_transcripts = list( set( blasted_transcripts))
     F_matched = open (matched_sequences, "w")
     F_unmatched = open (unmatched_sequences, "w")
     for transcript in fastadict:
-        if transcript in blasted_transcripts:
+        if transcript in blasted_transcripts: # le list of blasted_transcripts is generated by the outputParsing function
             print >> F_matched, ">%s\n%s" % (transcript, insert_newlines(fastadict[transcript]) )
         else:
             print >> F_unmatched, ">%s\n%s" % (transcript, insert_newlines(fastadict[transcript]) )
@@ -195,11 +198,12 @@
     args = Parser()
     fastadict = getfasta (args.sequences)
     Xblastdict = getblast (args.blast)
-    sort_sequences (fastadict, Xblastdict, args.al_sequences, args.un_sequences)
     results = defaultdict(dict)
     for subject in Xblastdict:
         results[subject]["HitDic"], results[subject]["subjectLength"], results[subject]["TotalCoverage"], results[subject]["RelativeSubjectCoverage"], results[subject]["maxBitScores"], results[subject]["meanBitScores"]  = subjectCoverage(fastadict, Xblastdict, subject, args.flanking)
-    outputParsing (args.tabularOutput, args.fastaOutput, results, Xblastdict, fastadict,
-                  filter_relativeCov=args.filter_relativeCov, filter_maxScore=args.filter_maxScore,
-                  filter_meanScore=args.filter_meanScore, mode=args.mode)
+    blasted_transcripts = outputParsing (args.tabularOutput, args.fastaOutput, results, Xblastdict, fastadict,
+                                        filter_relativeCov=args.filter_relativeCov, filter_maxScore=args.filter_maxScore,
+                                        filter_meanScore=args.filter_meanScore, mode=args.mode)
+    dispatch_sequences (fastadict, blasted_transcripts, args.al_sequences, args.un_sequences)
+
 if __name__=="__main__": __main__()
--- a/BlastParser_and_hits.xml	Mon Sep 14 12:18:46 2015 -0400
+++ b/BlastParser_and_hits.xml	Tue Sep 29 06:32:31 2015 -0400
@@ -1,4 +1,4 @@
-<tool id="BlastParser_and_hits" name="Parse blast output and compile hits" version="2.3.0">
+<tool id="BlastParser_and_hits" name="Parse blast output and compile hits" version="2.3.1">
 <description>for virus discovery</description>
 <requirements></requirements>
 <command interpreter="python">
@@ -66,7 +66,7 @@
 
 **What it does**
 
-Parse blast outputs for viruses genome assembly. Outputs analysis and hit sequences for further assembly. Output also the contig sequences which have or not been blast aligned with the indicated cut-off
+Parse blast outputs for viruses genome assembly. Outputs analysis and hit sequences for further assembly. Outputs also the contig sequences which have or not been blast aligned taking into account all indicated cut-offs
 
 </help>
 </tool>