changeset 2:577435e5e6b2 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/music/ commit 20f8561478535013e111d982b99639f48f1bea79"
author bgruening
date Sat, 29 Jan 2022 12:51:27 +0000
parents 817eb707bbf4
children 8c64a2da3869
files inspect_eset.xml macros.xml scripts/dendrogram.R scripts/estimateprops.R scripts/inspect.R test-data/default_output_no_disease.pdf test-data/mouse_scrna_exprs.tabular test-data/mouse_scrna_pheno.tabular
diffstat 8 files changed, 355 insertions(+), 110 deletions(-) [+]
line wrap: on
line diff
--- a/inspect_eset.xml	Fri Nov 26 15:54:31 2021 +0000
+++ b/inspect_eset.xml	Sat Jan 29 12:51:27 2022 +0000
@@ -6,7 +6,7 @@
     </macros>
     <expand macro="requirements"/>
     <command detect_errors="exit_code"><![CDATA[
-Rscript --vanilla '$__tool_directory__/scripts/inspect.R' '$conf'
+Rscript --vanilla '$conf'
 ]]></command>
     <configfiles>
         <configfile name="conf" >
@@ -26,10 +26,35 @@
 inspector = null_str_vec('$inspector')
 outfile_tab='$out_tab'
 
+suppressWarnings(suppressPackageStartupMessages(library(xbioc)))
+suppressWarnings(suppressPackageStartupMessages(library(MuSiC)))
+
+printout = function(text) {
+    if (typeof(text) %in% c("list", "vector", "integer", "double", "numeric")) {
+        write.table(text, file = outfile_tab, quote = F, sep = "\t",
+                    col.names = NA)
+    } else {
+        ## text
+        print(typeof(text))
+        capture.output(text, file = outfile_tab)  # nolint
+    }
+}
+
+if (inspector %in% c("print", "pData", "fData", "dims",
+                     "experimentData", "protocolData", "exprs",
+                     "signature", "annotation", "abstract")) {
+    op = get(inspector)
+    tab = op(rds_eset)
+    printout(tab)
+} else {
+    stop(paste0("No such option:", inspector))
+}
+
+
         </configfile>
     </configfiles>
     <inputs>
-        <param name="rds_eset" label="ESet Dataset" type="data" format="rdata.eset" />
+        <param name="rds_eset" label="ESet Dataset" type="data" format="@RDATATYPE@" />
         <param name="inspector" label="Inspect" type="select"
                help="Inspect an aspect of the ESet dataset" >
             <!-- See: https://www.rdocumentation.org/packages/Biobase/versions/2.32.0/topics/eSet -->
--- a/macros.xml	Fri Nov 26 15:54:31 2021 +0000
+++ b/macros.xml	Sat Jan 29 12:51:27 2022 +0000
@@ -1,9 +1,14 @@
 <macros>
-    <token name="@VERSION_SUFFIX@">1</token>
+    <token name="@VERSION_SUFFIX@">2</token>
     <!-- The ESet inspector/constructor and MuSiC tool can have
          independent Galaxy versions but should reference the same
          package version always. -->
     <token name="@TOOL_VERSION@">0.1.1</token>
+    <token name="@RDATATYPE@">rdata</token>
+    <!-- Below is disabled until Galaxy supports it. Still not present
+         in 21.09
+         <token name="@RDATATYPE@">rdata.eset</token>
+    -->
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@" >music-deconvolution</requirement>
--- a/scripts/dendrogram.R	Fri Nov 26 15:54:31 2021 +0000
+++ b/scripts/dendrogram.R	Sat Jan 29 12:51:27 2022 +0000
@@ -10,7 +10,7 @@
     if (lfile == "None") {
         return(NULL)
     }
-    return(read.table(file = lfile, header = FALSE,
+    return(read.table(file = lfile, header = FALSE, check.names = FALSE,
                       stringsAsFactors = FALSE)$V1)
 }
 
--- a/scripts/estimateprops.R	Fri Nov 26 15:54:31 2021 +0000
+++ b/scripts/estimateprops.R	Sat Jan 29 12:51:27 2022 +0000
@@ -17,13 +17,21 @@
 estimated_music_props <- est_prop$Est.prop.weighted
 estimated_nnls_props <- est_prop$Est.prop.allgene
 
+scale_yaxes <- function(gplot, value) {
+    if (is.na(value)) {
+        gplot
+    } else {
+        gplot + scale_y_continuous(lim = c(0, value))
+    }
+}
+
 ## Show different in estimation methods
 ## Jitter plot of estimated cell type proportions
-jitter_fig <- Jitter_Est(
+jitter_fig <- scale_yaxes(Jitter_Est(
     list(data.matrix(estimated_music_props),
          data.matrix(estimated_nnls_props)),
     method.name = methods, title = "Jitter plot of Est Proportions",
-    size = 2, alpha = 0.7) + theme_minimal()
+    size = 2, alpha = 0.7) + theme_minimal(), maxyscale)
 
 
 ## Make a Plot
@@ -42,11 +50,6 @@
     message(celltypes)
 }
 
-if (phenotype_target_threshold == -99) {
-    phenotype_target_threshold <- -Inf
-    message("phenotype target threshold set to -Inf")
-}
-
 if (is.null(phenotype_factors)) {
     phenotype_factors <- colnames(pData(bulk_eset))
 }
@@ -54,67 +57,94 @@
 phenotype_factors <- phenotype_factors[
     !(phenotype_factors %in% phenotype_factors_always_exclude)]
 message("Phenotype Factors to use:")
-message(phenotype_factors)
-
+message(paste0(phenotype_factors, collapse = ", "))
 
 m_prop$CellType <- factor(m_prop$CellType, levels = celltypes) # nolint
 m_prop$Method <- factor(rep(methods, each = nrow(estimated_music_props_flat)), # nolint
                         levels = methods)
-m_prop$Disease_factor <- rep(bulk_eset[[phenotype_target]], 2 * length(celltypes)) # nolint
-m_prop <- m_prop[!is.na(m_prop$Disease_factor), ]
-## Generate a TRUE/FALSE table of Normal == 1 and Disease == 2
-sample_groups <- c("Normal", sample_disease_group)
-m_prop$Disease <- factor(sample_groups[(m_prop$Disease_factor > phenotype_target_threshold) + 1], # nolint
-                         levels = sample_groups)
+
+if (use_disease_factor) {
+
+    if (phenotype_target_threshold == -99) {
+        phenotype_target_threshold <- -Inf
+        message("phenotype target threshold set to -Inf")
+    }
+
+    m_prop$Disease_factor <- rep(bulk_eset[[phenotype_target]], 2 * length(celltypes)) # nolint
+    m_prop <- m_prop[!is.na(m_prop$Disease_factor), ]
+    ## Generate a TRUE/FALSE table of Normal == 1 and Disease == 2
+    sample_groups <- c("Normal", sample_disease_group)
+    m_prop$Disease <- factor(sample_groups[(m_prop$Disease_factor > phenotype_target_threshold) + 1], # nolint
+                             levels = sample_groups)
 
-## Binary to scale: e.g. TRUE / 5 = 0.2
-m_prop$D <- (m_prop$Disease ==   # nolint
-             sample_disease_group) / sample_disease_group_scale
-## NA's are not included in the comparison below
-m_prop <- rbind(subset(m_prop, Disease != sample_disease_group),
-               subset(m_prop, Disease == sample_disease_group))
+    ## Binary to scale: e.g. TRUE / 5 = 0.2
+    m_prop$D <- (m_prop$Disease ==   # nolint
+                 sample_disease_group) / sample_disease_group_scale
+    ## NA's are not included in the comparison below
+    m_prop <- rbind(subset(m_prop, Disease != sample_disease_group),
+                    subset(m_prop, Disease == sample_disease_group))
 
-jitter_new <- ggplot(m_prop, aes(Method, Prop)) +
-    geom_point(aes(fill = Method, color = Disease, stroke = D, shape = Disease),
-               size = 2, alpha = 0.7,
-               position = position_jitter(width = 0.25, height = 0)) +
-    facet_wrap(~ CellType, scales = "free") +
-    scale_colour_manual(values = c("white", "gray20")) +
-    scale_shape_manual(values = c(21, 24)) + theme_minimal()
+    jitter_new <- scale_yaxes(ggplot(m_prop, aes(Method, Prop)) +
+        geom_point(aes(fill = Method, color = Disease, stroke = D, shape = Disease),
+                   size = 2, alpha = 0.7,
+                   position = position_jitter(width = 0.25, height = 0)) +
+        facet_wrap(~ CellType, scales = "free") +
+        scale_colour_manual(values = c("white", "gray20")) +
+        scale_shape_manual(values = c(21, 24)) + theme_minimal(), maxyscale)
+
+}
+
+if (use_disease_factor) {
 
-## Plot to compare method effectiveness
-## Create dataframe for beta cell proportions and Disease_factor levels
-m_prop_ana <- data.frame(pData(bulk_eset)[rep(1:nrow(estimated_music_props), 2), #nolint
-                                          phenotype_factors],
-                        ct.prop = c(estimated_music_props[, 2],
-                                    estimated_nnls_props[, 2]),
-                        Method = factor(rep(methods,
-                                            each = nrow(estimated_music_props)),
-                                        levels = methods))
-colnames(m_prop_ana)[1:length(phenotype_factors)] <- phenotype_factors #nolint
-m_prop_ana <- subset(m_prop_ana, !is.na(m_prop_ana[phenotype_target]))
-m_prop_ana$Disease <- factor(sample_groups[(  # nolint
-    m_prop_ana[phenotype_target] > phenotype_target_threshold) + 1],
-    sample_groups)
-m_prop_ana$D <- (m_prop_ana$Disease ==        # nolint
-                 sample_disease_group) / sample_disease_group_scale
+    ## Plot to compare method effectiveness
+    ## Create dataframe for beta cell proportions and Disease_factor levels
+    ## - Ugly code. Essentially, doubles the cell type proportions for each
+    ##   set of MuSiC and NNLS methods
+    m_prop_ana <- data.frame(pData(bulk_eset)[rep(1:nrow(estimated_music_props), 2), #nolint
+                                              phenotype_factors],
+                             ## get proportions of target cell type
+                             ct.prop = c(estimated_music_props[, phenotype_scrna_target],
+                                         estimated_nnls_props[, phenotype_scrna_target]),
+                             ##
+                             Method = factor(rep(methods,
+                                                 each = nrow(estimated_music_props)),
+                                             levels = methods))
+    ## - fix headers
+    colnames(m_prop_ana)[1:length(phenotype_factors)] <- phenotype_factors #nolint
+    ## - drop NA for target phenotype (e.g. hba1c)
+    m_prop_ana <- subset(m_prop_ana, !is.na(m_prop_ana[phenotype_target]))
+    m_prop_ana$Disease <- factor(   # nolint
+        ## - Here we set Normal/Disease assignments across the two MuSiC and NNLS methods
+        sample_groups[(
+            m_prop_ana[phenotype_target] > phenotype_target_threshold) + 1
+            ],
+        sample_groups)
+    ## - Then we scale this binary assignment to a plotable factor
+    m_prop_ana$D <- (m_prop_ana$Disease ==        # nolint
+                     sample_disease_group) / sample_disease_group_scale
 
-jitt_compare <- ggplot(m_prop_ana, aes_string(phenotype_target, "ct.prop")) +
-    geom_smooth(method = "lm",  se = FALSE, col = "black", lwd = 0.25) +
-    geom_point(aes(fill = Method, color = Disease, stroke = D, shape = Disease),
-               size = 2, alpha = 0.7) +  facet_wrap(~ Method) +
-    ggtitle(compare_title) + theme_minimal() +
-    scale_colour_manual(values = c("white", "gray20")) +
-    scale_shape_manual(values = c(21, 24))
+    jitt_compare <- scale_yaxes(ggplot(m_prop_ana, aes_string(phenotype_target, "ct.prop")) +
+        geom_smooth(method = "lm",  se = FALSE, col = "black", lwd = 0.25) +
+        geom_point(aes(fill = Method, color = Disease, stroke = D, shape = Disease),
+                   size = 2, alpha = 0.7) +  facet_wrap(~ Method) +
+        ggtitle(paste0(toupper(phenotype_target), " vs. ",
+                       toupper(phenotype_scrna_target), " Cell Type Proportion")) +
+        theme_minimal() +
+        ylab(paste0("Proportion of ",
+                    phenotype_scrna_target, " cells")) +
+        xlab(paste0("Level of bulk factor (", phenotype_target, ")")) +
+        scale_colour_manual(values = c("white", "gray20")) +
+        scale_shape_manual(values = c(21, 24)), maxyscale)
+}
 
 ## BoxPlot
-plot_box <- Boxplot_Est(list(
+plot_box <- scale_yaxes(Boxplot_Est(list(
     data.matrix(estimated_music_props),
     data.matrix(estimated_nnls_props)),
     method.name = c("MuSiC", "NNLS")) +
     theme(axis.text.x = element_text(angle = -90),
           axis.text.y = element_text(size = 8)) +
-    ggtitle(element_blank()) + theme_minimal()
+    ggtitle(element_blank()) + theme_minimal(), maxyscale)
 
 ## Heatmap
 plot_hmap <- Prop_heat_Est(list(
@@ -125,8 +155,15 @@
           axis.text.y = element_text(size = 6))
 
 pdf(file = outfile_pdf, width = 8, height = 8)
-plot_grid(jitter_fig, plot_box, labels = "auto", ncol = 1, nrow = 2)
-plot_grid(jitter_new, jitt_compare, labels = "auto", ncol = 1, nrow = 2)
+if (length(celltypes) <= 8) {
+    plot_grid(jitter_fig, plot_box, labels = "auto", ncol = 1, nrow = 2)
+} else {
+    print(jitter_fig)
+    plot_box
+}
+if (use_disease_factor) {
+    plot_grid(jitter_new, jitt_compare, labels = "auto", ncol = 1, nrow = 2)
+}
 plot_hmap
 message(dev.off())
 
@@ -159,29 +196,32 @@
             quote = F, sep = "\t", col.names = NA)
 
 
-## Summary table
-for (meth in methods) {
-    ##lm_beta_meth = lm(ct.prop ~ age + bmi + hba1c + gender, data =
-    sub_data <- subset(m_prop_ana, Method == meth)
-    ## We can only do regression where there are more than 1 factors
-    ## so we must find and exclude the ones which are not
-    gt1_facts <- sapply(phenotype_factors, function(facname) {
-        return(length(unique(sort(sub_data[[facname]]))) == 1)
-    })
-    form_factors <- phenotype_factors
-    exclude_facts <- names(gt1_facts)[gt1_facts]
-    if (length(exclude_facts) > 0) {
-        message("Factors with only one level will be excluded:")
-        message(exclude_facts)
-        form_factors <- phenotype_factors[
-            !(phenotype_factors %in% exclude_facts)]
+if (use_disease_factor) {
+    ## Summary table of linear regressions of disease factors
+    for (meth in methods) {
+        ##lm_beta_meth = lm(ct.prop ~ age + bmi + hba1c + gender, data =
+        sub_data <- subset(m_prop_ana, Method == meth)
+
+        ## We can only do regression where there are more than 1 factors
+        ## so we must find and exclude the ones which are not
+        gt1_facts <- sapply(phenotype_factors, function(facname) {
+            return(length(unique(sort(sub_data[[facname]]))) == 1)
+        })
+        form_factors <- phenotype_factors
+        exclude_facts <- names(gt1_facts)[gt1_facts]
+        if (length(exclude_facts) > 0) {
+            message("Factors with only one level will be excluded:")
+            message(exclude_facts)
+            form_factors <- phenotype_factors[
+                !(phenotype_factors %in% exclude_facts)]
+        }
+        lm_beta_meth <- lm(as.formula(
+            paste("ct.prop", paste(form_factors, collapse = " + "),
+                  sep = " ~ ")), data = sub_data)
+        message(paste0("Summary: ", meth))
+        capture.output(summary(lm_beta_meth),
+                       file = paste0("report_data/summ_Log of ",
+                                     meth,
+                                     " fitting.txt"))
     }
-    lm_beta_meth <- lm(as.formula(
-        paste("ct.prop", paste(form_factors, collapse = " + "),
-              sep = " ~ ")), data = sub_data)
-    message(paste0("Summary: ", meth))
-    capture.output(summary(lm_beta_meth),
-                   file = paste0("report_data/summ_Log of ",
-                                 meth,
-                                 " fitting.txt"))
 }
--- a/scripts/inspect.R	Fri Nov 26 15:54:31 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-
-suppressWarnings(suppressPackageStartupMessages(library(xbioc)))
-suppressWarnings(suppressPackageStartupMessages(library(MuSiC)))
-
-args <- commandArgs(trailingOnly = TRUE)
-source(args[1])
-
-printout <- function(text) {
-    if (typeof(text) %in% c("list", "vector", "integer", "double", "numeric")) {
-        write.table(text, file = outfile_tab, quote = F, sep = "\t",
-                    col.names = NA)
-    } else {
-        ## text
-        print(typeof(text))
-        capture.output(text, file = outfile_tab)  # nolint
-    }
-}
-
-if (inspector %in% c("print", "pData", "fData", "dims",
-                     "experimentData", "protocolData", "exprs",
-                     "signature", "annotation", "abstract")) {
-    op <- get(inspector)
-    tab <- op(rds_eset)
-    printout(tab)
-} else {
-    stop(paste0("No such option:", inspector))
-}
Binary file test-data/default_output_no_disease.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mouse_scrna_exprs.tabular	Sat Jan 29 12:51:27 2022 +0000
@@ -0,0 +1,101 @@
+	TGGTTCCGTCGGCTCA-2	CGAGCCAAGCGTCAAG-4	GAATGAAGTTTGGGCC-5	CTCGTACGTTGCCTCT-7	TTCTCAATCCACGCAG-5	CCTTCCCCATACCATG-4	ACTTTCACAGCTGGCT-7	TGGGAAGCAAAGTGCG-7	TCTATTGAGTAGGCCA-7	TCGGTAACATCACGTA-2	GGGTTGCCAGCTGTAT-2	TGCGGGTGTCATATCG-6	ACTTGTTTCATATCGG-5	CCAATCCCACGGCGTT-2	CTAAGACCACCAGGCT-7	TTAACTCAGTAGGCCA-6	GTACTCCGTAACGCGA-1	GCCTCTAGTTGTACAC-2	TTCGAAGTCCTGCAGG-3	TTCTACAAGTTGTAGA-7	CCGTTCAGTTGAACTC-7	GTGTTAGTCAGCTCGG-1	GGATTACGTGTGCGTC-6	TACGGTATCCGTTGTC-6	TTAGTTCGTATTAGCC-5	CCCAATCGTAGCGATG-3	ACACCAATCTGCGTAA-7	AATCCAGTCCAAACTG-7	CAGAATCAGCAATATG-1	GCACATAAGCCGGTAA-5	CCTTCCCAGGAGTTTA-5	CGGAGCTAGGACTGGT-5	TACGGATGTAAATGTG-4	GGCAATTCATTCACTT-2	CTCGGGAGTCTGCGGT-4	CATTCGCGTCCTCTTG-2	CGCGTTTAGATCGATA-1	GGGTTGCCACCAACCG-4	TGTGTTTCATCGATGT-2	AGAGTGGAGCTGTTCA-7	CTCACACGTCTCACCT-3	AGTTGGTTCCACGAAT-7	ATCTGCCAGACCACGA-6	TGTATTCCATTGAGCT-7	TGAAAGAGTAGCCTAT-7	AAATGCCAGAACTGTA-7	TTTGCGCTCTACCAGA-4	ACATACGGTTTCCACC-6	GCCTCTAGTTCCACAA-7	GGGAGATGTACTCTCC-6	GAACGGATCTTGTACT-7	TACCTTATCCTAGAAC-1	GCGCGATAGATGCCAG-2	GACAGAGCAAGTTGTC-7	TGACTAGGTATGAATG-3	CACACTCAGTCACGCC-6	ATTGGTGGTTAGGGTG-5	AGCAGCCCAGCGTAAG-2	CATTCGCAGCCTTGAT-6	GCGAGAACATAGACTC-2	AGTCTTTGTAATAGCA-7	TCGCGAGCAGACACTT-7	CGGAGTCCAGCAGTTT-2	GGTGTTACACACATGT-7	TTCTCAAGTAAGTGTA-2	TGCTGCTAGTCAATAG-2	GATGAGGTCTACCAGA-2	ACATACGGTTGTACAC-5	ACGAGGACAGCTATTG-7	CGATGTATCGGCGGTT-2	CTGCGGATCACAACGT-2	CGAACATAGTTGAGTA-5	TAGTTGGTCGCGATCG-6	GCAGCCACAATGTAAG-4	CTCACACCAATAACGA-7	CCTTTCTCATGAAGTA-2	AGTGTCAAGAGCAATT-7	AGCATACGTAAAGGAG-1	ACACCAATCTCGCTTG-5	GGGATGAGTATCAGTC-6	TGACAACAGAAGCCCA-2	CGAATGTTCACAATGC-1	GCACTCTTCCGCATAA-1	CACCAGGTCCCAAGAT-2	GTTACAGCACCGCTAG-6	TAGCCGGCAGTACACT-2	ACGATGTGTTAAAGAC-2	CCTTCCCAGTCTCGGC-7	TAGTGGTTCTCTGTCG-7	TAGCCGGAGGCTAGCA-5	TTGTAGGTCAGCACAT-1	GAATAAGCAGCTTCGG-7	TCGCGAGAGTCCGGTC-3	TCAACGAAGAGTAAGG-2	CAGGTGCCACGAAATA-5	TGTGTTTCACTATCTT-2	TGGCCAGAGTGAAGAG-6	ACCAGTAAGTAGCCGA-2	GCGGGTTAGAAGGTTT-1	CAGTCCTGTCATTAGC-2
+Rp1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Sox17	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	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	1	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
+Mrpl15	0	0	0	1	0	0	1	0	0	0	0	0	1	0	0	0	0	1	2	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	2	0	0	0	0	0	0	1	0	0	0	0	0	1
+Lypla1	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	1	1	2	0	1	1	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	1	2	0	1	1	0	0	1	0	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	1	0	1	0	0	0	1	0	0	0	0	0	0	0	1	0	0	1	2	0	0	0	6	2	0	2	0	0	2	0	2	0	1	1	0	0	0	0	0
+Gm37988	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tcea1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0	1	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0
+Atp6v1h	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	0	0	2	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	0	0	1	0	0	1	0	0	1	0	0	0	1	0	0	0	0	0	3
+Rb1cc1	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	2	1	2	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0	1	2	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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
+4732440D04Rik	0	0	0	1	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	0	0	0	0	0	0	0	0	0	1	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	0	0	0	0	2	0	0	0
+Pcmtd1	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	1	0	0	1	0	1	0	0	1	0	0	0	0	0	1	0	0	0	0	0	1	1	1	0	0	1	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	1	0	0
+Gm26901	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Rrs1	0	0	0	0	0	0	1	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	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	1	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
+Adhfe1	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	0	1	0	0	0	1	0	0	1	0	0	0	0	0	0	0	1	2	0	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	2	0	1	0	2	0	0	0	0	0	0	0	0	0	0	0	3	1	0	0	0	0	0	0	2	0	0	0	0	0	0	0	1
+Mybl1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Vcpip1	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	1	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	0	0	0	0	0
+1700034P13Rik	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	0	0	0	0	0	1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Sgk3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	0	1	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	1	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Mcmdc2	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	0	0	0	0	0	1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Snhg6	1	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	1	0	2	1	0	0	0	0	2	0	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	2	0	0	0	0	1	0	0	0	0	0	0	0	0	4	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	1
+Tcf24	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Ppp1r42	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Cops5	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	1	0	1	1	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0
+Cspp1	0	0	0	2	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	1	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	3	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	2
+Arfgef1	0	1	0	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	1	0	0	0	0	0	0	0	1	0	0	0	0	1	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	1	0	0	0	0	0	0	0	1	1	0	0	0	0	0	0	0	1	1	0	1	0	0	1	0	0	0	0	0
+Prex2	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	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	1	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
+Sulf1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Ncoa2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	1	1	2	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	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0
+Tram1	0	0	2	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	3	0	1	0	0	1	0	0	1	0	0	1	0	0	0	0	0	1	1	0	0	0	1	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	0	1	1	1	0	0	0	0	1	0	3	0	0	0	0	0
+Lactb2	0	0	0	1	0	0	0	0	1	0	0	2	0	0	0	0	2	0	6	1	0	2	1	0	2	0	0	0	3	0	1	0	1	0	0	0	0	0	0	0	3	3	0	3	2	0	1	1	1	0	0	0	1	1	0	0	0	0	0	0	0	1	0	0	0	0	0	4	0	0	0	4	0	1	1	0	0	0	0	2	0	0	0	3	3	0	0	1	0	0	0	4	0	0	3	0	0	1	0	2
+Xkr9	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Eya1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Terf1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	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	0
+Sbspon	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+4930444P10Rik	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Rpl7	0	1	2	2	1	2	0	0	0	0	2	0	6	2	2	0	1	0	18	1	2	0	0	1	4	2	2	1	0	2	6	3	1	2	7	4	1	0	0	2	2	3	0	0	6	1	1	0	0	3	0	1	2	7	2	0	2	6	1	3	1	4	3	4	3	0	0	10	0	0	2	4	2	0	1	1	0	2	2	12	7	0	0	10	4	2	7	3	1	4	1	5	4	2	9	2	2	0	0	2
+Rdh10	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	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	1	0	0	0	0	0	0	0	0
+Stau2	0	0	1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	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	1	0	0	0	0	0
+Ube2w	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	2	1	2	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	0	0	0	0	0	0	0	0	0	0	1	1	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tceb1	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	5	0	0	0	0	0	1	0	1	0	0	1	0	1	1	1	0	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	2	2	0	1	0	0	0	0	0	0	1	2	0	0	0	0	3	0	0	2	0	0	1	1	0	1	0	0	1	0	0	0	2
+D030040B21Rik	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tmem70	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	1	0	0	0	1	0	1	1	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	1	0	0	0	0	1	0	0	0	1	0	0	0	0	1	0	0	0	0	0
+Ly96	0	0	1	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	1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Jph1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Crispld1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tfap2b	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	1	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	1	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1
+Pkhd1	0	0	1	2	1	0	4	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	1	2	0	0	0	0	0	0	0	1	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	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Il17f	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Mcm3	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Paqr8	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	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	1	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
+Efhc1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tram2	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tmem14a	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	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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
+Gsta3	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	3	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	1	0	0	0	0	0	1	0	1	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	3	0	0	0	0	0	0	0	0	0	0
+Khdc1a	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Kcnq5	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Gm29107	0	0	0	0	1	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	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	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
+Ogfrl1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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
+B3gat2	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	1	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	3	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Smap1	1	0	0	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	3	0	0	0	0	0	0	1	0	0	0	0	0	0	0	1	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	1	0	0	0	0	0	0	0	1	0	0	1	0	1	0	0	0	0	0	1	0	1	1	0	0	0	0	0	0	0	0	0	0
+Sdhaf4	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	1	0	1	1	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	1	0	1	0	0	0	0	1	3	1	0	0	1	1	0	0	0	0	1	0	1	0	0	1	0	0	0	0	2
+Fam135a	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	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	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Col19a1	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Lmbrd1	0	0	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	2	0	0	0	0	0	0
+Gm5524	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	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	0	0	0	0	0	0	0	0	0	0	0	0
+Phf3	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	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	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0
+Ptp4a1	0	0	0	0	0	0	0	0	0	0	2	0	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	2	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0
+Khdrbs2	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Prim2	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	1	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
+Rab23	0	0	0	0	1	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	1	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	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
+Bag2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	1	1	1	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	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
+Zfp451	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	1	0	0	0	0	0	0	0	1	0	0	0	0	0	2	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0
+Bend6	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Dst	0	0	0	0	2	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	3	0	0	0	0	0	1	1	0	1	0	0	0	0	0	0	0	1	0	0	2	0	0	1	0	1	0	0	0	0	0	0	0	1	1	0	0	1	0	0	0	0	0	0	0	0	0	0	2	0	1	1	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	7	0	0	0	0	0	0	0	0	0	0
+Gm37233	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Ccdc115	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	0	0	0	0	0	0	0	0	0	0	0	0	1	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
+Imp4	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0
+Ptpn18	0	0	0	0	0	0	0	0	0	0	0	0	3	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	2	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	3	0	0	0	0	0	0	0
+Arhgef4	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0
+Gm38336	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Fam168b	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	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0
+Plekhb2	0	0	0	2	0	1	1	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	1	0	0	1	2	0	0	1	1	0	3	0	1	0	0	2	0	0	2	0	0	0	0	1	0	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	1	0	0	0	0	0	0	0	1	0	2	1	0	0	0	0	0	0	0	0	0	1	0	1	0	0	1	0	0	1	1	0
+Hs6st1	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	2	0	2	0	0	0	0	0	0	0	0	0	0	2	0	0
+Uggt1	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	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	2	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	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0
+Neurl3	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Arid5a	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+4930403P22Rik	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Kansl3	0	0	0	0	1	0	1	0	1	0	0	1	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	1	0	1	0	0	0	0	0	0	0	0	2	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	1	1	1	0	1	0	0	0	1	0	0	0	0	0	1	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	1	0
+Lman2l	0	0	0	2	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0	0	2	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0
+Cnnm4	0	0	0	0	0	0	2	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Cnnm3	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	1	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	1	0	0	0	0	0	0	2	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
+Ankrd23	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Ankrd39	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	1	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1
+Sema4c	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	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	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Fam178b	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Cox5b	1	4	1	1	10	0	1	1	0	2	2	0	0	2	0	1	7	3	17	0	8	5	1	0	4	1	4	5	2	12	2	21	3	5	5	6	2	2	3	3	1	2	0	4	6	2	0	1	0	5	2	7	5	2	4	0	5	1	0	0	1	4	4	1	4	1	0	5	10	1	6	4	0	1	0	5	2	1	10	4	4	0	2	11	2	0	2	1	7	11	9	4	1	14	2	3	1	5	0	12
+Actr1b	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	1	1	2	0	0	0	0	1	0	0	2	0	0	0	0	1	0	0	0	0	0	1	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	1	1	1	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	1	0	0
+Zap70	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	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Tmem131	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	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
+Inpp4a	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	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	1	0	0	0	0	0	0	0	0	0	0
+Coa5	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	1	0	0	1	0	0	0	0	0	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	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	1	0	0	0	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mouse_scrna_pheno.tabular	Sat Jan 29 12:51:27 2022 +0000
@@ -0,0 +1,101 @@
+	sampleID	SubjectName	cellTypeID	cellType
+TGGTTCCGTCGGCTCA-2	2	Mouse2	3	PT
+CGAGCCAAGCGTCAAG-4	4	Mouse4	5	DCT
+GAATGAAGTTTGGGCC-5	5	Mouse5	3	PT
+CTCGTACGTTGCCTCT-7	7	Mouse7	3	PT
+TTCTCAATCCACGCAG-5	5	Mouse5	4	LOH
+CCTTCCCCATACCATG-4	4	Mouse4	14	T lymph
+ACTTTCACAGCTGGCT-7	7	Mouse7	3	PT
+TGGGAAGCAAAGTGCG-7	7	Mouse7	3	PT
+TCTATTGAGTAGGCCA-7	7	Mouse7	3	PT
+TCGGTAACATCACGTA-2	2	Mouse2	3	PT
+GGGTTGCCAGCTGTAT-2	2	Mouse2	2	Podo
+TGCGGGTGTCATATCG-6	6	Mouse6	3	PT
+ACTTGTTTCATATCGG-5	5	Mouse5	14	T lymph
+CCAATCCCACGGCGTT-2	2	Mouse2	5	DCT
+CTAAGACCACCAGGCT-7	7	Mouse7	3	PT
+TTAACTCAGTAGGCCA-6	6	Mouse6	3	PT
+GTACTCCGTAACGCGA-1	1	Mouse1	3	PT
+GCCTCTAGTTGTACAC-2	2	Mouse2	3	PT
+TTCGAAGTCCTGCAGG-3	3	Mouse3	3	PT
+TTCTACAAGTTGTAGA-7	7	Mouse7	3	PT
+CCGTTCAGTTGAACTC-7	7	Mouse7	7	CD-IC
+GTGTTAGTCAGCTCGG-1	1	Mouse1	4	LOH
+GGATTACGTGTGCGTC-6	6	Mouse6	3	PT
+TACGGTATCCGTTGTC-6	6	Mouse6	3	PT
+TTAGTTCGTATTAGCC-5	5	Mouse5	3	PT
+CCCAATCGTAGCGATG-3	3	Mouse3	3	PT
+ACACCAATCTGCGTAA-7	7	Mouse7	5	DCT
+AATCCAGTCCAAACTG-7	7	Mouse7	5	DCT
+CAGAATCAGCAATATG-1	1	Mouse1	3	PT
+GCACATAAGCCGGTAA-5	5	Mouse5	5	DCT
+CCTTCCCAGGAGTTTA-5	5	Mouse5	3	PT
+CGGAGCTAGGACTGGT-5	5	Mouse5	4	LOH
+TACGGATGTAAATGTG-4	4	Mouse4	3	PT
+GGCAATTCATTCACTT-2	2	Mouse2	3	PT
+CTCGGGAGTCTGCGGT-4	4	Mouse4	6	CD-PC
+CATTCGCGTCCTCTTG-2	2	Mouse2	8	CD-Trans
+CGCGTTTAGATCGATA-1	1	Mouse1	6	CD-PC
+GGGTTGCCACCAACCG-4	4	Mouse4	7	CD-IC
+TGTGTTTCATCGATGT-2	2	Mouse2	3	PT
+AGAGTGGAGCTGTTCA-7	7	Mouse7	3	PT
+CTCACACGTCTCACCT-3	3	Mouse3	3	PT
+AGTTGGTTCCACGAAT-7	7	Mouse7	3	PT
+ATCTGCCAGACCACGA-6	6	Mouse6	3	PT
+TGTATTCCATTGAGCT-7	7	Mouse7	3	PT
+TGAAAGAGTAGCCTAT-7	7	Mouse7	3	PT
+AAATGCCAGAACTGTA-7	7	Mouse7	5	DCT
+TTTGCGCTCTACCAGA-4	4	Mouse4	3	PT
+ACATACGGTTTCCACC-6	6	Mouse6	3	PT
+GCCTCTAGTTCCACAA-7	7	Mouse7	3	PT
+GGGAGATGTACTCTCC-6	6	Mouse6	1	Endo
+GAACGGATCTTGTACT-7	7	Mouse7	3	PT
+TACCTTATCCTAGAAC-1	1	Mouse1	3	PT
+GCGCGATAGATGCCAG-2	2	Mouse2	3	PT
+GACAGAGCAAGTTGTC-7	7	Mouse7	3	PT
+TGACTAGGTATGAATG-3	3	Mouse3	4	LOH
+CACACTCAGTCACGCC-6	6	Mouse6	3	PT
+ATTGGTGGTTAGGGTG-5	5	Mouse5	3	PT
+AGCAGCCCAGCGTAAG-2	2	Mouse2	1	Endo
+CATTCGCAGCCTTGAT-6	6	Mouse6	3	PT
+GCGAGAACATAGACTC-2	2	Mouse2	14	T lymph
+AGTCTTTGTAATAGCA-7	7	Mouse7	3	PT
+TCGCGAGCAGACACTT-7	7	Mouse7	3	PT
+CGGAGTCCAGCAGTTT-2	2	Mouse2	3	PT
+GGTGTTACACACATGT-7	7	Mouse7	3	PT
+TTCTCAAGTAAGTGTA-2	2	Mouse2	1	Endo
+TGCTGCTAGTCAATAG-2	2	Mouse2	3	PT
+GATGAGGTCTACCAGA-2	2	Mouse2	3	PT
+ACATACGGTTGTACAC-5	5	Mouse5	3	PT
+ACGAGGACAGCTATTG-7	7	Mouse7	4	LOH
+CGATGTATCGGCGGTT-2	2	Mouse2	3	PT
+CTGCGGATCACAACGT-2	2	Mouse2	13	B lymph
+CGAACATAGTTGAGTA-5	5	Mouse5	3	PT
+TAGTTGGTCGCGATCG-6	6	Mouse6	5	DCT
+GCAGCCACAATGTAAG-4	4	Mouse4	1	Endo
+CTCACACCAATAACGA-7	7	Mouse7	3	PT
+CCTTTCTCATGAAGTA-2	2	Mouse2	7	CD-IC
+AGTGTCAAGAGCAATT-7	7	Mouse7	3	PT
+AGCATACGTAAAGGAG-1	1	Mouse1	6	CD-PC
+ACACCAATCTCGCTTG-5	5	Mouse5	3	PT
+GGGATGAGTATCAGTC-6	6	Mouse6	3	PT
+TGACAACAGAAGCCCA-2	2	Mouse2	3	PT
+CGAATGTTCACAATGC-1	1	Mouse1	1	Endo
+GCACTCTTCCGCATAA-1	1	Mouse1	3	PT
+CACCAGGTCCCAAGAT-2	2	Mouse2	3	PT
+GTTACAGCACCGCTAG-6	6	Mouse6	3	PT
+TAGCCGGCAGTACACT-2	2	Mouse2	11	Macro
+ACGATGTGTTAAAGAC-2	2	Mouse2	9	Novel1
+CCTTCCCAGTCTCGGC-7	7	Mouse7	3	PT
+TAGTGGTTCTCTGTCG-7	7	Mouse7	7	CD-IC
+TAGCCGGAGGCTAGCA-5	5	Mouse5	7	CD-IC
+TTGTAGGTCAGCACAT-1	1	Mouse1	4	LOH
+GAATAAGCAGCTTCGG-7	7	Mouse7	3	PT
+TCGCGAGAGTCCGGTC-3	3	Mouse3	14	T lymph
+TCAACGAAGAGTAAGG-2	2	Mouse2	5	DCT
+CAGGTGCCACGAAATA-5	5	Mouse5	3	PT
+TGTGTTTCACTATCTT-2	2	Mouse2	3	PT
+TGGCCAGAGTGAAGAG-6	6	Mouse6	3	PT
+ACCAGTAAGTAGCCGA-2	2	Mouse2	6	CD-PC
+GCGGGTTAGAAGGTTT-1	1	Mouse1	3	PT
+CAGTCCTGTCATTAGC-2	2	Mouse2	7	CD-IC