changeset 0:baf7a079bce0 draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/gsc_signature_score commit 09dcd74dbc01f448518cf3db3e646afb0675a6fe
author artbio
date Mon, 24 Jun 2019 13:40:08 -0400
parents
children 01b2c4fcada8
files signature_score.R signature_score.xml test-data/gene_filtered_input.tsv test-data/gene_stats.tsv test-data/signature.pdf test-data/signature.tsv
diffstat 6 files changed, 515 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/signature_score.R	Mon Jun 24 13:40:08 2019 -0400
@@ -0,0 +1,230 @@
+#########################
+#    Signature score    #
+#########################
+
+# Compute the signature score based on the geometric mean of the target gene expression
+# and split cells  in 2 groups (high/low) using this signature score.
+
+# Example of command
+# Rscript 4-signature_score.R --input <input.tsv> --genes  ARNT2,SALL2,SOX9,OLIG2,POU3F2
+#                             --output <output.tab> --pdf <output.pdf>
+
+# load packages that are provided in the conda env
+options( show.error.messages=F,
+       error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
+loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
+warnings()
+
+library(optparse)
+library(psych)
+library(ggplot2)
+library(gridExtra)
+
+# Arguments
+option_list = list(
+  make_option(
+    "--input",
+    default = NA,
+    type = 'character',
+    help = "Input file that contains log2(CPM +1) values"
+  ),
+  make_option(
+    "--sep",
+    default = '\t',
+    type = 'character',
+    help = "File separator [default : '%default' ]"
+  ),
+  make_option(
+    "--colnames",
+    default = TRUE,
+    type = 'logical',
+    help = "Consider first line as header ? [default : '%default' ]"
+  ),  
+  make_option(
+    "--genes",
+    default = NA,
+    type = 'character',
+    help = "List of genes comma separated"
+  ),
+  make_option(
+    "--percentile_threshold",
+    default = 20,
+    type = 'integer',
+    help = "detection threshold to keep a gene in signature set [default : '%default' ]"
+  ),
+  make_option(
+    "--output",
+    default = "./output.tab",
+    type = 'character',
+    help = "Output path [default : '%default' ]"
+  ),
+  make_option(
+    "--stats",
+    default = "./statistics.tab",
+    type = 'character',
+    help = "statistics path [default : '%default' ]"
+  ),
+  make_option(
+    "--pdf",
+    default = "~/output.pdf",
+    type = 'character',
+    help = "pdf path [default : '%default' ]"
+  )
+)
+
+opt = parse_args(OptionParser(option_list = option_list),
+                 args = commandArgs(trailingOnly = TRUE))
+
+if (opt$sep == "tab") {opt$sep = "\t"}
+if (opt$sep == "comma") {opt$sep = ","}
+
+# Take input data
+data.counts <- read.table(
+  opt$input,
+  h = opt$colnames,
+  row.names = 1,
+  sep = opt$sep,
+  check.names = F
+)
+
+# Get vector of target genes
+genes <- unlist(strsplit(opt$genes, ","))
+
+if (length(unique(genes %in% rownames(data.counts))) == 1) {
+  if (unique(genes %in% rownames(data.counts)) == F)
+    stop("None of these genes are in your dataset: ", opt$genes)
+}
+    
+logical_genes <- rownames(data.counts) %in% genes
+
+# Retrieve target genes in counts data
+signature.counts <- subset(data.counts, logical_genes)
+
+
+## Descriptive Statistics Function
+descriptive_stats = function(InputData) {
+  SummaryData = data.frame(
+    mean = rowMeans(InputData),
+    SD = apply(InputData, 1, sd),
+    Variance = apply(InputData, 1, var),
+    Percentage_Detection = apply(InputData, 1, function(x, y = InputData) {
+      (sum(x != 0) / ncol(y)) * 100
+    })
+  )
+  return(SummaryData)
+}
+
+signature_stats <- descriptive_stats(signature.counts)
+
+# Find poorly detected genes from the signature 
+kept_genes <- signature_stats$Percentage_Detection >= opt$percentile_threshold
+
+# Add warnings
+if (length(unique(kept_genes)) > 1) {
+  cat(
+    "WARNINGS ! Following genes were removed from further analysis due to low gene expression :",
+    paste(paste(rownames(signature.counts)[!kept_genes], round(signature_stats$Percentage_Detection[!kept_genes], 2), sep = " : "), collapse = ", "),
+    "\n"
+  )
+} else {
+  if (unique(kept_genes) == F) {
+    stop(
+      "None of these genes are detected in ",
+      opt$percent,
+      "% of your cells: ",
+      paste(rownames(signature_stats), collapse = ", "),
+      ". You can be less stringent thanks to --percent parameter."
+    )
+  }
+}
+
+# Remove genes poorly detected in the dataset
+signature.counts <- signature.counts[kept_genes,]
+    
+# Replace 0 by 1 counts
+signature.counts[signature.counts == 0] <- 1
+
+# Geometric mean by cell
+score <- apply(signature.counts, 2, geometric.mean) # geometric.mean requires psych
+
+# Add results in signature_output
+signature_output <- data.frame(
+                         cell = names(score),
+                         score = score,
+                         rate = ifelse(score > mean(score), "HIGH", "LOW"),
+                         nGenes = colSums(data.counts != 0),
+                         total_counts = colSums(data.counts)
+                         )
+
+# statistics of input genes, signature genes first lines
+statistics.counts <- rbind(subset(data.counts, logical_genes),
+                    subset(data.counts, !logical_genes))  
+statistics <- descriptive_stats(statistics.counts)
+statistics <- cbind(gene=rownames(statistics), statistics)
+
+
+
+# Re-arrange score matrix for plots
+score <- data.frame(score = score,
+                    order = rank(score, ties.method = "first"),
+                    signature = signature_output$rate,
+                    stringsAsFactors = F)
+
+pdf(file = opt$pdf)
+
+ggplot(score, aes(x = order, y = score)) +
+  geom_line() + 
+  geom_segment(x = 0, xend = max(score$order[score$signature == "LOW"]), y = mean(score$score), yend = mean(score$score)) +
+  geom_area(aes(fill = signature), alpha = .7) +
+  scale_fill_manual(values=c("#ff0000", "#08661e")) +
+  geom_text(aes(x = 1, y = mean(score)), label = "Mean", vjust = -0.3, colour = "black") +
+  labs(title = "Ordered cell signature scores", x = "Cell index", y = "Score")
+
+density_score <- density(score$score)
+ggplot(data.frame(density_score[1:2]), aes(x, y, fill = ifelse(x < mean(score$score), "LOW", "HIGH"))) +
+  geom_line() +
+  geom_vline(xintercept = mean(score$score)) +
+  geom_text(x = mean(score$score), y = max(density_score$y), label = "Mean", hjust = -0.3, colour = "black") +
+  geom_area(alpha = .7) +
+  scale_fill_manual(values=c("#ff0000", "#08661e")) +
+  ylim(0, max(density_score$y)) +
+  labs(
+    title = "Distribution of Cell signature scores",
+    x = paste("N =", density_score$n, "Bandwidth =", density_score$bw),
+    y = "Density",
+    fill = "Signature"
+  )
+
+# Check score independant of low expression
+p_gene <- ggplot(signature_output, aes(rate, nGenes)) +
+  geom_violin(aes(fill = rate), alpha = .5, trim = F, show.legend = F) +
+  scale_fill_manual(values=c("#ff0000", "#08661e")) +
+  geom_jitter() + labs(y = "Number of detected genes", x = "Signature")
+
+p_counts <- ggplot(signature_output, aes(rate, total_counts)) +
+  geom_violin(aes(fill = rate), alpha = .5, trim = F, show.legend = F) +
+  scale_fill_manual(values=c("#ff0000", "#08661e")) +
+  geom_jitter() + labs(y = "Total counts", x = "Signature")
+
+grid.arrange(p_gene, p_counts, ncol = 2, top = "Influence of library sequencing depth on cell signature scores")
+
+dev.off()
+
+# Save file
+write.table(
+  signature_output,
+  opt$output,
+  sep = "\t",
+  quote = F,
+  col.names = T,
+  row.names = F
+)
+
+write.table(
+  statistics,
+  opt$stats,
+  sep = "\t",
+  quote = F,
+  col.names = T,
+  row.names = F
+)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/signature_score.xml	Mon Jun 24 13:40:08 2019 -0400
@@ -0,0 +1,98 @@
+<tool id="signature_score" name="Compute signature scores" version="0.9.0">
+    <description>in single cell RNAseq</description>
+    <requirements>
+        <requirement type="package" version="1.3.2=r3.3.2_0">r-optparse</requirement>
+        <requirement type="package" version="2.2.1=r3.3.2_0">r-ggplot2</requirement>
+        <requirement type="package" version="2.3=r3.3.2_0">r-gridextra</requirement>
+        <requirement type="package" version="1.6.9=r3.3.2_0">r-psych</requirement>
+    </requirements>
+    <stdio>
+        <exit_code range="1:" level="fatal" description="Tool exception" />
+    </stdio>
+    <command detect_errors="exit_code"><![CDATA[ 
+        Rscript $__tool_directory__/signature_score.R 
+            --input $input 
+            --sep 
+            #if $sep == 'tab':
+              'tab'
+            #elif $sep == 'comma':
+              'comma'
+            #end if
+            --genes '$genes'
+            --percentile_threshold '$threshold'
+            --output '$output'
+            --stats '$stats'
+            --pdf '$pdf'
+]]></command>
+    <inputs>
+        <param name="input" type="data" format="txt,tabular" label="Raw counts of expression data"/>
+        <param name="sep" type="select" label="Indicate column separator">
+            <option value="tab" selected="true">Tabs</option>
+            <option value="comma">Comma</option>
+        </param>
+        <param name="genes" type="text" value="" label="Comma-separated list of genes to include in signature"
+               help="Comma-separated list of genes to include in signature, eg &quot;ZNF454,GAPDH,LAIR1,ACAD9,CHTOP&quot;" />
+        <param name="threshold" type="float" value="20.0" label="Threshold to keep a proposed gene in the effective signature"
+               help="signature gene that are not expressed in at least this percentage of cells will not be kept to compute the effective signature" />
+    </inputs>
+    <outputs>
+        <data name="pdf" format="pdf" label="Plots from ${on_string}" />
+        <data name="output" format="tabular" label="signature scores from ${on_string}" />
+        <data name="stats" format="tabular" label="genes statistics in ${on_string}" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="input" value="gene_filtered_input.tsv" ftype="txt"/>
+            <param name="sep" value='tab' />
+            <param name="genes" value="ZNF454,GAPDH,LAIR1,ACAD9,CHTOP" />
+            <output name="pdf" file="signature.pdf" ftype="pdf" compare="sim_size" delta="200" />
+            <output name="output" file="signature.tsv" ftype="tabular"/>
+            <output name="stats" file="gene_stats.tsv" ftype="tabular"/>
+        </test>
+    </tests>
+    <help>
+
+**What it does**
+
+The tools takes a table of _normalized_ gene expression values (rows) in single cell RNAseq library sequencing (columns)
+and a comma-separated list of genes, and returns in a table the geometric mean of expression of these
+genes for each cell/library. This geometric mean is considered as the score for the genes signature for a given cell/library. 
+
+
+**Inputs**
+
+A table of comma (csv) or tabulation (tsv) separated values.
+Gene names should be in the first column and cell names should be in the first row.
+Note that in a number of a csv files, header of the gene column is omitted, resulting in
+a first row with one item less than in other rows. This is handled by the tool that
+recognises this situation.
+
+A comma separated list of genes desired as contributing to the signature score of the cell/library
+
+The expression threshold for signature genes (the aforementioned gene list) to be effectively
+taken into account to compute signature scores. By default, genes are taken into account if
+they are expressed in at least 20% of cells/libraries
+
+** Outputs **
+The tools returns a table "signature scores" that contains
+
+* the cell/library identifier
+* the signature score for this identifier
+* the rate of the signature score, ie whether it is higher (HIGH) or lower (LOW) that the average signature score in all cells/libraries
+* the number of genes detected in the cell/library
+* the total number of aligned reads in the cell/library
+
+    </help>
+    <citations>
+        <citation type="bibtex">
+        @Manual{,
+             title = {R: A Language and Environment for Statistical Computing},
+             author = {{R Core Team}},
+             organization = {R Foundation for Statistical Computing},
+             address = {Vienna, Austria},
+             year = {2014},
+             url = {http://www.R-project.org/},
+        }
+        </citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene_filtered_input.tsv	Mon Jun 24 13:40:08 2019 -0400
@@ -0,0 +1,43 @@
+1001000235.G10	1001000174.B1	1001000177.C5	1001000182.H4	1001000175.A2	1001000230.B11	1001000237.E9	1001000173.E10	1001000241.E7	1001000249.A3	1001000179.A7	1001000247.F11	1001000240.D9	1001000178.G5	1001000249.E3	1001000174.H6	1001000181.F8	1001000177.A10	1001000235.D2	1001000240.G10	1001000248.E7	1001000012.B6	1001000179.H4	1001000230.C1	1001000175.H9	1001000241.G11	1001000174.G2	1001000252.C6	1001000186.D11	1001000239.G7	1001000258.G11	1001000264.A1	1001000174.A10	1001000255.E9	1001000242.B5	1001000179.F3	1001000185.F9	1001000267.F8	1001000183.G10	1001000247.E7	1001000031.A2	1001000271.B1	1001000187.G6	1001000236.C6	1001000238.C12	1001000187.D6	1001000235.E10	1001000036.C1	1001000253.H2	1001000231.C2	1001000178.C10	1001000267.C1	1001000180.E4	1001000173.E5	1001000179.F5	1001000245.G11	1001000185.D5	1001000012.A7	1001000010.B4	1001000265.D11	1001000032.F1	1001000036.H9	1001000245.B3	1001000185.A8	1001000178.C6	1001000037.F10	1001000245.H4	1001000012.B10	1001000245.F2	1001000249.G2	1001000187.E11	1001000266.A4	1001000266.G4	1001000179.E3	1001000178.C11	1001000031.D12	1001000037.D6	1001000250.G2	1001000018.F11	1001000175.F9	1001000254.G1	1001000264.F12	1001000183.B3	1001000241.E6	1001000183.E6	1001000181.F10	1001000176.B1	1001000235.B7	1001000231.D12	1001000230.E7	1001000186.H6	1001000258.H5	1001000237.H10	1001000231.B7	1001000270.H8	1001000240.G1	1001000177.D11	1001000185.D3	1001000238.B5	1001000174.E10
+BAI3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	9.97662501806838	0	0	0	0	12.8615775772142	0	0	0	15.9032354384535	0	0	0	0	0	12.2158463533178	9.68026850722175	15.3729581524844	0	0	14.28403727033	0	0	0	0	17.0775051033723	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	9.86467441602363	0	0	0	0	0	0	14.2185940019444	0	0	0	0	0	9.4604919129408	0	0
+FAM63B	0	14.7268225958904	0	0	0	0	0	14.2095873331695	0	0	0	7.05523661711308	0	0	0	0	10.8662524562421	0	0	0	0	0	0	12.5659445674216	0	0	0	0	0	0	17.508917577493	0	15.2092038075611	0	0	16.3552364080959	0	0	0	0	0	0	0	0	0	0	12.833405122753	0	0	0	0	10.631490277574	0	0	0	0	6.49910345713958	0	0	12.6988507765885	0	17.5291982691478	0	0	0	0	0	0	9.72047933810935	0	0	8.00314342388438	0	0	0	0	0	10.5923353166174	0	13.1956852586776	0	0	0	0	14.4254341461373	0	0	0	0	13.2598797712496	0	0	0	0	0	0	0	6.6653716296684	0	0
+TMEM132C	0	0	0	0	0	0	0	0	0	15.6304274760255	0	0	0	0	11.3724171014623	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	13.7057920287568	0	0	12.4990036192117	0	0	0	0	0	0	0	0	0	0	0	12.3619870470136	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	16.6895776681193	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+CNOT10	0	0	0	12.5284247529463	0	0	13.6309484246823	0	16.7903618799946	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.8358043543831	8.46449144379743	0	0	0	0	15.1371239722208	0	0	0	0	0	0	0	0	10.2006276343018	0	0	0	0	0	0	0	0	0	14.7982200816142	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.3047842000994	0	0	0	0	0	0	0	0	0	0	0	0	0	12.4261995844325	0	0	0	0	0	0	0	0	0	0	0
+ZNF454	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	14.5579651511802	0	0	0	0	0	0	0	0	0	0	0	13.4963072779489	0	0	0	0	0	0	0	0	0	0	7.78016821618689	0	0	0	0	0	0	16.5388867919625	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	13.9877698316934	0	0	0	0	0	0	0	0	10.5434420502931	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.3814906941786	0	0	0	0	0	0	0	0
+NCAPH2	0	0	11.5345942380357	0	0	0	0	0	0	0	0	0	0	0	0	13.0829867301604	0	0	0	0	0	0	0	0	0	14.1653548255816	0	9.03949508564814	0	0	0	0	0	0	0	11.9202053526704	0	0	0	0	0	0	0	0	0	0	0	0	0	16.3990901824432	0	12.2683029418776	0	0	0	0	13.7869478696612	0	0	0	0	0	0	0	0	14.7279138778285	15.2593911311788	0	0	0	0	0	17.609647687894	0	0	0	0	0	0	0	0	0	0	0	13.272662879133	0	0	0	8.96938688129654	0	0	12.8650747588738	12.3882534504039	12.6353379357894	0	0	0	0	0	0
+COQ7	0	0	0	13.5701193354039	0	0	0	14.2882952658838	0	0	0	0	0	0	0	0	0	0	0	0	0	12.98541820112	0	0	0	0	0	15.2847144623144	0	0	0	0	12.2342685728768	0	0	0	12.6758526237534	0	0	0	0	0	0	0	0	0	11.4186970312285	0	0	0	0	0	0	11.2771372004206	18.2020669163213	0	0	0	0	0	0	0	0	0	0	0	8.19818572467656	0	0	0	0	12.2457337765228	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	13.1984856213445	14.878974970667	0	0	0	0	0	0	10.6519846561343	0	0
+CDKN2A	0	15.2323819127673	0	13.0653768750913	0	0	0	14.8517972801666	0	0	0	0	0	0	15.1792666328134	14.5158414477221	14.3249812943857	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.1839671881409	0	0	0	0	13.6252954998221	14.3586212967604	0	0	12.8615775772142	0	0	0	14.4820322945783	0	0	0	0	0	11.7090140541993	0	15.6359868919784	0	0	14.5705871835926	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.9475194039455	15.3686302879011	0	0	14.1236340494488	0	13.8744494733558	14.8630879947322	0	0	0	0	0	13.3955299742342	0	0	0	0	0	14.3022108654104	0	13.3758190303343
+SIN3A	0	0	0	0	0	0	14.4209773988208	15.0226763893221	16.1899759081578	9.95003426374555	0	0	0	0	0	0	0	14.4303821191113	12.9010227830212	0	0	0	0	0	0	11.3584709439565	0	11.622171049339	0	0	0	0	6.78765525343333	0	0	0	12.782752079249	0	14.3435151272651	0	0	13.8954257293782	0	0	0	0	13.3252011140895	0	0	0	0	16.1009210058919	13.0006131527714	0	0	0	7.49110654070788	0	0	12.2135107427725	13.0610204129302	15.3592999623466	0	0	0	0	0	0	0	17.7937061095344	0	12.951887578663	0	0	0	0	0	15.4422895108633	0	8.84816810973073	13.9891427870017	13.7046077277047	0	0	11.1856737526767	0	0	0	0	16.1094188169497	0	0	0	12.013971653269	0	19.5461394166498	0	14.6845655488756	0	0
+SLC15A4	0	0	0	0	0	0	12.5055519368312	0	11.9730847919621	0	15.5200882833393	8.04980255816012	18.801744056449	0	0	0	0	9.75955678423768	13.7528400288117	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	10.5771621288101	17.6916294312886	10.2982667055414	0	12.4177100097054	0	0	14.9285441792293	0	0	0	0	0	0	0	13.2870083320582	0	0	0	8.03414249517279	0	0	0	0	0	14.7493122272294	0	0	0	0	16.9315801108383	0	0	0	0	0	0	0	0	0	0	0	0	7.79057632864985	0	0	0	0	0	0	0	0	0	14.81362145992	0	8.67829614575196	0	13.4499727997009	0	10.8989013419926	0	0	0	0	0	0
+ACAD9	0	0	16.2234258593708	14.492442405164	0	0	0	0	15.7169137761584	14.9930133559579	0	8.63294914792805	0	0	0	14.2072248652349	0	13.0434645456351	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.5493546400244	0	12.5198796145802	0	0	0	14.6805356565772	0	0	12.5567686054788	0	0	0	0	11.7405197238174	0	16.0621737645231	0	0	0	0	0	0	0	12.612578446803	0	0	0	0	0	0	0	17.5470406918264	0	7.20308956606826	0	0	0	0	0	0	0	0	0	0	0	16.0141894125892	11.6110302693225	0	0	0	0	0	15.1939025698973	16.7275590854048	0	0	15.4296903727673	15.1289456063365	0	0	0	0	0	0	13.870352617296	0	0
+BPHL	0	14.9545367520242	0	0	0	0	0	0	0	15.1838302170611	0	0	0	0	0	0	0	13.5261980507994	0	0	0	16.6142723524622	0	0	12.3024975745867	0	0	0	0	0	0	0	0	0	0	0	0	0	10.7744140236156	0	0	0	0	15.4721686896286	0	0	0	18.6316111467234	0	0	0	0	0	0	0	0	0	0	0	0	8.93452018734168	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	11.8454263386168	0	0	0	0	14.1205949920859	0	0	13.3542775120864	0	10.2609089625605	0	11.2804989570471	0	0	0	0	0	0	0	0
+LAIR1	0	0	16.8121051285758	0	16.4428687496653	19.2690208251233	14.928561508656	0	18.5681735905842	0	16.402717282702	11.0450309082809	13.2972638315946	0	0	0	0	12.9478985899637	14.2712755672619	16.5993866689099	0	0	0	0	0	15.9022654550114	0	0	0	0	0	0	0	0	10.4617636048026	0	0	18.2300480757718	0	15.9391526713733	0	0	0	17.6134999941538	18.289596965257	0	14.7280783658143	0	0	18.9170804812424	17.8060439826231	0	0	0	0	12.5297141266791	0	0	0	18.8742754252779	0	0	0	0	18.3825725033061	0	0	0	0	0	0	15.4651466183103	0	0	0	0	0	0	0	0	0	9.24744364660748	0	15.624689145562	0	0	17.7307835444474	18.1550445838864	18.5344656876572	0	0	0	18.0724877178749	16.1773886786838	16.8072530145679	0	0	0	0	0
+H3F3C	11.1607094198415	0	0	0	8.39187158768057	0	0	0	8.65438276660284	0	0	0	0	9.19383180230137	8.79017289622793	7.44725465059114	8.54741253492036	0	0	0	0	7.56660593382039	11.4974394278347	0	13.8872696646964	0	0	0	9.11798372490238	0	0	12.4971899063428	0	0	0	0	0	0	0	0	9.16232412205619	0	0	0	0	8.04450047834992	0	0	0	0	0	0	0	7.03963574788986	9.40329440183953	0	0	0	8.93030835947626	10.8920382273485	7.93746577895439	9.40719573753274	0	0	0	7.19087448203305	0	0	0	0	0	0	0	0	0	0	9.9697506646687	7.79057632864985	0	0	12.2523841919916	9.24744364660748	0	0	0	0	7.93256321558326	0	8.96938688129654	0	0	0	0	0	12.1636987177898	0	0	6.6653716296684	0	0
+GAPDH	13.9675240844604	19.6254156324893	19.0963528414394	19.6389598490177	19.5767787987051	17.6113069035244	19.5650188440008	19.5732998251266	15.432190143488	18.9495167933183	18.7536805221057	19.7847627831201	18.6808282325277	19.2788312899389	19.1586894359312	19.5501018145226	19.7122250817031	19.660079836818	19.5180571390119	0	19.1972189539831	19.1039425294161	16.9454122738894	19.3255094154056	19.7698191131889	19.4400724514741	18.730703177109	18.8164732861749	19.5290147239376	0	19.3609785558425	0	19.3303270856306	19.4752562895296	19.8018899749249	17.9542625655662	19.5012044632754	19.1928682420086	19.5680078418978	19.8177674491082	19.8774819334562	19.520277156248	18.2328961429086	19.1888075447921	18.512947023836	19.1553721846887	19.7051143675419	18.8008231370688	19.8211461370846	17.2492589535506	17.8271568783182	19.5196638576726	19.583897852596	19.4382863900577	18.9129178089292	19.7481791385327	19.5014410644966	19.3229785219955	0	18.0205672907971	19.1621919615776	19.0234575397912	0	19.9315700120185	0	19.7922232290571	19.5151951781136	19.3844900778728	19.6181269506108	18.5714784761645	18.9785469786541	19.6708199784794	0	18.0680758190264	18.2011515655665	18.7904057428566	19.8570559807556	19.6674543438932	18.9407821190977	19.6640973664531	18.236986247197	19.7676511896841	19.6654954440557	19.626593261232	19.5927487214601	19.6414233612588	18.4560804567202	18.8217484049811	18.1612675884053	19.0841637151704	19.4442628059619	18.1441099947659	18.7655079680702	19.3369395989576	19.5904893591685	17.7788047042953	13.1578807728769	19.6005515531329	19.8842125792936	19.7482741410194
+ISOC2	0	0	0	0	0	0	0	0	0	0	0	13.9751748776341	0	0	0	0	0	0	0	0	0	0	0	0	0	12.095216738393	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	13.9201802289091	0	0	0	14.4770659693208	0	0	18.4606818343557	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	12.5916342962151	0	11.6110302693225	0	0	0	0	11.564042436965	0	0	0	0	0	0	0	0	13.9856973442018	0	0	0	12.9731952779312	0	0
+PARVB	0	0	0	0	0	0	0	0	0	8.36798588060598	17.5644591436462	8.63294914792805	0	0	0	0	0	9.56714945676137	0	0	0	0	0	0	14.6241971737244	0	0	0	0	19.0620411371186	0	0	0	0	0	0	0	0	0	8.83899578889736	0	0	0	10.3857528419314	0	0	10.6414658264953	0	0	10.7851814206525	0	0	0	0	0	10.1384332476926	0	0	0	15.7241955141096	11.739345520997	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	14.1361793822214	15.3541741852214	0	0	0	0	11.1662198050734	11.8985235043799	0	13.2243601909983	0	0	0	0
+CYTH4	19.565222422716	0	12.6718324758784	0	0	0	0	0	16.8939836289059	0	17.6493476159209	0	0	0	0	0	0	12.1157685352067	16.1580117238686	18.9874800861837	0	0	17.8719857871482	0	0	0	0	0	0	0	0	0	0	0	0	0	0	14.3622154252768	0	0	0	0	0	10.3857528419314	0	0	12.2258260817879	0	0	17.1182745214959	0	0	0	0	0	0	0	0	0	0	0	0	0	0	16.6003771808032	0	0	0	0	0	0	15.7984343892144	19.3059663099763	0	0	0	0	0	0	0	0	0	0	0	0	0	17.4599836250315	15.7117186290466	0	0	0	0	0	15.2674159562888	15.470844537826	0	0	0	14.320031834855	0
+ITGB1	16.5524115334226	0	13.9127130167146	0	14.2702861817444	0	10.6317442695899	7.47616961300568	16.1020294218816	16.2584486605537	0	14.0444333408416	0	0	0	0	0	10.4593562101592	13.8832276343249	0	13.2839277680841	10.1452125757145	0	0	0	13.7730619399556	0	0	0	0	0	0	0	10.3144999964638	13.8758737245996	17.0897683985999	15.1650562393933	0	0	11.9236761456656	0	0	15.9421349784233	13.7770943034015	15.1264024486302	0	13.1909137363536	0	0	15.2869000730519	0	0	0	0	0	0	11.3416020718846	0	13.7854312771224	12.8914687305369	17.5609326505952	0	0	0	0	0	0	0	11.0413810146209	0	0	13.7525012147566	0	0	17.0619679147972	0	13.5831386169409	7.79057632864985	0	12.8452302982932	0	15.7045266782688	0	0	0	0	14.1165516730558	16.2368014722075	0	0	0	0	11.1662198050734	11.6355646739854	14.4853752395672	0	19.5743715095968	13.1590401358081	13.531587238588	0
+TBC1D15	0	0	0	0	0	0	14.6157852679927	13.4681715082728	15.1265715602172	0	0	0	8.97805620288587	0	0	12.2466160939955	0	0	0	0	0	0	0	0	14.3022833608817	0	0	0	0	0	0	0	0	0	0	0	14.7696599285819	14.1398344212538	0	7.84214279740412	0	0	0	0	0	13.8464786200967	12.7876078094877	0	0	0	0	0	8.09881857293266	14.1161723322271	0	0	0	12.2331635913195	0	0	0	0	0	0	0	0	0	9.03685054706218	0	15.69820428519	0	0	16.2470889438691	0	0	0	0	10.3700986313446	0	11.0473499497383	0	0	16.1600988014932	0	9.67225038289575	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+SLC4A5	0	0	0	0	0	0	0	0	12.5579276699762	0	0	0	0	0	0	0	0	0	15.6040070483295	0	0	0	0	0	12.3024975745867	17.4240187762475	0	0	0	0	0	0	0	15.5839249432323	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	12.1997078640868	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	9.20949369342006	0	15.8547773175467	0	0	0	13.6963403552601	0	0	0	0	0	0	0	0	14.1700956009628	0	0	0	0	0	16.700594463854	16.7803145499703	13.7395533024048	0	0	0	0	0	0
+CLPB	0	0	0	0	0	0	0	0	0	15.4404605352032	0	0	0	17.9874113410736	0	14.6678383827121	13.7915805418009	13.0059943371471	0	0	0	0	0	0	14.6241971737244	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	7.83951982992838	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	12.2978691668123	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	11.0339793114806
+RABL5	0	0	0	11.3157528916532	0	0	0	15.3689450971104	0	0	0	7.05523661711308	0	0	0	15.226904444886	0	11.8457462945983	0	0	0	0	0	0	0	0	0	0	0	0	15.3632666147242	0	12.8621941110719	0	0	0	14.04136717119	0	15.2971879071448	0	0	0	0	0	0	0	0	0	0	0	0	15.1817935472521	0	15.5794044968818	0	0	0	0	17.6822424646337	0	0	0	0	0	0	15.0482875700304	13.8080755896337	15.9883197308894	15.5516882859107	0	0	0	0	0	0	0	0	15.8229895019119	0	12.1083954006359	0	0	9.8397262889261	0	15.2163108766179	0	0	0	0	9.67653424168449	0	0	0	14.1712422640945	0	0	0	11.5095636628791	0	11.4743708274669
+C3orf62	0	0	0	0	10.7103595343908	0	0	0	14.8005954730979	0	0	0	13.7826497103227	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	19.0553637030836	0	0	0	0	0	0	0	0	0	0	16.4650808495522	14.632658418388	0	0	12.5338904556849	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	12.7526057453521	0	0	18.9918607115853	0	0	0	0	11.771446391447	17.3109910314195	15.24510519106	0	9.49737504439349	0	0	12.0969002699626	11.3546907455589	0	0	0	0	0	0	0	0	0	0	0	10.9271170330039
+ZFHX4	0	0	0	13.3153283516132	0	0	0	10.7907868950769	0	12.7561384740952	0	0	0	0	9.78854253362354	8.44311541279966	0	0	0	0	16.9741098194801	0	0	0	0	0	0	0	13.5078261710277	0	0	0	0	0	0	0	0	0	10.7744140236156	0	0	0	0	0	0	0	0	0	0	0	0	11.046300397357	17.0506591797189	14.2478709231503	0	0	0	0	0	0	0	11.4056012259217	0	0	0	0	14.4507174300526	0	0	12.0066500876574	0	0	0	0	0	0	0	8.78731467215723	0	0	16.3395687081691	0	0	0	13.4178468367227	10.8488716918317	0	0	0	16.1666428920787	0	15.8242642517186	0	0	0	0	0	13.2361997813082	0	0
+AKT1	0	14.4197803967601	13.5342294573354	15.659914079061	0	0	11.2164036430626	0	0	0	0	0	0	0	0	0	0	0	0	18.4151189738897	0	0	19.2451355130075	17.0793407552452	0	0	0	0	0	0	0	0	0	15.2814936034111	0	0	15.4098537796202	0	0	0	0	0	0	0	0	11.846772416296	13.8776974099507	0	0	0	0	15.4830548564252	0	0	0	10.4601053245497	10.4840726908746	0	18.5657877350539	0	0	0	17.9755175145577	0	0	0	0	0	0	0	0	14.4238395702565	0	0	0	0	0	0	0	13.5566488766966	0	0	15.264452413692	16.5934242469045	14.3550480965986	8.26781508747852	0	0	0	0	0	0	0	12.7728208452089	9.84302783084373	0	0	0	0	0
+ZNF780B	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	13.2720001357907	0	0	0	0	0	0	0	16.4573464905168	12.3024975745867	0	0	0	0	0	0	0	0	11.1619932934999	10.4617636048026	0	0	10.5557507824395	10.0968362352896	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	16.05053089829	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+RNF185	0	0	0	0	0	10.1696093600822	0	12.2232334570851	0	0	0	7.05523661711308	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	18.7637301237585	0	0	0	0	0	11.8182259744633	0	0	0	0	0	12.8443019212586	0	0	0	0	0	0	0	0	0	0	11.4016955701217	15.6209971081821	14.3960213052298	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	7.79057632864985	0	0	0	0	0	0	12.4483468132203	0	0	0	0	0	0	0	0	12.4009126973647	0	0	0	0	0	0
+SMYD3	0	12.4199778569919	0	0	0	0	14.4553273560816	0	0	0	0	11.9027057914045	0	0	0	11.439483812096	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	11.9831809513105	0	0	8.48709139811949	14.2102199433841	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	6.53870789354306	0	0	0	0	0	0	0	0	0	8.67829614575196	0	0	0	0	0	0	0	11.6515362772681	0	0
+CCT4	0	12.5608159031083	0	11.6111039620927	0	0	14.928561508656	0	0	0	0	14.52014278721	0	0	11.5947317819049	13.5265493694117	0	14.5523673454284	0	0	0	15.9852625308647	0	16.4105528076041	0	0	0	0	16.2446864845683	16.2547020303542	0	0	15.8593701506428	15.1207620425777	9.20016066961385	0	0	0	14.4878984272626	0	0	0	15.541044014531	10.3857528419314	0	0	0	17.0657644331678	0	0	0	0	0	14.3233193729971	17.5959263690384	11.9448736109475	11.8757664188696	0	14.6822904799705	0	0	12.9902091512766	0	0	8.64976283074145	14.5429704635478	14.3226185868992	0	11.0413810146209	0	0	0	0	0	0	18.0463061150311	0	0	18.2955113945436	13.7899945334298	0	0	0	0	9.4501526353054	14.1458493811894	0	0	14.3241281556631	15.8744665433559	0	14.9429296873924	0	9.8996567204838	0	0	15.2083870890718	13.5091924972372	0	13.6854773101127
+OBFC2B	0	14.7782198861919	0	0	0	0	0	0	0	0	0	0	0	0	13.1090017252155	13.2204751387523	0	0	0	0	0	0	0	0	0	0	0	15.8311914189231	0	0	0	0	13.2009554691452	13.3838909271687	0	0	0	15.1397944602615	13.7044355367675	0	0	0	0	15.7597395438236	0	0	9.83478813017416	0	0	0	0	0	0	9.61543117273472	0	0	13.2381018765857	0	0	0	0	0	0	0	0	0	0	15.3379168100524	0	16.3502711141373	0	0	0	0	0	0	0	0	0	12.1672760205714	0	0	10.8389388619384	0	12.745979233988	0	0	0	14.2519819769156	0	0	0	0	0	0	0	0	0	0	13.7496028864221
+APIP	0	0	0	0	0	0	14.5053658491751	0	0	0	0	0	0	0	0	0	0	11.1508435020056	0	0	0	0	0	0	0	0	0	0	0	0	0	0	9.58377370079595	0	0	0	0	0	0	0	0	0	0	0	18.0252207984696	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	17.3115111369962	0	0	0	0	0	0	0	0	0	0	16.5814087488351	0	7.79057632864985	15.4795417723719	8.52702242192133	18.059448673161	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	11.5584567691369	0	0
+CHTOP	16.745054735021	0	17.3466147247473	0	15.7799131839274	15.8122374661064	9.63265326937863	0	0	13.4512041535885	14.520118984713	0	0	0	0	12.4392240619043	0	0	9.5452144270117	14.938904538072	10.825146920729	0	13.2340556798273	11.318344169959	0	0	0	15.8822647427747	16.7374499112429	0	0	0	13.5295470065472	0	9.46278622874624	0	7.98091432025088	0	11.2336209877566	0	0	13.6786296929006	17.4104379269865	14.4722004278722	0	0	0	0	0	0	17.0198066091866	8.46474483194135	13.9009957461827	10.7299176833861	0	0	13.5706464736428	0	0	0	0	0	0	0	0	0	13.2378086321315	0	0	0	18.1641616693075	0	13.4398453097056	0	0	0	0	0	0	10.1093752472331	0	0	0	14.019026433977	12.745979233988	0	0	0	0	0	0	16.5591574545572	0	10.3143165799555	0	0	0	13.9273047730215	0	13.0334631866655
+CHFR	0	10.9424005948458	13.7358474563822	12.7386093483035	0	0	0	0	0	0	10.5210397222539	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	18.5145545583833	0	0	0	0	0	17.4405491237334	10.2982667055414	0	0	13.0454659231443	0	11.0547071854939	16.8254795670235	14.0851968356427	0	0	0	0	0	14.2438696254744	0	0	0	0	0	0	0	0	0	14.5917769944055	0	0	18.5411128749616	0	0	12.4291553814253	0	0	0	0	0	0	0	18.4629341793756	0	0	0	13.8065141346015	0	12.1083954006359	0	0	0	11.9551725747085	14.7211605644646	0	0	14.1615733911273	9.96794706612638	0	0	0	0	9.8996567204838	13.8415544299119	0	0	0	0	0
+PSPH	0	11.3827802431641	0	13.3950479346999	0	0	9.63265326937863	13.8775309918482	0	0	0	0	0	0	0	13.9468502676446	0	0	11.8655969070345	0	0	0	0	13.4053749225104	0	0	15.5161365961368	0	0	0	0	0	15.8325539409012	0	0	0	9.97662501806838	0	12.4742833966341	0	0	14.9609646288519	0	0	0	0	7.83951982992838	0	0	0	0	0	0	14.6940185938879	0	0	11.768880745047	16.7642583238722	0	0	0	0	0	0	0	0	11.7172556561314	0	12.1785111141961	0	0	0	0	0	0	0	11.7760775533159	12.8717009683037	0	14.9282938714688	0	0	12.8383480095263	0	14.2382402378366	13.1701738608004	0	0	0	0	0	11.50280852306	0	8.31771178485434	0	0	0	15.0261704271014	0	0
+MYO7A	0	0	10.2133954279646	0	0	0	0	0	15.8307316436531	0	0	0	0	0	0	0	0	13.7121952434523	15.9313225221491	0	0	0	0	0	0	0	0	16.8049477311572	0	0	0	0	0	0	0	13.1609986763417	0	0	0	0	0	0	0	0	0	0	8.83636708837122	0	0	0	17.463590172088	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	9.1875306716268	0	0	13.5241872063119	18.0750354938906	0	0	10.2810788111136	17.2459745865081	15.9279160530013	12.748556401713	0	0	0	0	0
+DUSP14	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	17.682339347864	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	15.315185545429	13.7402034707105	0	0	0	0	0	0	0	0	0	13.0068022983915	16.2881643662067	0	0	9.93304513317431	0	0	0	0	0	0	16.1889386483903	0	0	0	0	0	0	0	0	14.2903113142977	0	0	0	0	0	0	0	0	0	8.92960758696251	0	0	0	0	0	9.58251231821503	0	0	0	0	0	0	0
+LSAMP	0	0	0	14.6759892692826	0	0	0	12.0533461710639	0	17.443105373872	0	0	0	0	18.0085029188716	14.9703906666539	0	0	0	0	15.1097945143932	16.4778545804206	0	10.3189090138321	0	0	16.8967216358908	10.0381235983496	0	0	16.5804778250305	0	14.0965479473356	15.1259052017533	0	0	14.4671092099988	0	15.3127843769133	0	7.58238867217773	17.0198239388304	0	0	0	8.04450047834992	0	0	0	0	0	13.968540182416	15.71562514092	15.2670695731409	0	0	16.0848565947262	16.8549278933251	0	0	15.0084279381472	0	0	0	0	9.64220443531159	12.2810179092402	17.0312914793051	12.2426279199397	14.4957467346967	17.5289904393214	0	0	0	0	17.4281796010913	7.97406042331398	0	0	0	17.2062943205767	9.24744364660748	0	0	9.1875306716268	0	0	0	0	0	17.2240719991621	18.2874179157258	0	0	0	0	0	13.639885471395	0	0
+IFRD2	0	14.1567591557826	0	0	14.957471072991	0	11.7467317882544	12.6777177703235	0	0	0	14.9692054355984	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	16.1887921858769	0	0	0	0	0	0	0	13.3325488559645	0	0	15.4049392399236	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	11.9828942206529	0	0	0	0	0	0	0	0	0	0	0	0	0	15.220111460789	0	0	0	0	0	15.9054397866496
+PSMC3	0	13.2005548043296	14.8560845850134	13.9643699083462	0	0	15.3496874953813	10.7907868950769	0	15.1318370018154	0	9.04707783388214	0	8.19629321739164	8.79017289622793	0	0	15.8347317159755	0	0	0	17.0608232736151	0	0	0	13.5804315841045	0	16.8246657947268	0	0	0	0	14.0034440332771	13.6639750287706	9.87731250666145	15.9198563257041	14.9976043265065	8.23765146833625	14.0590768628974	0	0	9.47110050463318	0	0	0	15.9579116555843	14.8885374422562	0	0	9.20185308314151	17.7774040608022	15.4550410979026	0	0	0	12.7812138562999	13.3160965297846	13.362283927802	0	16.4148573168466	0	16.3937707725726	0	0	16.275541157128	7.77254179434776	16.4506691081895	0	17.0179871238337	0	0	12.4571973732293	0	18.4730583687277	0	0	0	14.7148366132387	0	14.1156444482226	0	0	0	0	0	0	14.2842702042516	0	0	16.3258394378728	16.0093455986421	0	0	12.9572206787611	0	0	0	13.4841036871113	0	9.22834347315191
+MUM1	0	0	0	12.6633325294353	0	0	0	14.5555669503357	0	13.3179500884142	0	0	0	0	16.5748276652721	0	0	0	0	0	13.6318200750724	0	0	12.710311816626	0	0	18.214454853308	15.1660730637326	0	0	0	0	14.7518697094683	7.00273235200855	0	0	14.1650955067633	0	0	0	0	0	0	13.2917085826559	0	0	12.2258260817879	0	0	0	0	0	0	11.886990211753	11.7235170132018	0	0	0	0	0	0	0	18.3760540871383	0	0	0	12.6529208030743	0	0	0	0	0	0	0	0	0	0	11.244072167057	0	0	0	0	14.4820702391067	14.2768099711357	0	16.0313326070449	16.1554843460377	0	0	15.7728280344041	10.6703592668752	0	0	13.6708456975204	0	0	0	13.8991097089352	0	0
+DIAPH2	0	0	0	0	14.2205357083466	16.7152640709125	0	0	0	0	0	0	0	16.654904535232	0	0	0	9.08248316789768	0	0	0	0	0	0	0	0	0	0	15.4373454971523	0	0	0	0	0	0	0	15.0941747307558	0	0	0	0	0	13.8406723774638	0	11.5418835561333	0	0	0	0	15.3892593189199	0	0	0	0	0	11.3076469757304	0	0	0	13.3508485655876	0	0	14.3317256961498	0	0	0	0	0	0	0	0	10.8056703376854	0	0	0	0	0	10.9546977217628	0	0	0	0	0	0	0	0	0	0	11.7742726683055	0	0	0	0	13.9279854762358	8.84459780169115	0	10.3514726687616	0	0	11.548346056541
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene_stats.tsv	Mon Jun 24 13:40:08 2019 -0400
@@ -0,0 +1,43 @@
+gene	mean	SD	Variance	Percentage_Detection
+ZNF454	0.922860300134436	3.46176149331655	11.9837926366092	7
+ACAD9	3.21757044598762	6.03354965169885	36.4037213995154	23
+LAIR1	5.14073096940228	7.67228689265092	58.8639861631431	32
+GAPDH	17.6727587681588	4.98787838098139	24.8789307434615	93
+CHTOP	4.95213087424945	6.69826385145611	44.8667386237237	37
+BAI3	1.40915813751371	4.12336508696455	17.0021396403981	11
+FAM63B	2.44551578150534	5.13806432586195	26.3997050166952	20
+TMEM132C	0.822592049405892	3.30504805041197	10.923342615532	6
+CNOT10	1.35116986328472	4.15039762997951	17.2258004869395	10
+NCAPH2	2.09924645828476	4.9160781393554	24.167824272248	16
+COQ7	1.81109934358668	4.59246883791874	21.0907700272547	14
+CDKN2A	3.14847608508595	5.97643617835182	35.7177893939125	22
+SIN3A	4.00526302988229	6.32973969419456	40.0656045962622	30
+SLC15A4	2.6490939213568	5.36541152568955	28.7876408400022	21
+BPHL	1.8725575575664	4.76402741808616	22.6959572402767	14
+H3F3C	2.69750936927498	4.35063868472497	18.9280569650254	29
+ISOC2	1.35653919273248	4.13500630208934	17.0982771183186	10
+PARVB	2.21851609168455	4.93366814223579	24.3410813377123	18
+CYTH4	3.15940473609362	6.446078714101	41.5519307883859	20
+ITGB1	5.73749610754924	6.96917363119079	48.569381101685	42
+TBC1D15	2.64803303609142	5.30241142820209	28.1155669539282	21
+SLC4A5	1.85823253159878	4.89934798569655	24.0036106849488	13
+CLPB	1.20688850619883	3.94292278228986	15.5466400671004	9
+RABL5	3.2703554589894	5.97444372569743	35.6939778315254	24
+C3orf62	2.21928690308303	5.23726221704512	27.4289155300884	16
+ZFHX4	2.71178769759176	5.4146903421813	29.3188715017114	21
+AKT1	3.4403135511678	6.3127111628083	39.8503222250445	24
+ZNF780B	1.00358719015216	3.48539676962484	12.1479906417113	8
+RNF185	1.46932887276529	4.13672007089318	17.1124529449304	12
+SMYD3	1.11766527425951	3.45565630150241	11.9415604741133	10
+CCT4	5.58991399452656	7.04582138621306	49.6435990064173	40
+OBFC2B	2.56257992189769	5.37946105314442	28.9386012222977	19
+APIP	1.48573169701519	4.42462910898839	19.5773427521074	11
+CHFR	3.2793294035845	6.00856983357212	36.1029114449129	24
+PSPH	3.45898367616203	5.82691731716674	33.9529654210976	27
+MYO7A	2.08943827729343	5.13674406841985	26.3861396244465	15
+DUSP14	1.34957110029642	4.17409370205428	17.4230582335292	10
+LSAMP	5.40538485683009	7.20340373028298	51.8890253014547	38
+IFRD2	1.56542610972806	4.50279575682847	20.2751696277125	11
+PSMC3	6.17973106872374	7.13113762893614	50.8531238828289	45
+MUM1	3.59113963428165	6.20728875372071	38.5304336720676	26
+DIAPH2	2.45173786931265	5.19109016758801	26.9474171280289	19
Binary file test-data/signature.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/signature.tsv	Mon Jun 24 13:40:08 2019 -0400
@@ -0,0 +1,101 @@
+cell	score	rate	nGenes	total_counts
+1001000235.G10	3.91067297444198	LOW	5	77.9909221954615
+1001000174.B1	2.10477034315281	LOW	12	168.400445734346
+1001000177.C5	17.3373396414863	HIGH	11	159.937195211458
+1001000182.H4	4.10738125088592	LOW	14	192.634771492111
+1001000175.A2	8.44220431060683	HIGH	8	114.350084817451
+1001000230.B11	8.55876574549129	HIGH	5	79.5774386257488
+1001000237.E9	7.28301224420602	HIGH	15	201.765971829942
+1001000173.E10	2.10337163126214	LOW	15	201.227911442868
+1001000241.E7	8.19202003890676	HIGH	13	194.63692225468
+1001000249.A3	7.86252533808187	HIGH	13	186.873952274257
+1001000179.A7	8.17510090773342	HIGH	7	110.931451554681
+1001000247.F11	6.59043743407966	HIGH	14	155.769944463327
+1001000240.D9	3.96999174048949	LOW	5	73.5405420337799
+1001000178.G5	2.09541561385605	LOW	5	71.3112721859375
+1001000249.E3	2.09214340332731	LOW	10	132.36632558755
+1001000174.H6	7.66677807322868	HIGH	17	226.760822446058
+1001000181.F8	2.10709400933102	LOW	5	67.2424519090522
+1001000177.A10	7.59091943449932	HIGH	16	204.694215735197
+1001000235.D2	7.18077413419506	HIGH	10	143.430575780825
+1001000240.G10	3.96828356565184	LOW	4	68.9408902670553
+1001000248.E7	3.79680269738866	LOW	7	106.704357399606
+1001000012.B6	2.09064719814766	LOW	8	115.939391977434
+1001000179.H4	3.86977998672059	LOW	5	78.7940286817071
+1001000230.C1	3.84572709101563	LOW	9	129.591633959121
+1001000175.H9	2.10863142203113	LOW	8	114.115259209976
+1001000241.G11	4.19313861629077	LOW	8	117.738892714724
+1001000174.G2	2.08036012270756	LOW	4	69.3580162624446
+1001000252.C6	4.15779109562327	LOW	11	158.806427511089
+1001000186.D11	4.25199167750475	LOW	6	90.5743065128312
+1001000239.G7	1	LOW	3	53.8312977258561
+1001000258.G11	2.09764420198528	LOW	4	68.8136405730902
+1001000264.A1	1	LOW	3	50.3162837331849
+1001000174.A10	7.98562122525758	HIGH	15	208.015032616852
+1001000255.E9	2.10073269844653	LOW	11	149.820225707172
+1001000242.B5	12.5164936079671	HIGH	10	122.074396411925
+1001000179.F3	2.05845744438262	LOW	9	135.996997725798
+1001000185.F9	3.53206364846174	LOW	17	224.09943144577
+1001000267.F8	4.32495829491009	LOW	9	125.301684349634
+1001000183.G10	7.53706170420164	HIGH	16	211.36350992629
+1001000247.E7	4.21579990374917	LOW	6	77.4072007755929
+1001000031.A2	2.11149638317858	LOW	4	51.7593186999109
+1001000271.B1	7.60942105665243	HIGH	11	152.809396775473
+1001000187.G6	4.22100958480346	LOW	7	114.257745856889
+1001000236.C6	8.36290290942702	HIGH	13	182.294634787411
+1001000238.C12	4.28963088394561	LOW	5	81.4960507923261
+1001000187.D6	2.09205283585927	LOW	11	155.323668089666
+1001000235.E10	7.64017123265904	HIGH	19	234.213178918161
+1001000036.C1	2.08230439607207	LOW	3	54.49819871696
+1001000253.H2	4.22409105033966	LOW	3	48.2453069486213
+1001000231.C2	4.25016840396507	LOW	12	170.278111490419
+1001000178.C10	8.57335954405515	HIGH	5	87.8940017030181
+1001000267.C1	3.58526739312882	LOW	13	175.964893632737
+1001000180.E4	4.06196578978747	LOW	7	97.0308781523434
+1001000173.E5	3.80026246037548	LOW	17	222.574071045438
+1001000179.F5	2.08540127056093	LOW	6	87.2394180794519
+1001000245.G11	3.96613100383082	LOW	9	119.008229357935
+1001000185.D5	7.60094833484929	HIGH	19	241.72067947581
+1001000012.A7	2.09661417545486	LOW	7	109.035996567905
+1001000010.B4	1	LOW	6	92.1067421506125
+1001000265.D11	4.29447112205169	LOW	12	175.219921893114
+1001000032.F1	2.09223901638632	LOW	9	119.387480482008
+1001000036.H9	2.08844173437915	LOW	8	119.186237761962
+1001000245.B3	1	LOW	4	69.2244101728074
+1001000185.A8	2.11293130373846	LOW	1	19.9315700120185
+1001000178.C6	4.23791793615157	LOW	7	111.69838561164
+1001000037.F10	2.10922856911855	LOW	8	101.146171233581
+1001000245.H4	6.5679063729165	HIGH	13	173.084715147083
+1001000012.B10	2.09828074476469	LOW	6	92.9678072935722
+1001000245.F2	2.1045748932988	LOW	8	108.412182761842
+1001000249.G2	2.07592481246152	LOW	7	111.6056344755
+1001000187.E11	4.30893139486157	LOW	4	63.8811927807031
+1001000266.A4	4.17632344655677	LOW	11	148.326980006354
+1001000266.G4	1.91469043406119	LOW	5	82.4573255689917
+1001000179.E3	2.06171189260098	LOW	3	55.0040683671297
+1001000178.C11	2.06549770393762	LOW	4	69.5597643920484
+1001000031.D12	2.08201588883004	LOW	5	81.3897422581072
+1001000037.D6	2.11095373452809	LOW	7	91.1467349085529
+1001000250.G2	2.10589657212701	LOW	17	195.818819521216
+1001000018.F11	4.17326263868245	LOW	5	84.6775441025479
+1001000175.F9	6.93134111715486	HIGH	21	257.740742874514
+1001000254.G1	2.06651359939214	LOW	7	113.394815959517
+1001000264.F12	3.67700474779531	LOW	7	92.16422172654
+1001000183.B3	2.10584413277124	LOW	9	125.510633274999
+1001000241.E6	8.09736172849892	HIGH	7	101.593090677913
+1001000183.E6	3.97527469176937	LOW	20	255.286657072729
+1001000181.F10	4.15633527864141	LOW	9	126.332552155196
+1001000176.B1	8.6015158477975	HIGH	11	158.025963389679
+1001000235.B7	4.29946403956211	LOW	10	151.487837590348
+1001000231.D12	4.28333021736497	LOW	10	135.454071983989
+1001000230.E7	4.14245296694746	LOW	13	178.515450700942
+1001000186.H6	4.14142724208693	LOW	6	93.3559602476448
+1001000258.H5	4.16335531296651	LOW	14	202.833522288167
+1001000237.H10	4.29135621546477	LOW	8	115.167490201189
+1001000231.B7	7.53675077824779	HIGH	22	287.069690968706
+1001000270.H8	4.25976367333017	LOW	9	123.795397333079
+1001000240.G1	2.05340984469825	LOW	3	50.5493043119434
+1001000177.D11	1.9045680155221	LOW	4	58.2921120403071
+1001000185.D3	7.84432752410517	HIGH	20	253.47465888226
+1001000238.B5	2.11167510212014	LOW	3	47.7358316527366
+1001000174.E10	4.00541245776673	LOW	11	143.710233042848