Mercurial > repos > bgruening > music_deconvolution
changeset 3:064056f47ff2 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:49:59 +0000 |
parents | 1eb4f2f83579 |
children | 46fb28053b12 |
files | macros.xml music-deconvolution.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, 400 insertions(+), 148 deletions(-) [+] |
line wrap: on
line diff
--- a/macros.xml Tue Nov 30 13:05:47 2021 +0000 +++ b/macros.xml Sat Jan 29 12:49:59 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/music-deconvolution.xml Tue Nov 30 13:05:47 2021 +0000 +++ b/music-deconvolution.xml Sat Jan 29 12:49:59 2022 +0000 @@ -1,5 +1,5 @@ <tool id="music_deconvolution" name="MuSiC" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" - profile="20.09" license="GPL-3.0-or-later" > + profile="21.09" license="GPL-3.0-or-later" > <description>estimate cell type proportions in bulk RNA-seq data</description> <macros> <import>macros.xml</import> @@ -25,20 +25,27 @@ bulk_eset = readRDS('$bulk_eset') scrna_eset = readRDS('$scrna_eset') +use_disease_factor = FALSE +maxyscale = NA #if str($do.method) == "estimateprops": +maxyscale = as.numeric('$do.maxyscale') ## yields "NA" if blank phenotype_factors = null_str_vec('$do.phenotype_factors') phenotype_factors_always_exclude = null_str_vec('$do.phenotype_factors_always_exclude') celltypes_label = null_str_vec('$do.celltypes_label') samples_label = null_str_vec('$do.samples_label') celltypes = null_str_vec('$do.celltypes') methods = c("MuSiC", "NNLS") -phenotype_target = null_str_vec('$do.phenotype_target') -phenotype_target_threshold = as.numeric('$do.phenotype_target_threshold') -sample_disease_group = null_str_vec('$do.sample_disease_group') -sample_disease_group_scale = as.integer('$do.sample_disease_group_scale') -compare_title = null_str_vec('$do.compare_title') + + #if str($do.disease_factor.use) == "yes": +use_disease_factor = TRUE +phenotype_scrna_target = null_str_vec('$do.disease_factor.phenotype_scrna_target') +phenotype_target = null_str_vec('$do.disease_factor.phenotype_target') +phenotype_target_threshold = as.numeric('$do.disease_factor.phenotype_target_threshold') +sample_disease_group = null_str_vec('$do.disease_factor.sample_disease_group') +sample_disease_group_scale = as.integer('$do.disease_factor.sample_disease_group_scale') + #end if outfile_pdf='$out_pdf' @@ -54,11 +61,11 @@ #if $i == 0: $repeat.cluster_id = list(cell.types = null_str_vec('$repeat.celltypes'), marker.names = null_str_vec('$repeat.marker_name'), - marker.list = read_list('$repeat.marker_list')) + marker.list = read_list('$repeat.marker_list')) #else , $repeat.cluster_id = list(cell.types = null_str_vec('$repeat.celltypes'), - marker.names = null_str_vec('$repeat.marker_name'), - marker.list = read_list('$repeat.marker_list')) + marker.names = null_str_vec('$repeat.marker_name'), + marker.list = read_list('$repeat.marker_list')) #end if #end for ) @@ -73,8 +80,8 @@ </configfile> </configfiles> <inputs> - <param name="scrna_eset" label="scRNA Dataset" type="data" format="rdata.eset" /> - <param name="bulk_eset" label="Bulk RNA Dataset" type="data" format="rdata.eset" /> + <param name="scrna_eset" label="scRNA Dataset" type="data" format="@RDATATYPE@" /> + <param name="bulk_eset" label="Bulk RNA Dataset" type="data" format="@RDATATYPE@" /> <conditional name="do" > <param name="method" type="select" label="Purpose" > <!-- The values here correspond to script names in the scripts folder @@ -103,24 +110,36 @@ value="sampleID,SubjectName" > <expand macro="validator_index_identifiers" /> </param> - <param name="phenotype_target" type="text" label="Phenotype Target" - help="MUST exist in the bulk RNA datasets phenotype factors, as above." > - <expand macro="validator_text" /> - </param> - <param name="phenotype_target_threshold" type="float" label="Phenotype Target Threshold" - value="-99" - help="The (%) threshold at which the phenotype target manifests. Leave at -99 to select all." > - </param> - <param name="sample_disease_group" type="text" label="Sample Disease Group" - help="MUST exist in the sample_groups above." > - <expand macro="validator_text" /> - </param> - <param name="sample_disease_group_scale" type="integer" - label="Sample Disease Group (Scale)" value="5" - help="Used to accentutate certain features in the plots. Increase this number to reduce the effect." /> - <param name="compare_title" type="text" label="Plot Title" > - <expand macro="validator_text" /> - </param> + <conditional name="disease_factor" > + <param name="use" type="select" label="Show proportions of a disease factor?" > + <option value="no" selected="true" >No</option> + <option value="yes" >Yes</option> + </param> + <when value="no" ></when> + <when value="yes" > + <param name="phenotype_scrna_target" type="text" label="scRNA Phenotype Cell Target" + help="The name of a target scRNA cell type to select in the phenotype comparison." > + <expand macro="validator_text" /> + </param> + <param name="phenotype_target" type="text" label="Bulk Phenotype Target" + help="MUST exist in the bulk RNA datasets phenotype factors as above." > + <expand macro="validator_text" /> + </param> + <param name="phenotype_target_threshold" type="float" label="Bulk Phenotype Target Threshold" + value="-99" + help="The (%) threshold at which the phenotype target manifests. Leave at -99 to select all." > + </param> + <param name="sample_disease_group" type="text" label="scRNA Sample Disease Group" + help="Name for target disease group, ideally a value from the scRNA phenotype factor data" > + <expand macro="validator_text" /> + </param> + <param name="sample_disease_group_scale" type="integer" + label="scRNA Sample Disease Group (Scale)" value="5" + help="Used to accentutate certain features in the plots. Increase this number to reduce the effect." /> + </when> + </conditional> + <param name="maxyscale" type="float" min="0" value="" optional="true" + label="Scale all Y-axes to max limit" help="Leave blank to autoscale each plot."/> </when> <when value="dendrogram" > <param name="celltypes_label" type="text" value="cellType" @@ -156,14 +175,14 @@ <outputs> <data name="out_pdf" format="pdf" label="${tool.name} on ${on_string}: PDF Plots" /> <data name="out_tab" format="tabular" label="${tool.name} on ${on_string}: Cell Proportions by Sample" > - <filter>do["method"] == "dendrogram" and len(do["cluster_groups"]) > 0</filter> + <filter>do["method"] == "dendrogram" and len(do["cluster_groups"]) >0</filter> </data> <collection name="props" type="list" label="${tool.name} on ${on_string}: Proportion Matrices" > <filter>do["method"] == "estimateprops"</filter> <discover_datasets pattern="prop_(?P<designation>.+)\.tabular" format="tabular" directory="report_data" /> </collection> <collection name="summaries" type="list" label="${tool.name} on ${on_string}: Summaries and Logs"> - <filter>do["method"] == "estimateprops"</filter> + <filter>do["method"] == "estimateprops" and do["disease_factor"]["use"] == "yes"</filter> <discover_datasets pattern="summ_(?P<designation>.+)\.txt" format="txt" directory="report_data" /> <discover_datasets pattern="varprop_(?P<designation>.+)\.tabular" format="tabular" directory="report_data" /> <discover_datasets pattern="rsquared_(?P<designation>.+)\.tabular" format="tabular" directory="report_data" /> @@ -221,6 +240,18 @@ </assert_contents> </output> </test> + <test expect_num_outputs="2" > + <!-- Estimate Proportions: no disease factor, no fitting reports --> + <param name="bulk_eset" value="GSE50244bulkeset.subset.rds" /> + <param name="scrna_eset" value="EMTABesethealthy.subset.rds" /> + <conditional name="do" > + <param name="method" value="estimateprops" /> + <param name="celltypes_label" value="cellType" /> + <param name="samples_label" value="sampleID" /> + <param name="disease_factor" value="no" /> + </conditional> + <output name="out_pdf" value="default_output_no_disease.pdf" compare="sim_size" /> + </test> <test expect_num_outputs="3" > <!-- Estimate Proportions test --> <param name="bulk_eset" value="GSE50244bulkeset.subset.rds" /> @@ -230,12 +261,15 @@ <param name="celltypes_label" value="cellType" /> <param name="samples_label" value="sampleID" /> <param name="celltypes" value="alpha,beta,delta,gamma,acinar,ductal" /> - <param name="phenotype_factors" value="age,bmi,hba1c,gender" /> - <param name="phenotype_target" value="hba1c" /> - <param name="phenotype_target_threshold" value="6.5" /> - <param name="sample_disease_group" value="T2D" /> - <param name="sample_disease_group_scale" value="5" /> - <param name="compare_title" value="HbA1c vs Beta Cell Type Proportion" /> + <conditional name="disease_factor" > + <param name="use" value="yes" /> + <param name="phenotype_scrna_target" value="beta" /> + <param name="phenotype_factors" value="age,bmi,hba1c,gender" /> + <param name="phenotype_target" value="hba1c" /> + <param name="phenotype_target_threshold" value="6.5" /> + <param name="sample_disease_group" value="T2D" /> + <param name="sample_disease_group_scale" value="5" /> + </conditional> </conditional> <output name="out_pdf" value="default_output.pdf" compare="sim_size" /> <output_collection name="summaries" count="5"> @@ -257,10 +291,8 @@ Solid tissues often contain closely related cell types which leads to collinearity. To deal with collinearity, MuSiC employs a tree-guided procedure that recursively zooms in on closely related cell types. Briefly, we first group similar cell types into the same cluster and estimate cluster proportions, then recursively repeat this procedure within each cluster. -.. image:: $PATH_TO_IMAGES/FigureMethod.jpg - ]]></help> <citations> <citation type="doi">https://doi.org/10.1038/s41467-018-08023-x</citation> </citations> -</tool> +</tool> \ No newline at end of file
--- a/scripts/dendrogram.R Tue Nov 30 13:05:47 2021 +0000 +++ b/scripts/dendrogram.R Sat Jan 29 12:49:59 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 Tue Nov 30 13:05:47 2021 +0000 +++ b/scripts/estimateprops.R Sat Jan 29 12:49:59 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 Tue Nov 30 13:05:47 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)) -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/mouse_scrna_exprs.tabular Sat Jan 29 12:49:59 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:49:59 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