From 0acf38a4601f995408d94ff4d54f88202b3261a5 Mon Sep 17 00:00:00 2001
From: "Gervaise H. Henry" <gervaise.henry@utsouthwestern.edu>
Date: Sun, 19 Jan 2020 00:29:24 -0600
Subject: [PATCH] Add manual detection of endness if not stored

---
 workflow/rna-seq.nf           | 10 ++++++++++
 workflow/scripts/parseMeta.py |  8 ++++++++
 2 files changed, 18 insertions(+)

diff --git a/workflow/rna-seq.nf b/workflow/rna-seq.nf
index 94d5eea..6170be7 100755
--- a/workflow/rna-seq.nf
+++ b/workflow/rna-seq.nf
@@ -116,6 +116,7 @@ process parseMetadata {
 
   output:
     val ends
+    val endsManual
     val stranded
     val spike
     val specie
@@ -133,6 +134,15 @@ process parseMetadata {
     ends=\$(python3 ${script_parseMeta} -r ${repRID} -m "${experimentSettingsMeta}" -p ends)
     echo "LOG: endedness metadata parsed: \${ends}" >>${repRID}.parseMetadata.err
     
+    # Manually get endness
+    endsManual=\$(python3 ${script_parseMeta} -r ${repRID} -m "${fileMeta}" -p endsManual)
+    echo "LOG: endedness manually detected: \${ends}" >>${repRID}.parseMetadata.err
+    if [ \${ends} == "uk" ]
+    then
+      ends=\${endsManual}
+      echo "LOG: endness metadata overwitten my manually detected" >>${repRID}.parseMetadata.err
+    fi
+
     # Get strandedness metadata
     stranded=\$(python3 ${script_parseMeta} -r ${repRID} -m "${experimentSettingsMeta}" -p stranded)
     echo "LOG: strandedness metadata parsed: \${stranded}" >>${repRID}.parseMetadata.err
diff --git a/workflow/scripts/parseMeta.py b/workflow/scripts/parseMeta.py
index 0dc9056..83f4a80 100644
--- a/workflow/scripts/parseMeta.py
+++ b/workflow/scripts/parseMeta.py
@@ -33,10 +33,18 @@ def main():
             ends = "se"
         elif (metaFile.Paired_End.unique() == "Paired End"):
             ends = "pe"
+        elif (metaFile.Paired_End.unique() == ""):
+            ends = "uk"
         else:
             print("Ends metadata not match expected options: " + metaFile.Paired_End.unique())
             exit(1)
         print(ends)
+    if (args.parameter == "endsManual"):
+        if (len(metaFile[metaFile["File_Type"] == "FastQ"]) == 1):
+            endsManual = "se"
+        elif (len(metaFile[metaFile["File_Type"] == "FastQ"]) == 2):
+            endsManual = "pe"
+        print(endsManual)
     if (args.parameter == "stranded"):
         if (metaFile.Has_Strand_Specific_Information.unique() == "yes"):
             stranded = "stranded"
-- 
GitLab