# HG changeset patch
# User azomics
# Date 1595509109 14400
# Node ID 62d8985a41e25bdb427cdede2c1dd5c2cc0ab93c
# Parent  8547aedf1350120dbf31981a1d6894d8ac06d86b
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/profile_cl commit 5cdc32e68f9ec685f9890902c5ecc75047248361"
diff -r 8547aedf1350 -r 62d8985a41e2 getOntology.R
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getOntology.R	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,29 @@
+#!/usr/bin/Rscript --vanilla
+# Cell Ontology Module for Galaxy
+# FlowCL
+######################################################################
+#                  Copyright (c) 2016 Northrop Grumman.
+#                          All rights reserved.
+######################################################################
+#
+# Version 1
+# Cristel Thomas
+#
+#
+
+suppressWarnings(suppressMessages(library(flowCL)))
+suppressWarnings(suppressMessages(library(base)))
+
+getOntology <- function(output_file, markers) {
+  res <- flowCL(markers, ResetArch = TRUE)
+  if (length(res) == 6) {
+    report <- capture.output(res$Table)
+    sink(output_file)
+    cat(report, sep = "\n")
+    sink()
+  }
+}
+
+args <- commandArgs(trailingOnly = TRUE)
+markers <- paste(args[2:length(args)], collapse="")
+getOntology(args[1], markers)
diff -r 8547aedf1350 -r 62d8985a41e2 profileCLs.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/profileCLs.py	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,161 @@
+#!/usr/bin/env python
+
+######################################################################
+#                  Copyright (c) 2016 Northrop Grumman.
+#                          All rights reserved.
+######################################################################
+import sys
+import os
+from argparse import ArgumentParser
+from jinja2 import Environment, FileSystemLoader
+
+profile_key = {
+    "1": "-",
+    "2": "lo",
+    "3": "+",
+    "4": "hi"
+}
+
+
+def run_flowCL(phenotype, output_txt, output_pdf, tool):
+    run_command = " ". join(["Rscript --slave --vanilla", tool, output_txt, phenotype])
+    os.system(run_command)
+    get_graph = " ".join(["mv flowCL_results/*.pdf", output_pdf])
+    os.system(get_graph)
+    return
+
+
+def generate_flowCL_query(list_markers, list_types):
+    if (len(list_markers) != len(list_types)):
+        return("pb with headers")
+    query = []
+    # go through both lists, remove fsc/ssc
+    for i in range(1, len(list_markers)):
+        if not list_markers[i].startswith("FSC") and not list_markers[i].startswith("SSC"):
+            query.append(list_markers[i].upper())
+            query.append(profile_key[list_types[i]])
+    # return concatenated string
+    return("".join(query))
+
+
+def translate_profiles(input_file, tool_dir, output, html_dir):
+    os.mkdir(html_dir)
+
+    tool = "/".join([tool_dir, "getOntology.R"])
+    html_table = "".join([html_dir, "/CLprofiles.txt"])
+    score_table = "".join(["cp ", input_file, " ", html_dir, "/scores.txt"])
+    os.system(score_table)
+
+    # read profile
+    with open(input_file, "r") as flock_profiles, open(html_table, "w") as out:
+        headers = flock_profiles.readline()
+        headers = headers.strip()
+        # get all headers except for last 2 (count + percentage)
+        markers = headers.split("\t")[:-2]
+        counter = 0
+
+        out.write("Population\tFlowCL Query\tNb Results\tLink to PDF\t")
+        out.write("Top Result Label\tTop Result Score\tTop Result CL\n")
+        queries = {}
+        # create marker query for each population
+        for lines in flock_profiles:
+            lines = lines.strip("\n")
+            pop_profile = lines.split("\t")[:-2]
+            flowcl_query = generate_flowCL_query(markers, pop_profile)
+            counter += 1
+            nb_results = "0"
+            top_label = "no_match"
+            top_score = "NA"
+            top_CL = "NA"
+            pdf_link = "NA"
+            # check if query was run before
+            if flowcl_query not in queries:
+                # create filenames for results & graphs
+                txt = "".join(["flowcl_pop", str(counter).zfill(2), ".txt"])
+                text_result = "/".join([html_dir, txt])
+                graph = "".join(["flowcl_pop", str(counter).zfill(2), ".pdf"])
+                graph_output = "/".join([html_dir, graph])
+                # run flowCL for each marker profile
+                run_flowCL(flowcl_query, text_result, graph_output, tool)
+
+                # test that text file exists if not results are all NAs:
+                if os.path.isfile(text_result):
+                    with open(text_result, "r") as res:
+                        for line in res:
+                            if line.startswith("Score"):
+                                data = line.split(") ")
+                                top_score = data[2][:-2]
+                                tot_results = len(data) - 2
+                                nb_results = str(tot_results)
+                                if tot_results == 5:
+                                    if len(data[6].split("+")) > 1:
+                                        nb_results = "5+"
+                            elif line.startswith("Cell ID"):
+                                prep_link = line.split(") ")[1][:-2]
+                                cl = prep_link.replace("_", ":")
+                                link = "".join([''])
+                                top_CL = "".join([link, prep_link, ""])
+                            elif line.startswith("Cell Label"):
+                                top_label = line.split(") ")[1][:-2]
+                                pdf_link = "".join(['PDF'])
+                                tmpflowcl_query = "".join(['', flowcl_query, ''])
+
+                    queries[flowcl_query] = {
+                        "query": tmpflowcl_query,
+                        "results": nb_results,
+                        "pdf": pdf_link,
+                        "label": top_label,
+                        "score": top_score,
+                        "CL": top_CL
+                    }
+            # write query results to CLprofiles.txt
+            out.write("\t".join([pop_profile[0],
+                                 queries[flowcl_query]["query"],
+                                 queries[flowcl_query]["results"],
+                                 queries[flowcl_query]["pdf"],
+                                 queries[flowcl_query]["label"],
+                                 queries[flowcl_query]["score"],
+                                 queries[flowcl_query]["CL"]]) + "\n")
+
+    env = Environment(loader=FileSystemLoader(tool_dir + "/templates"))
+    template = env.get_template("profileCLs.template")
+
+    real_directory = html_dir.replace("/job_working_directory", "")
+    context = {'outputDirectory': real_directory}
+    overview = template.render(**context)
+    with open(output, "w") as outf:
+        outf.write(overview)
+
+
+if __name__ == "__main__":
+    parser = ArgumentParser(
+             prog="getCLs_from_profile",
+             description="runs flowCL on a each population defined by FLOCK.")
+
+    parser.add_argument(
+            '-i',
+            dest="input_file",
+            required=True,
+            help="File location for the profile.txt from FLOCK.")
+
+    parser.add_argument(
+            '-o',
+            dest="output",
+            required=True,
+            help="Name of the output html file.")
+
+    parser.add_argument(
+            '-d',
+            dest="html_dir",
+            required=True,
+            help="Path to html supporting directory.")
+
+    parser.add_argument(
+            '-t',
+            dest="tool_dir",
+            required=True,
+            help="Path to the tool directory")
+
+    args = parser.parse_args()
+
+    translate_profiles(args.input_file, args.tool_dir, args.output, args.html_dir)
diff -r 8547aedf1350 -r 62d8985a41e2 profileCLs.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/profileCLs.xml	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,65 @@
+
+  with cell ontology
+  
+    jinja2
+    bioconductor-flowcl
+  
+  
+    
+    
+  
+  
+  
+  
+    
+  
+  
+    
+    
+  
+  
+    
+      
+      
+    
+  
+  
+  
+  
+    10.1093/bioinformatics/btu807
+  
+
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/getOntology.R
--- a/profile_cl/getOntology.R	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# Cell Ontology Module for Galaxy
-# FlowCL
-######################################################################
-#                  Copyright (c) 2016 Northrop Grumman.
-#                          All rights reserved.
-######################################################################
-# 
-# Version 1
-# Cristel Thomas
-#
-#
-
-library(flowCL)
-library(base)
-
-getOntology <- function(output_file, markers) {
-  res <- flowCL(markers, ResetArch = TRUE)
-  if (length(res) == 6) {
-    report <- capture.output(res$Table)
-    sink(output_file)
-    cat(report, sep = "\n")
-    sink()
-  }
-}
-
-args <- commandArgs(trailingOnly = TRUE)
-markers <- paste(args[3:length(args)], collapse="")
-getOntology(args[2], markers)
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/profileCLs.py
--- a/profile_cl/profileCLs.py	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-#!/usr/bin/env python
-
-######################################################################
-#                  Copyright (c) 2016 Northrop Grumman.
-#                          All rights reserved.
-######################################################################
-from __future__ import print_function
-import sys
-import os
-from argparse import ArgumentParser
-from jinja2 import Environment, FileSystemLoader
-
-profile_key = {
-    "1": "-",
-    "2": "lo",
-    "3": "+",
-    "4": "hi"
-}
-
-
-def run_flowCL(phenotype, output_txt, output_pdf, tool):
-    run_command = " ". join(["Rscript --slave --vanilla", tool, "--args", output_txt, phenotype])
-    os.system(run_command)
-    get_graph = " ".join(["mv flowCL_results/*.pdf", output_pdf])
-    os.system(get_graph)
-    return
-
-
-def generate_flowCL_query(list_markers, list_types):
-    if (len(list_markers) != len(list_types)):
-        return("pb with headers")
-    query = []
-    # go through both lists, remove fsc/ssc
-    for i in range(1, len(list_markers)):
-        if not list_markers[i].startswith("FSC") and not list_markers[i].startswith("SSC"):
-            query.append(list_markers[i].upper())
-            query.append(profile_key[list_types[i]])
-    # return concatenated string
-    return("".join(query))
-
-
-def translate_profiles(input_file, tool_dir, output, html_dir):
-    os.mkdir(html_dir)
-
-    tool = "/".join([tool_dir, "getOntology.R"])
-    html_table = "".join([html_dir, "/CLprofiles.txt"])
-    score_table = "".join(["cp ", input_file, " ", html_dir, "/scores.txt"])
-    os.system(score_table)
-
-    # read profile
-    with open(input_file, "r") as flock_profiles, open(html_table, "w") as out:
-        headers = flock_profiles.readline()
-        headers = headers.strip()
-        # get all headers except for last 2 (count + percentage)
-        markers = headers.split("\t")[:-2]
-        counter = 0
-
-        out.write("Population\tFlowCL Query\tNb Results\tLink to PDF\t")
-        out.write("Top Result Label\tTop Result Score\tTop Result CL\n")
-        queries = {}
-        # create marker query for each population
-        for lines in flock_profiles:
-            lines = lines.strip("\n")
-            pop_profile = lines.split("\t")[:-2]
-            flowcl_query = generate_flowCL_query(markers, pop_profile)
-            counter += 1
-            nb_results = "0"
-            top_label = "no_match"
-            top_score = "NA"
-            top_CL = "NA"
-            pdf_link = "NA"
-            # check if query was run before
-            if flowcl_query not in queries:
-                # create filenames for results & graphs
-                txt = "".join(["flowcl_pop", str(counter).zfill(2), ".txt"])
-                text_result = "/".join([html_dir, txt])
-                graph = "".join(["flowcl_pop", str(counter).zfill(2), ".pdf"])
-                graph_output = "/".join([html_dir, graph])
-                # run flowCL for each marker profile
-                run_flowCL(flowcl_query, text_result, graph_output, tool)
-
-                # test that text file exists if not results are all NAs:
-                if os.path.isfile(text_result):
-                    with open(text_result, "r") as res:
-                        for line in res:
-                            if line.startswith("Score"):
-                                data = line.split(") ")
-                                top_score = data[2][:-2]
-                                tot_results = len(data) - 2
-                                nb_results = str(tot_results)
-                                if tot_results == 5:
-                                    if len(data[6].split("+")) > 1:
-                                        nb_results = "5+"
-                            elif line.startswith("Cell ID"):
-                                prep_link = line.split(") ")[1][:-2]
-                                cl = prep_link.replace("_", ":")
-                                link = "".join([''])
-                                top_CL = "".join([link, prep_link, ""])
-                            elif line.startswith("Cell Label"):
-                                top_label = line.split(") ")[1][:-2]
-                                pdf_link = "".join(['PDF'])
-                                tmpflowcl_query = "".join(['', flowcl_query, ''])
-
-                    queries[flowcl_query] = {
-                        "query": tmpflowcl_query,
-                        "results": nb_results,
-                        "pdf": pdf_link,
-                        "label": top_label,
-                        "score": top_score,
-                        "CL": top_CL
-                    }
-            # write query results to CLprofiles.txt
-            out.write("\t".join([pop_profile[0],
-                                 queries[flowcl_query]["query"],
-                                 queries[flowcl_query]["results"],
-                                 queries[flowcl_query]["pdf"],
-                                 queries[flowcl_query]["label"],
-                                 queries[flowcl_query]["score"],
-                                 queries[flowcl_query]["CL"]]) + "\n")
-
-    env = Environment(loader=FileSystemLoader(tool_dir + "/templates"))
-    template = env.get_template("profileCLs.template")
-
-    real_directory = html_dir.replace("/job_working_directory", "")
-    context = {'outputDirectory': real_directory}
-    overview = template.render(**context)
-    with open(output, "w") as outf:
-        outf.write(overview)
-
-
-if __name__ == "__main__":
-    parser = ArgumentParser(
-             prog="getCLs_from_profile",
-             description="runs flowCL on a each population defined by FLOCK.")
-
-    parser.add_argument(
-            '-i',
-            dest="input_file",
-            required=True,
-            help="File location for the profile.txt from FLOCK.")
-
-    parser.add_argument(
-            '-o',
-            dest="output",
-            required=True,
-            help="Name of the output html file.")
-
-    parser.add_argument(
-            '-d',
-            dest="html_dir",
-            required=True,
-            help="Path to html supporting directory.")
-
-    parser.add_argument(
-            '-t',
-            dest="tool_dir",
-            required=True,
-            help="Path to the tool directory")
-
-    args = parser.parse_args()
-
-    translate_profiles(args.input_file, args.tool_dir, args.output, args.html_dir)
-    sys.exit(0)
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/profileCLs.xml
--- a/profile_cl/profileCLs.xml	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-
-  with cell ontology
-  
-    jinja2
-    r
-    bioconductor-flowcl
-  
-  
-    
-    
-  
-  
-  
-  
-    
-  
-  
-    
-    
-  
-  
-    
-      
-      
-    
-  
-  
-  
-  
-    10.1093/bioinformatics/btu807
-  
-
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/static/flowtools/css/flowCL.css
--- a/profile_cl/static/flowtools/css/flowCL.css	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-** DataTables config
-*/
-div.dt-buttons {
-    float: right;
-}
-th {
-    font-size:16px;
-    text-align: left;
-}
-body td {
-    max-width: 50px;
-    font-size: 14px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-.cltable thead {
-    display:none;
-}
-.cltable td {
-    max-width: 40px;
-    word-break: break-all;
-    word-wrap: break-word;
-}
-.firstcol {
-    width: 160px;
-}
-.smallcols {
-    width: 100px;
-}
-div.dataTables_wrapper {
-    width: 95%;
-    margin: 0 auto;
-}
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/static/flowtools/js/profileCLs.js
--- a/profile_cl/static/flowtools/js/profileCLs.js	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-// Copyright (c) 2016 Northrop Grumman.
-// All rights reserved.
-
-var cl_table = './CLprofiles.txt';
-var scores_table = './scores.txt';
-
-var displayCLTable = function(){
-  d3.text(cl_table, function(error, data){
-    var clHdgs = [],
-        clHTML = '
',
-        clTableData = [],
-        clHeadings = [];
-
-    if (error){
-      alert("Problem retrieving data");
-      return;
-    }
-    clHdgs = data.split("\n")[0].split("\t");
-    data = d3.tsv.parse(data);
-    clTableData = $.extend(true, [], data);
-
-    clHdgs.forEach(function(d,i){
-      clHeadings.push({"data" : d, "title" : d});
-    });
-
-    $('#clprofiles').html(clHTML);
-    var clTable = $('#cltable').DataTable({
-      columns: clHeadings,
-      dom: '<"top"Bi>t<"bottom"lp><"clear">',
-      pageLength: 25,
-      order: [[ 0, "asc" ]],
-      data: clTableData,
-      buttons: [
-        'copy', 'pdfHtml5','csvHtml5'
-      ],
-      columnDefs: [
-        {
-          targets: [0,2,3],
-          className: "smallcols"
-        },
-        {
-          targets: 4,
-          className: "dt-body-left"
-        },
-        {
-          targets: [5,6],
-          className: "firstcol"
-      }]
-    });
-  });
-};
-
-var displayScoresTable = function(){
-  d3.text(scores_table, function(error, data){
-    var scoreHTML = '',
-        scoreHdgs = [],
-        scoreTableData = [],
-        scoreHeadings = [];
-    if (error){
-      alert("Problem retrieving data");
-      return;
-    }
-    scoreHdgs = data.split("\n")[0].split("\t");
-    data = d3.tsv.parse(data);
-
-    $('#scores').html(scoreHTML);
-
-    scoreTableData = $.extend(true, [], data);
-
-    scoreHdgs.forEach(function(d,i){
-      scoreHeadings.push({"data" : d, "title" : d});
-    });
-
-    var scoreTable = $('#scoretable').DataTable({
-      columns: scoreHeadings,
-      pageLength: 25,
-      order: [[ 0, "asc" ]],
-      dom: '<"top"Bi>t<"bottom"lp><"clear">',
-      data: scoreTableData,
-      buttons: [
-        'copy', 'pdfHtml5','csvHtml5'
-      ],
-    });
-  });
-};
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/static/images/flowtools/popprofiles.png
Binary file profile_cl/static/images/flowtools/popprofiles.png has changed
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/static/images/flowtools/profileCL.png
Binary file profile_cl/static/images/flowtools/profileCL.png has changed
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/templates/profileCLs.template
--- a/profile_cl/templates/profileCLs.template	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-
-
-
-FLOCK Populations Ontology
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/CLprofiles.txt
--- a/profile_cl/test-data/CLprofiles.txt	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-Population	FlowCL Query	Nb Results	Link to PDF	Top Result Label	Top Result Score	Top Result CL
-1	CD4+CCR3-CD8-CCR7-	5+	PDF	effector CD4-positive, alpha-beta T cell	0.167	CL_0001044
-2	CD4+CCR3-CD8-CCR7-	5+	PDF	effector CD4-positive, alpha-beta T cell	0.167	CL_0001044
-3	CD4+CCR3-CD8+CCR7lo	5+	PDF	mature CD8_alpha-negative CD11b-positive dendritic cell 2)"       	-0.357	CL_0001003
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/flowcl_pop01.pdf
Binary file profile_cl/test-data/flowcl_pop01.pdf has changed
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/flowcl_pop01.txt
--- a/profile_cl/test-data/flowcl_pop01.txt	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-                      [,1]                                                                   
-Short marker names    "CD4+CCR3-CD8-CCR7-"                                                   
-Ontology marker names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
-                      "co-receptor CD8, C-C chemokine receptor type 7"                       
-Experiment markers    "CD4,CCR3,CD8,CCR7"                                                    
-Ontology exper. names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
-                      "co-receptor CD8, C-C chemokine receptor type 7"                       
-Successful Match?     "No"                                                                   
-Marker ID             "1) PR_000001004, PR_000025402, PR_000001203 2) PR_000001004,"         
-                      "PR_000025402, PR_000001203 3) PR_000001004, PR_000025402,"            
-                      "PR_000001203 4) PR_000001004, PR_000025402 5) PR_000001004,"          
-                      "PR_000025402 + more"                                                  
-Marker Label          "1) CD4 molecule, T cell receptor co-receptor CD8, C-C chemokine"      
-                      "receptor type 7 2) CD4 molecule, T cell receptor co-receptor CD8, C-C"
-                      "chemokine receptor type 7 3) CD4 molecule, T cell receptor"           
-                      "co-receptor CD8, C-C chemokine receptor type 7 4) CD4 molecule, T"    
-                      "cell receptor co-receptor CD8 5) CD4 molecule, T cell receptor"       
-                      "co-receptor CD8 + more"                                               
-Marker Key            "1) { CCR3- } CD8-, CCR7-, CD4+ ( ) [ alpha-beta T cell receptor"      
-                      "complex+, receptor-type tyrosine-protein phosphatase C isoform"       
-                      "CD45RA+, CD3+ ] 2) { CCR3- } CD8-, CCR7-, CD4+ ( ) [ alpha-beta T"    
-                      "cell receptor complex+, C-X-C chemokine receptor type 5+, inducible"  
-                      "T-cell costimulator+, programmed cell death protein 1+, CD3+ ] 3) {"  
-                      "CCR3- } CD8-, CCR7-, CD4+ ( ) [ interleukin-2 receptor subunit"       
-                      "alpha-, receptor-type tyrosine-protein phosphatase C isoform CD45RA-,"
-                      "alpha-beta T cell receptor complex+, receptor-type tyrosine-protein"  
-                      "phosphatase C isoform CD45RO+, interleukin-7 receptor subunit alpha+,"
-                      "CD3+, CD44 moleculehi, interleukin-2 receptor subunit betahi ] 4) {"  
-                      "CCR3-, CCR7- } CD8-, CD4+ ( ) [ L-selectin-, interleukin-7 receptor"  
-                      "subunit alpha-, alpha-beta T cell receptor complex+, CD69 molecule+," 
-                      "interleukin-2 receptor subunit alpha+, ADP-ribosyl cyclase 1+, MHC"   
-                      "class II histocompatibility antigen alpha chain HLA-DRA+, CD3+ ] 5) {"
-                      "CCR3-, CCR7- } CD8-, CD4+ ( ) [ interleukin-2 receptor subunit"       
-                      "alpha-, alpha-beta T cell receptor complex+, receptor-type"           
-                      "tyrosine-protein phosphatase C isoform CD45RO+, interleukin-7"        
-                      "receptor subunit alpha+, CD3+, CD44 moleculehi, interleukin-2"        
-                      "receptor subunit betahi ] + more"                                     
-Score (Out of 1)      "1) 0.167 2) 0.125 3) 0.091 4) -0.2 5) -0.222 + more"                  
-Cell ID               "1) CL_0001044 2) CL_0002038 3) CL_0000905 4) CL_0001043 5) CL_0000897"
-                      "+ more"                                                               
-Cell Label            "1) effector CD4-positive, alpha-beta T cell 2) T follicular helper"   
-                      "cell 3) effector memory CD4-positive, alpha-beta T cell 4) activated" 
-                      "CD4-positive, alpha-beta T cell, human 5) CD4-positive, alpha-beta"   
-                      "memory T cell + more"                                                 
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/flowcl_pop03.pdf
Binary file profile_cl/test-data/flowcl_pop03.pdf has changed
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/flowcl_pop03.txt
--- a/profile_cl/test-data/flowcl_pop03.txt	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-                      [,1]                                                                   
-Short marker names    "CD4+CCR3-CD8+CCR7lo"                                                  
-Ontology marker names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
-                      "co-receptor CD8, C-C chemokine receptor type 7"                       
-Experiment markers    "CD4,CCR3,CD8,CCR7"                                                    
-Ontology exper. names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
-                      "co-receptor CD8, C-C chemokine receptor type 7"                       
-Successful Match?     "No"                                                                   
-Marker ID             "1) PR_000001004 2) PR_000001004 3) PR_000001004 4) PR_000001004 5)"   
-                      "PR_000001004, PR_000025402 + more"                                    
-Marker Label          "1) CD4 molecule 2) CD4 molecule 3) CD4 molecule 4) CD4 molecule 5)"   
-                      "CD4 molecule, T cell receptor co-receptor CD8 + more"                 
-Marker Key            "1) { CD8+, CCR3-, CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-,"
-                      "CD34 molecule-, neural cell adhesion molecule 1-, membrane-spanning"  
-                      "4-domains subfamily A member 1-, lymphocyte antigen 75-, T-cell"      
-                      "surface glycoprotein CD8 alpha chain-, CD83 molecule+, integrin"      
-                      "alpha-M+, MHC class II protein complexhi, CD86 moleculehi, CD80"      
-                      "moleculehi, integrin alpha-Xhi ] 2) { CD8+, CCR3-, CCR7lo } CD4+ ( )" 
-                      "[ CD19 molecule-, CD34 molecule-, CD34 molecule-, neural cell"        
-                      "adhesion molecule 1-, membrane-spanning 4-domains subfamily A member" 
-                      "1-, lymphocyte antigen 75-, T-cell surface glycoprotein CD8 alpha"    
-                      "chain-, integrin alpha-M+, MHC class II protein complexlo, CD86"      
-                      "moleculelo, CD80 moleculelo, integrin alpha-Xhi ] 3) { CD8+, CCR3-,"  
-                      "CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-, CD34 molecule-,"  
-                      "neural cell adhesion molecule 1-, membrane-spanning 4-domains"        
-                      "subfamily A member 1-, integrin alpha-M-, T-cell surface glycoprotein"
-                      "CD8 alpha chain-, receptor-type tyrosine-protein phosphatase C"       
-                      "isoform CD45R+, lymphocyte antigen 6G+, integrin alpha-Xlo ] 4) {"    
-                      "CD8+, CCR3-, CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-, CD34"
-                      "molecule-, neural cell adhesion molecule 1-, membrane-spanning"       
-                      "4-domains subfamily A member 1-, integrin alpha-M-, receptor-type"    
-                      "tyrosine-protein phosphatase C isoform CD45R+, lymphocyte antigen"    
-                      "6G+, T-cell surface glycoprotein CD8 alpha chain+, integrin alpha-Xlo"
-                      "] 5) { CCR3-, CCR7lo } CD4+, CD8+ ( ) [ alpha-beta T cell receptor"   
-                      "complexlo, CD69 molecule+ ] + more"                                   
-Score (Out of 1)      "1) -0.357 2) -0.385 3) -0.455 4) -0.455 5) -0.5 + more"               
-Cell ID               "1) CL_0001003 2) CL_0000997 3) CL_0002455 4) CL_0002456 5) CL_0002429"
-                      "+ more"                                                               
-Cell Label            "1) mature CD8_alpha-negative CD11b-positive dendritic cell 2)"        
-                      "immature CD8_alpha-negative CD11b-positive dendritic cell 3)"         
-                      "CD8_alpha-negative plasmactyoid dendritic cell 4) CD8_alpha-positive" 
-                      "plasmactyoid dendritic cell 5) CD69-positive double-positive"         
-                      "thymocyte + more"                                                     
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/input.flowscore
--- a/profile_cl/test-data/input.flowscore	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-Population_ID	FSC	SSC	CD4	CCR3	CD8	CCR7	Count	Percentage
-1	1	1	3	1	1	1	1000	5
-2	1	1	3	1	1	1	1000	5
-3	1	1	3	1	3	2	1000	5
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/out.html
--- a/profile_cl/test-data/out.html	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-
-
-
-FLOCK Populations Ontology
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r 8547aedf1350 -r 62d8985a41e2 profile_cl/test-data/scores.txt
--- a/profile_cl/test-data/scores.txt	Mon Feb 27 13:03:19 2017 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-Population_ID	FSC	SSC	CD4	CCR3	CD8	CCR7	Count	Percentage
-1	1	1	3	1	1	1	1000	5
-2	1	1	3	1	1	1	1000	5
-3	1	1	3	1	3	2	1000	5
diff -r 8547aedf1350 -r 62d8985a41e2 static/images/flowtools/popprofiles.png
Binary file static/images/flowtools/popprofiles.png has changed
diff -r 8547aedf1350 -r 62d8985a41e2 static/images/flowtools/profileCL.png
Binary file static/images/flowtools/profileCL.png has changed
diff -r 8547aedf1350 -r 62d8985a41e2 templates/profileCLs.template
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/profileCLs.template	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,92 @@
+
+
+
+FLOCK Populations Ontology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/CLprofiles.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CLprofiles.txt	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,4 @@
+Population	FlowCL Query	Nb Results	Link to PDF	Top Result Label	Top Result Score	Top Result CL
+1	CD4+CCR3-CD8-CCR7-	5+	PDF	effector CD4-positive, alpha-beta T cell	0.167	CL_0001044
+2	CD4+CCR3-CD8-CCR7-	5+	PDF	effector CD4-positive, alpha-beta T cell	0.167	CL_0001044
+3	CD4+CCR3-CD8+CCR7lo	5+	PDF	mature CD8_alpha-negative CD11b-positive dendritic cell 2)"       	-0.357	CL_0001003
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/flowcl_pop01.pdf
Binary file test-data/flowcl_pop01.pdf has changed
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/flowcl_pop01.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/flowcl_pop01.txt	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,44 @@
+                      [,1]                                                                   
+Short marker names    "CD4+CCR3-CD8-CCR7-"                                                   
+Ontology marker names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
+                      "co-receptor CD8, C-C chemokine receptor type 7"                       
+Experiment markers    "CD4,CCR3,CD8,CCR7"                                                    
+Ontology exper. names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
+                      "co-receptor CD8, C-C chemokine receptor type 7"                       
+Successful Match?     "No"                                                                   
+Marker ID             "1) PR_000001004, PR_000025402, PR_000001203 2) PR_000001004,"         
+                      "PR_000025402, PR_000001203 3) PR_000001004, PR_000025402,"            
+                      "PR_000001203 4) PR_000001004, PR_000025402 5) PR_000001004,"          
+                      "PR_000025402 + more"                                                  
+Marker Label          "1) CD4 molecule, T cell receptor co-receptor CD8, C-C chemokine"      
+                      "receptor type 7 2) CD4 molecule, T cell receptor co-receptor CD8, C-C"
+                      "chemokine receptor type 7 3) CD4 molecule, T cell receptor"           
+                      "co-receptor CD8, C-C chemokine receptor type 7 4) CD4 molecule, T"    
+                      "cell receptor co-receptor CD8 5) CD4 molecule, T cell receptor"       
+                      "co-receptor CD8 + more"                                               
+Marker Key            "1) { CCR3- } CD8-, CCR7-, CD4+ ( ) [ alpha-beta T cell receptor"      
+                      "complex+, receptor-type tyrosine-protein phosphatase C isoform"       
+                      "CD45RA+, CD3+ ] 2) { CCR3- } CD8-, CCR7-, CD4+ ( ) [ alpha-beta T"    
+                      "cell receptor complex+, C-X-C chemokine receptor type 5+, inducible"  
+                      "T-cell costimulator+, programmed cell death protein 1+, CD3+ ] 3) {"  
+                      "CCR3- } CD8-, CCR7-, CD4+ ( ) [ interleukin-2 receptor subunit"       
+                      "alpha-, receptor-type tyrosine-protein phosphatase C isoform CD45RA-,"
+                      "alpha-beta T cell receptor complex+, receptor-type tyrosine-protein"  
+                      "phosphatase C isoform CD45RO+, interleukin-7 receptor subunit alpha+,"
+                      "CD3+, CD44 moleculehi, interleukin-2 receptor subunit betahi ] 4) {"  
+                      "CCR3-, CCR7- } CD8-, CD4+ ( ) [ L-selectin-, interleukin-7 receptor"  
+                      "subunit alpha-, alpha-beta T cell receptor complex+, CD69 molecule+," 
+                      "interleukin-2 receptor subunit alpha+, ADP-ribosyl cyclase 1+, MHC"   
+                      "class II histocompatibility antigen alpha chain HLA-DRA+, CD3+ ] 5) {"
+                      "CCR3-, CCR7- } CD8-, CD4+ ( ) [ interleukin-2 receptor subunit"       
+                      "alpha-, alpha-beta T cell receptor complex+, receptor-type"           
+                      "tyrosine-protein phosphatase C isoform CD45RO+, interleukin-7"        
+                      "receptor subunit alpha+, CD3+, CD44 moleculehi, interleukin-2"        
+                      "receptor subunit betahi ] + more"                                     
+Score (Out of 1)      "1) 0.167 2) 0.125 3) 0.091 4) -0.2 5) -0.222 + more"                  
+Cell ID               "1) CL_0001044 2) CL_0002038 3) CL_0000905 4) CL_0001043 5) CL_0000897"
+                      "+ more"                                                               
+Cell Label            "1) effector CD4-positive, alpha-beta T cell 2) T follicular helper"   
+                      "cell 3) effector memory CD4-positive, alpha-beta T cell 4) activated" 
+                      "CD4-positive, alpha-beta T cell, human 5) CD4-positive, alpha-beta"   
+                      "memory T cell + more"                                                 
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/flowcl_pop03.pdf
Binary file test-data/flowcl_pop03.pdf has changed
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/flowcl_pop03.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/flowcl_pop03.txt	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,43 @@
+                      [,1]                                                                   
+Short marker names    "CD4+CCR3-CD8+CCR7lo"                                                  
+Ontology marker names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
+                      "co-receptor CD8, C-C chemokine receptor type 7"                       
+Experiment markers    "CD4,CCR3,CD8,CCR7"                                                    
+Ontology exper. names "CD4 molecule, C-C chemokine receptor type 3, T cell receptor"         
+                      "co-receptor CD8, C-C chemokine receptor type 7"                       
+Successful Match?     "No"                                                                   
+Marker ID             "1) PR_000001004 2) PR_000001004 3) PR_000001004 4) PR_000001004 5)"   
+                      "PR_000001004, PR_000025402 + more"                                    
+Marker Label          "1) CD4 molecule 2) CD4 molecule 3) CD4 molecule 4) CD4 molecule 5)"   
+                      "CD4 molecule, T cell receptor co-receptor CD8 + more"                 
+Marker Key            "1) { CD8+, CCR3-, CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-,"
+                      "CD34 molecule-, neural cell adhesion molecule 1-, membrane-spanning"  
+                      "4-domains subfamily A member 1-, lymphocyte antigen 75-, T-cell"      
+                      "surface glycoprotein CD8 alpha chain-, CD83 molecule+, integrin"      
+                      "alpha-M+, MHC class II protein complexhi, CD86 moleculehi, CD80"      
+                      "moleculehi, integrin alpha-Xhi ] 2) { CD8+, CCR3-, CCR7lo } CD4+ ( )" 
+                      "[ CD19 molecule-, CD34 molecule-, CD34 molecule-, neural cell"        
+                      "adhesion molecule 1-, membrane-spanning 4-domains subfamily A member" 
+                      "1-, lymphocyte antigen 75-, T-cell surface glycoprotein CD8 alpha"    
+                      "chain-, integrin alpha-M+, MHC class II protein complexlo, CD86"      
+                      "moleculelo, CD80 moleculelo, integrin alpha-Xhi ] 3) { CD8+, CCR3-,"  
+                      "CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-, CD34 molecule-,"  
+                      "neural cell adhesion molecule 1-, membrane-spanning 4-domains"        
+                      "subfamily A member 1-, integrin alpha-M-, T-cell surface glycoprotein"
+                      "CD8 alpha chain-, receptor-type tyrosine-protein phosphatase C"       
+                      "isoform CD45R+, lymphocyte antigen 6G+, integrin alpha-Xlo ] 4) {"    
+                      "CD8+, CCR3-, CCR7lo } CD4+ ( ) [ CD19 molecule-, CD34 molecule-, CD34"
+                      "molecule-, neural cell adhesion molecule 1-, membrane-spanning"       
+                      "4-domains subfamily A member 1-, integrin alpha-M-, receptor-type"    
+                      "tyrosine-protein phosphatase C isoform CD45R+, lymphocyte antigen"    
+                      "6G+, T-cell surface glycoprotein CD8 alpha chain+, integrin alpha-Xlo"
+                      "] 5) { CCR3-, CCR7lo } CD4+, CD8+ ( ) [ alpha-beta T cell receptor"   
+                      "complexlo, CD69 molecule+ ] + more"                                   
+Score (Out of 1)      "1) -0.357 2) -0.385 3) -0.455 4) -0.455 5) -0.5 + more"               
+Cell ID               "1) CL_0001003 2) CL_0000997 3) CL_0002455 4) CL_0002456 5) CL_0002429"
+                      "+ more"                                                               
+Cell Label            "1) mature CD8_alpha-negative CD11b-positive dendritic cell 2)"        
+                      "immature CD8_alpha-negative CD11b-positive dendritic cell 3)"         
+                      "CD8_alpha-negative plasmactyoid dendritic cell 4) CD8_alpha-positive" 
+                      "plasmactyoid dendritic cell 5) CD69-positive double-positive"         
+                      "thymocyte + more"                                                     
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/input.flowscore
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input.flowscore	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,4 @@
+Population_ID	FSC	SSC	CD4	CCR3	CD8	CCR7	Count	Percentage
+1	1	1	3	1	1	1	1000	5
+2	1	1	3	1	1	1	1000	5
+3	1	1	3	1	3	2	1000	5
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/out.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out.html	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,91 @@
+
+
+
+FLOCK Populations Ontology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 8547aedf1350 -r 62d8985a41e2 test-data/scores.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/scores.txt	Thu Jul 23 08:58:29 2020 -0400
@@ -0,0 +1,4 @@
+Population_ID	FSC	SSC	CD4	CCR3	CD8	CCR7	Count	Percentage
+1	1	1	3	1	1	1	1000	5
+2	1	1	3	1	1	1	1000	5
+3	1	1	3	1	3	2	1000	5