From ac1c64c496559a529c2164429f4b2818b502977c Mon Sep 17 00:00:00 2001
From: "Gervaise H. Henry" <gervaise.henry@utsouthwestern.edu>
Date: Sat, 9 Jan 2021 14:06:49 -0600
Subject: [PATCH] Add median TIN to mRNA_QC table

---
 .gitlab-ci.yml                |  2 +-
 CHANGELOG.md                  |  1 +
 workflow/rna-seq.nf           | 11 +++++++++--
 workflow/scripts/upload_qc.py |  3 +++
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 03f5ebe..bf7355a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -389,7 +389,7 @@ uploadQC:
       done
       echo all old mRNA QC RIDs deleted
     fi
-      rid=$(singularity run 'docker://gudmaprbk/deriva1.4:1.0.0' python3 ./workflow/scripts/upload_qc.py -r 17-BTFJ -e 17-BVDJ -p "Single Read" -s forward -l 35 -w 5 -f 1 -n "This is a test mRNA QC" -o staging.gudmap.org -c ${cookie} -u F)
+      rid=$(singularity run 'docker://gudmaprbk/deriva1.4:1.0.0' python3 ./workflow/scripts/upload_qc.py -r 17-BTFJ -e 17-BVDJ -p "Single Read" -s forward -l 35 -w 5 -f 1 -t 1 -n "This is a test mRNA QC" -o staging.gudmap.org -c ${cookie} -u F)
       echo ${rid} test mRNA QC created
 
 uploadProcessedFile:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f1e3982..206089b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
 # v1.0.0 (in development)
 **User Facing**
 * Add link to reference builder script
+* Output median TIN to mRNA_QC table
 
 **Background**
 * Change consistency test to check if +/- 1% of standard
diff --git a/workflow/rna-seq.nf b/workflow/rna-seq.nf
index 8c247c2..21a2ace 100644
--- a/workflow/rna-seq.nf
+++ b/workflow/rna-seq.nf
@@ -1734,6 +1734,12 @@ tinMedInfer_fl.splitCsv(sep: ",", header: false).separate(
   tinMedInfer
 )
 
+// Replicate inferred median TIN for multiple process inputs
+tinMedInfer.into {
+  tinMedInfer_aggrQC
+  tinMedInfer_uploadQC
+}
+
 /*
  *aggrQC: aggregate QC from processes as well as metadata and run MultiQC
 */
@@ -1769,7 +1775,7 @@ process aggrQC {
     val readLengthI from readLengthInfer_aggrQC
     val rawReadsI from rawReadsInfer_aggrQC
     val assignedReadsI from assignedReadsInfer_aggrQC
-    val tinMedI from tinMedInfer
+    val tinMedI from tinMedInfer_aggrQC
     val studyRID from studyRID_aggrQC
     val expRID from expRID_aggrQC
     val fastqCountError_aggrQC
@@ -1869,6 +1875,7 @@ process uploadQC {
     val length from readLengthInfer_uploadQC
     val rawCount from rawReadsInfer_uploadQC
     val finalCount from assignedReadsInfer_uploadQC
+    val tinMed from tinMedInfer_uploadQC
     val fastqCountError_uploadQC
     val fastqReadError_uploadQC
     val speciesError_uploadQC
@@ -1912,7 +1919,7 @@ process uploadQC {
     echo LOG: all old mRNA QC RIDs deleted >> ${repRID}.uploadQC.log
   fi
 
-  qc_rid=\$(python3 ${script_uploadQC} -r ${repRID} -e ${executionRunRID} -p "\${end}" -s ${stranded} -l ${length} -w ${rawCount} -f ${finalCount} -o ${source} -c \${cookie} -u F)
+  qc_rid=\$(python3 ${script_uploadQC} -r ${repRID} -e ${executionRunRID} -p "\${end}" -s ${stranded} -l ${length} -w ${rawCount} -f ${finalCount} -t ${tinMed} -o ${source} -c \${cookie} -u F)
   echo LOG: mRNA QC RID uploaded - \${qc_rid} >> ${repRID}.uploadQC.log
 
   echo "\${qc_rid}" > qcRID.csv
diff --git a/workflow/scripts/upload_qc.py b/workflow/scripts/upload_qc.py
index 930896d..b842a7a 100644
--- a/workflow/scripts/upload_qc.py
+++ b/workflow/scripts/upload_qc.py
@@ -12,6 +12,7 @@ def get_args():
     parser.add_argument('-l', '--length', help="median read length", required=True)
     parser.add_argument('-w', '--rawCount', help="raw count", required=True)
     parser.add_argument('-f', '--assignedCount', help="final assigned count", required=True)
+    parser.add_argument('-t', '--tin', help="median TIN", required=True)
     parser.add_argument('-n', '--notes', help="notes", default="", required=False)
     parser.add_argument('-o', '--host', help="datahub host", required=True)
     parser.add_argument('-c', '--cookie', help="cookie token", required=True)
@@ -33,6 +34,7 @@ def main(hostname, catalog_number, credential):
             "Median_Read_Length": args.length,
             "Raw_Count": args.rawCount,
             "Final_Count": args.assignedCount,
+            "Median_TIN": args.tin,
             "Notes": args.notes
         }
         entities = run_table.insert([run_data])
@@ -47,6 +49,7 @@ def main(hostname, catalog_number, credential):
             "Median_Read_Length": args.length,
             "Raw_Count": args.rawCount,
             "Final_Count": args.assignedCount,
+            "Median_TIN": args.tin,
             "Notes": args.notes
         }
         entities = run_table.update([run_data])
-- 
GitLab