changeset 10:fb905d0f8201 draft

planemo upload for repository https://github.com/pvanheus/polio_report commit aa90f911e6269aba792c9814c98a659e631400b2-dirty
author sanbi-uwc
date Tue, 27 Sep 2022 08:44:35 +0000
parents acaaf49e2747
children fff48fa8a22b
files assess_alignment.py assess_poliovirus_alignment.xml
diffstat 2 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/assess_alignment.py	Tue Sep 27 05:52:53 2022 +0000
+++ b/assess_alignment.py	Tue Sep 27 08:44:35 2022 +0000
@@ -4,6 +4,7 @@
 import json
 import sys
 from dataclasses import dataclass
+from textwrap import fill
 from typing import TextIO
 
 
@@ -46,8 +47,11 @@
     max_end = max([int(al["leadingGaps"]) + len(al["align"]) for al in msas])
     base_state = ["n"] * len(reference["align"])
     mismatch_bases = {}
-    consensus = ''
+    base_start = 0
     for i, reference_base in enumerate(reference["align"]):
+        if vp1only and not base_start:
+            if data['gappedConsensus'][i] != '-':
+                base_start = i
         for k, al in enumerate(msas):
             leading_gaps = int(al["leadingGaps"])
             align_len = len(al["align"])
@@ -57,7 +61,6 @@
                     # skip positions outside of vp1 gene region
                     continue
                 al_base = al["align"][i - leading_gaps]
-                consensus += al_base
                 has_secondary_basecall = False
                 if sec_is_conflict:
                     gappedTrace = data["gappedTraces"][k]
@@ -110,6 +113,15 @@
             mismatch_list.append(
                 [i + 1, i - offset + 1, reference["align"][i], mismatch_bases[i]]
             )
+    if vp1only:
+        # we have trim consensus bases before vp1 region
+        if base_start <= offset:
+            cons_start = offset - base_start
+        else:
+            cons_start = 0
+        consensus = data['gapFreeConsensus'][cons_start:cons_start + length]
+    else:
+        consensus = data['gapFreeConsensus'] 
     return [conflicts, matches, mismatches, mismatch_list, consensus]
 
 
@@ -200,4 +212,4 @@
     }
     json.dump(info, open(args.output_filename, "w"))
 
-    open(args.consensus_output_filename, "w").write(best_consensus)
+    open(args.consensus_output_filename, "w").write(f'>{args.sample_name}\n' + fill(best_consensus))
--- a/assess_poliovirus_alignment.xml	Tue Sep 27 05:52:53 2022 +0000
+++ b/assess_poliovirus_alignment.xml	Tue Sep 27 08:44:35 2022 +0000
@@ -1,4 +1,4 @@
-<tool id="assess_poliovirus_alignment" name="Assess poliovirus alignment" version="0.8.0+galaxy0" profile="21.05">
+<tool id="assess_poliovirus_alignment" name="Assess poliovirus alignment" version="0.9.0+galaxy0" profile="21.05">
     <requirements>
         <requirement type="package" version="3.9">python</requirement>
     </requirements>