# 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