Repository 'batchcorrection'
hg clone https://toolshed.g2.bx.psu.edu/repos/melpetera/batchcorrection

Changeset 0:71d83d8920bf (2016-08-09)
Next changeset 1:f64656ae9ea4 (2016-10-09)
Commit message:
planemo upload for repository https://github.com/workflow4metabolomics/batchcorrection.git commit de79117e6ab856420b87efca3675c7963688f975
added:
Normalisation_QCpool.r
README.md
batch_correction.xml
batch_correction_all_loess_script.R
batch_correction_all_loess_wrapper.R
batch_correction_wrapper.R
build.xml
determine_bc.xml
easyrlibrary-lib/RcheckLibrary.R
easyrlibrary-lib/miniTools.R
runit/batchcorrection_runtests.R
runit/batchcorrection_tests.R
runit/example1/dataMatrix.tsv
runit/example1/sampleMetadata.tsv
runit/example1/variableMetadata.tsv
runit/input/dataMatrix.tsv
runit/input/sampleMetadata.tsv
runit/input/variableMetadata.tsv
runit/output/dataMatrix.tsv
runit/output/graph_output.pdf
runit/output/out_graph.pdf
runit/output/preNormSummary.txt
runit/output/rdata_output.rdata
runit/output/variableMetadata.tsv
runit/output/variable_for_simca.tsv
runit/sacurine/dataMatrix.tsv
runit/sacurine/sampleMetadata.tsv
runit/sacurine/variableMetadata.tsv
runit/sacurineNegFull/dataMatrix.tsv
runit/sacurineNegFull/sampleMetadata.tsv
runit/sacurineNegFull/variableMetadata.tsv
static/images/Vdk_pdf1.png
static/images/Vdk_pdf2.png
static/images/batch_correction.png
static/images/determine_batch_correction.png
static/images/pdf_plotsituation.png
test-data/input-batchcorrection-dataMatrix.tsv
test-data/input-batchcorrection-sampleMetadata.tsv
test-data/input-batchcorrection-variableMetadata.tsv
test-data/input-determinebc-dataMatrix.tsv
test-data/input-determinebc-sampleMetadata.tsv
test-data/output-batchcorrection-dataMatrix.tsv
test-data/output-determinebc-preNormSummary.txt
b
diff -r 000000000000 -r 71d83d8920bf Normalisation_QCpool.r
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Normalisation_QCpool.r Tue Aug 09 06:47:41 2016 -0400
[
b'@@ -0,0 +1,409 @@\n+# Author: jfmartin\n+# Modified by : mpetera\n+###############################################################################\n+# Correction of analytical effects inter and intra batch on intensities using quality control pooled samples (QC-pools)\n+# according to the algorithm mentioned by Van der Kloet (J Prot Res 2009).\n+# Parameters : a dataframe of Ions intensities and an other of samples? metadata which must contains at least the three following columns :\n+#   "batch" to identify the batches of analyses ; need at least 3 QC-pools for linear adjustment and 8 for lo(w)ess adjustment\n+#   "injectionOrder" integer defining the injection order of all samples : QC-pools and analysed samples\n+#   "sampleType" indicates if defining a sample with "sample" or a QC-pool with "pool"\n+# NO MISSING DATA are allowed\n+# Version 0.91 insertion of ok_norm function to assess correction feasibility \n+# Version 0.92 insertion of slope test in ok_norm\n+# Version 0.93 name of log file define as a parameter of the correction function\n+# Version 0.94 Within a batch, test if all QCpools or samples values = 0. Definition of an error code in ok_norm function (see function for details)\n+# Version 0.99 include non linear lowess correction. \n+# Version 1.00 the corrected result matrix is return transposed in Galaxy\n+# Version 1.01 standard deviation=0 instead of sum of value=0 is used to assess constant data in ok_norm function. Negative values in corrected matrix are converted to 0. \n+# Version 1.02 plotsituation create a result file with the error code of non execution of correction set by function ok_norm\n+# Version 1.03 fix bug in plot with "reg" option. suppression of ok_norm=4 condition if ok_norm function\n+# Version 2.00 Addition of loess function, correction indicator, plots ; modification of returned objects\' format, some plots\' displays and ok_norm ifelse format\n+# Version 2.01 Correction for pools negative values earlier in norm_QCpool\n+# Version 2.10 Script refreshing ; vocabulary adjustment ; span in parameters for lo(w)ess regression ; conditionning for third line ACP display ; order in loess display\n+# Version 2.11 ok1 and ok2 permutation (ok_norm) ; conditional display of regression (plotsituation) ; grouping of linked lignes + conditioning (normX) ; conditioning for CVplot\n+# Version 2.20 acplight function added from previous toolBox.R [# Version 1.01 "NA"-coding possibility added in acplight function]\n+# Version 2.30 addition of suppressWarnings() for known and controlled warnings ; suppression of one useless "cat" message ; change in Rdata names ; \'batch(es)\' in cat\n+\n+ok_norm=function(qcp,qci,spl,spi,method) {\n+  # Function used for one ion within one batch to determine whether or not batch correction is possible\n+  # ok_norm values :\n+  #   0 : no preliminary-condition problem\n+  #   1 : standard deviation of QC-pools or samples = 0\n+  #   2 : insufficient number of QC-pools within a batch (n=3 for linear, n=8 for lowess or loess)\n+  #   3 : significant difference between QC-pools\' and samples\' means\n+  #   4 : denominator =0 when on 1 pool per batch <> 0\n+  #   5 : (linear regression only) the slopes ratio ?QC-pools/samples? is lower than -0.2\n+  \n+  ok=0\n+  if (method=="linear") {minQC=3} else {minQC=8}\n+  if (length(qcp)<minQC) { ok=2 \n+  } else {\n+    if (sd(qcp)==0 | sd(spl)==0) { ok=1 \n+    } else {\n+    cvp= sd(qcp)/mean(qcp); cvs=sd(spl)/mean(spl)\n+    rttest=t.test(qcp,y=spl)\n+    reslsfit=lsfit(qci, qcp)\n+    reslsfitSample=lsfit(spl, spi)\n+    ordori=reslsfit$coefficients[1]\n+    penteB=reslsfit$coefficients[2]\n+    penteS=reslsfitSample$coefficients[2]\n+    # Significant difference between samples and pools\n+    if (rttest$p.value < 0.01) { ok=3 \n+    } else {\n+      # to avoid denominator =0 when on 1 pool per batch <> 0\n+      if (method=="linear" & length(which(((penteB*qci)+ordori)==0))>0 ){ ok=6 \n+      } else {\n+      # different sloop between samples and pools\n+      if (method=="linear" & pente'..b'rrection\n+\t\tif (detail=="reg" || detail=="plot" ) {\n+\t\t  \t# plot before and after correction\n+\t\t  \tminval=min(cbind(x[p+nbid],Xn[p+nbid]));maxval=max(cbind(x[p+nbid],Xn[p+nbid]))\n+\t\t  \tplot( x$injectionOrder, x[,p+nbid],col=x$batch,ylab=labion,ylim=c(minval,maxval),main=paste("avant correction CV pools=",round(cv[p,1],2)))\n+              points(x$injectionOrder[indpool],x[indpool,p+nbid],col="maroon",pch=".",cex=2)\n+\t\t  \tplot(Xn$injectionOrder,Xn[,p+nbid],col=x$batch,ylab="",ylim=c(minval,maxval),main=paste("apres correction CV pools=",round(cv[p,2],2)))\n+              points(Xn$injectionOrder[indpool],Xn[indpool,p+nbid],col="maroon",pch=".",cex=2)\n+\t\t  \tsuppressWarnings(plot.design( x[c(indtypsamp,indbatch,indfact,p+nbid)],main="effet sur facteurs avant"))\n+\t\t  \tsuppressWarnings(plot.design(Xn[c(indtypsamp,indbatch,indfact,p+nbid)],main="effet sur facteurs apres"))\n+\t\t}\n+\t}\n+  ### Replacement of post correction negative values by 0\n+\tXnn=Xn\n+\tvalNulle=0\n+\tfor (i in c((nbid+1):dim(Xn)[2])) {\n+\t  cneg=which(Xn[[i]]<0)\n+\t  Xnn[[i]]=replace(Xn[[i]],cneg,valNulle)\n+\t}\n+  Xn=Xnn\n+  write.table(Xn,file=outfic,sep="\\t",row.names=F,quote=F)\n+\n+\tif (detail=="reg" || detail=="plot" || detail=="no") {\n+\t\tif (nbi > 3) {\n+\t\t\tpar(mfrow=c(3,4),ask=F,cex=1.2) # PCA Plot before/after, normed only and ions plot\n+\t\t\tacplight(x[,c(indtypsamp,indbatch,indtypsamp,indfact,(nbid+1):lastIon)],"uv",TRUE)\n+\t\t\tnorm.ion <- which(colnames(Xn)%in%(rownames(res.ind)[which(rowSums(res.ind)>=1)]))\n+\t\t\tacplight(Xn[,c(indtypsamp,indbatch,indtypsamp,indfact,(nbid+1):lastIon)],"uv",TRUE,norm.ion)\n+\t\t\tif(length(norm.ion)>0){acplight(Xn[,c(indtypsamp,indbatch,indtypsamp,indfact,norm.ion)],"uv",TRUE)}\n+\t\t\tpar(mfrow=c(1,2),ask=F,cex=1.2) # Before/after boxplot\n+\t\t\tcvplot=cv[!is.na(cv[[1]])&!is.na(cv[[2]]),]\n+      if(nrow(cvplot)>0){\n+\t\t\t  boxplot(cvplot[[1]],ylim=c(min(cvplot),max(cvplot)),main="CV avant")\n+        boxplot(cvplot[[2]],ylim=c(min(cvplot),max(cvplot)),main="CV apres")\n+      }\n+      dev.off()\n+\t\t}\n+\t}\n+  if (nbi<=3) {dev.off()}\n+  # transposed matrix is return  (format of the initial matrix with ions in rows)\n+  Xr=Xn[,-c(1:nbid)]; dimnames(Xr)[[1]]=Xn[[1]]\n+  Xr=t(Xr) ; Xr <- data.frame(ions=rownames(Xr),Xr)\n+  \n+  res.norm[[1]] <- Xr ; res.norm[[2]] <- data.frame(metaion,res.ind) ; res.norm[[3]] <- x[,c(1:nbid)]\n+  names(res.norm) <- c("dataMatrix","variableMetadata","sampleMetadata")\n+  return(res.norm)\n+}\n+\n+\n+\n+\n+\n+acplight <- function(ids, scaling="uv", indiv=FALSE,indcol=NULL) {\n+\tsuppressPackageStartupMessages(library(ade4))\n+\tsuppressPackageStartupMessages(library(pcaMethods))\n+  # fait une ACP sur ids sachant que la colonne 1 contient l\'identificateur d\'individu\n+  # la colonne 2:nf contient les facteurs definissant la couleur des individus\n+  for (i in 1:3) {\n+    idss=ids[which(ids[,i+1]!="NA"),]\n+    idss=data.frame(idss[idss[,i+1]!="",])\n+    classe=as.factor(idss[[i+1]])\n+    idsample=as.character(idss[[1]])\n+    colour=1:length(levels(classe))\n+    ions=as.matrix(idss[,5:dim(idss)[2]])\n+    # choix du scaling : "uv","none","pareto"\n+    object=suppressWarnings(prep(ions, scale=scaling, center=TRUE))\n+\tif(i==1){if(length(which(apply(ions,2,var)==0))>0){cat("Warning : there are",length(which(apply(ions,2,var)==0)),"constant ions.\\n")}}\n+    # ALGO: nipals,svdImpute, Bayesian, svd, probalistic=F\n+    result <- pca(object, center=F, method="svd", nPcs=2)\n+    # ADE4 : representation des ellipsoides des individus de chaque classe\n+    s.class(result@scores, classe, cpoint = 1,xax=1,yax=2,col=colour,sub=sprintf("Scores - PCs %sx%s",1,2), possub="bottomright")\n+    #s.label(result@loadings,label = ions, cpoint = 0, clabel=0.4, xax=1,yax=2,sub="Loadings",possub="bottomright")\n+    if(i==1){resulti <- result}\n+  }\n+  if(indiv) {\n+    colour <- rep("darkblue",length(resulti@loadings)) ; if(!is.null(indcol)) {colour[-c(indcol)] <- "red"}\n+    plot(resulti@loadings,col=colour,main="Loadings",xaxt="n",yaxt="n",pch=20)\n+    abline(h=0,v=0)}\n+}\n+\n+\n'
b
diff -r 000000000000 -r 71d83d8920bf README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,88 @@
+Signal drift and batch-effect correction  
+========================================
+
+A Galaxy module from the [Workflow4metabolomics](http://workflow4metabolomics.org) infrastructure  
+
+Status: [![Build Status](https://travis-ci.org/workflow4metabolomics/batchcorrection.svg?branch=master)](https://travis-ci.org/workflow4metabolomics/batchcorrection).
+
+### Description
+
+**Version:** 2.0.6  
+**Date:** 2016-08-02  
+**Author:** Jean-Fran�ois Martin (INRA, AXIOM), M�lanie P�t�ra (INRA, PFEM), Marion Landi (INRA, PFEM), Franck Giacomoni (INRA, PFEM), and Etienne A. Th�venot (CEA, LIST)  
+**Email:** [jean-francois.martin(at)toulouse.inra.fr](mailto:jean-francois.martin@toulouse.inra.frr), [melanie.petera(at)clermont.inra.fr](mailto:melanie.petera@clermont.inra.fr), [etienne.thevenot(at)cea.fr](mailto:etienne.thevenot@cea.fr)  
+**Citation:**  
+**Licence:** CeCILL  
+**Reference history:** [W4M00001b_sacurine-complete](http://galaxy.workflow4metabolomics.org/history/list_published)   
+**Funding:** Agence Nationale de la Recherche ([MetaboHUB](http://www.metabohub.fr/index.php?lang=en&Itemid=473) national infrastructure for metabolomics and fluxomics, ANR-11-INBS-0010 grant)  
+
+### Installation
+
+* Configuration files:
+    + `batch_correction.xml` (for the "Batch Correction" module)
+    + `determine_bc.xml` (for the "Determine Batch Correction" module)  
+* Image files: 
+    + `static/images/batch_correction.png`    
+    + `static/images/determine_batch_correction.png`  
+    + `static/images/pdf_plotsituation.png`    
+    + `static/images/Vdk_pdf1.png`    
+    + `static/images/Vdk_pdf2.png`        
+* Wrapper files:
+    + `batch_correction_wrapper.R`  
+    + `batch_correction_all_loess_wrapper.R`  
+* Script files:
+    + `Normalisation_QCpool.r`  
+     + `batch_correction_all_loess_script.R`  
+* R packages
+  + **batch** from CRAN  
+  
+    ```r
+    install.packages("batch", dep=TRUE)  
+    ```
+
+  + **ade4** from CRAN  
+  
+    ```r
+    install.packages("ade4", dep=TRUE)  
+    ```
+
+ + **pcaMethods** from Bioconductor  
+  
+    ```r
+    source("http://www.bioconductor.org/biocLite.R")  
+    biocLite("pcaMethods")      
+    ```
+
+ + **ropls** from Bioconductor  
+  
+    ```r
+    source("http://www.bioconductor.org/biocLite.R")  
+    biocLite("ropls")      
+    ```
+
+### Tests
+
+The code in the batch_correction_wrapper can be tested by running the `runit/batchcorrection_runtests.R` R file  
+
+You will need to install **RUnit** package in order to make it run:
+```r
+install.packages('RUnit', dependencies = TRUE)
+```
+
+### Working example  
+
+See also the reference history **W4M00001b_sacurine-complete** shared history in the **Shared Data/Published Histories** menu (https://galaxy.workflow4metabolomics.org/history/list_published)  
+
+### News
+
+##### CHANGES IN VERSION 2.0.6
+
+INTERNAL MODIFICATIONS
+
+ * Additional running and installation tests added with planemo, conda, and travis
+
+##### CHANGES IN VERSION 2.0.4
+
+INTERNAL MODIFICATION  
+
+ * Modification of the 'all_loess_wrapper.R' file to handle 'ropls' package versions of 1.3.15 and above (i.e. after switching to S4 classes) 
\ No newline at end of file
b
diff -r 000000000000 -r 71d83d8920bf batch_correction.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/batch_correction.xml Tue Aug 09 06:47:41 2016 -0400
[
b'@@ -0,0 +1,732 @@\n+<tool id="Batch_correction" name="Batch_correction" version="2.0.6">\n+  <description>Corrects intensities for signal drift and batch-effects</description>\n+\n+  <requirements>\n+    <requirement type="package" version="3.3.1">R</requirement>\n+    <requirement type="package">r-batch</requirement>\n+    <requirement type="package">r-ade4</requirement>\n+    <requirement type="package">r-pcaMethods</requirement>\n+    <requirement type="package" version="1.4.2">bioconductor-ropls</requirement>\n+  </requirements>\n+\n+  <stdio>\n+    <exit_code range="1:" level="fatal" />\n+  </stdio>\n+  \n+  <command><![CDATA[\n+    #if str($span_condition.method) == \'all_loess_pool\':\n+        Rscript $__tool_directory__/batch_correction_all_loess_wrapper.R\n+        dataMatrix "$dataMatrix"\n+        sampleMetadata "$sampleMetadata"\n+        variableMetadata "$variableMetadata"\n+        method "all_loess_pool"\n+        span "${span_condition.span}"\n+    \n+    #elif str($span_condition.method) == \'all_loess_sample\':\n+        Rscript $__tool_directory__/batch_correction_all_loess_wrapper.R\n+        dataMatrix "$dataMatrix"\n+        sampleMetadata "$sampleMetadata"\n+        variableMetadata "$variableMetadata"\n+        method "all_loess_sample"\n+        span "${span_condition.span}"\n+    #else:\n+        Rscript $__tool_directory__/batch_correction_wrapper.R\n+        analyse "batch_correction"\n+        dataMatrix "$dataMatrix"\n+        sampleMetadata "$sampleMetadata"\n+        variableMetadata "$variableMetadata"\n+        method "${span_condition.method}"\n+        #if str($span_condition.method) == \'linear\':\n+            span "none"\n+        #else:\n+            span "${span_condition.span}"\n+        #end if\n+        ref_factor "${span_condition.ref_factor}"\n+        detail "${span_condition.detail}"\n+    #end if\n+    dataMatrix_out "$dataMatrix_out" variable_for_simca "$combinedResults" variableMetadata_out "$variableMetadata_out"\n+    graph_output "$graph_output"  rdata_output "$rdata_output"\n+  ]]></command>\n+\n+  <inputs>\n+    <param name="dataMatrix" label="Data Matrix file " format="tabular" type="data" />\n+    <param name="sampleMetadata" label="Sample metadata file " format="tabular" type="data" help="must contain at least the three following columns: \'batch\' + \'injectionOrder\' + \'sampleType\'"/>\n+    <param name="variableMetadata" label="Variable metadata file " format="tabular" type="data" />\n+    \n+    <conditional name="span_condition">\n+      <param name="method" label="Type of regression model " type="select" help="To select between linear or non-linear (lowess or loess) methods to be used in Van der Kloet algorithm ; when using loess, you can choose to use pools or samples to model batch effect.">\n+\t<option value="linear">linear</option>\n+\t<option value="lowess">lowess</option>\n+\t<option value="loess">loess</option>\n+\t<option value="all_loess_pool">all loess pool</option>\n+\t<option value="all_loess_sample">all loess sample</option>\n+      </param>\n+      <when value="linear">\n+\t<param name="ref_factor" label="Factor of interest " type="text"  value="batch" help="column name of factor of interest (often a biological factor); if none, leave \'batch\'" />\n+\t<param name="detail" label="Level of details for plots " type="select" help="Amount of plots in the pdf file output. See Help section for more details.">\n+\t  <option value="no">basic</option>\n+\t  <option value="plot">standard</option>\n+\t  <option value="reg">complete</option>\n+\t</param>\n+      </when>\n+      <when value="lowess">\n+\t<param name="span" type="float" value="0.85" label="span" help="it is a advanced option. Must be less than or equal to 1"/>\n+\t<param name="ref_factor" label="Factor of interest " type="text"  value="batch" help="column name of factor of interest (often a biological factor); if none, leave \'batch\'" />\n+\t<param name="detail" label="Level of details for plots " type="select" help="Amount of plots in the pdf file output. See Help section for more details.">\n+'..b'02020280356\t21.3669776585093\t31.3312796509314\t347.760990090909\t1441.84619925857\t90.295450550822\n+\tX16437\t16437\t3\tQ4\t1\t01_08_2011\t8\ts\t152.244202534309\t77.3858014174909\t26.5039180350956\t28.2973388561794\t726.452054090909\t1289.1587961513\t86.5570806388865\n+\tX16878\t16878\t3\tQ1\t1\t01_08_2011\t19\ts\t134.003896781277\t79.3380903129169\t24.5917342073347\t45.5165130382572\t92.9168421818182\t1886.14854378149\t117.979273835979\n+\tX16888\t16888\t3\tQ4\t1\t01_08_2011\t15\ts\t160.400880621802\t78.0971960028743\t24.4134171806386\t87.9420387946402\t674.263651818182\t3700.84095135577\t215.548190721704\n+\tX17159\t17159\t3\tQ4\t1\t01_08_2011\t5\ts\t807.910566388206\t83.4544189550015\t30.5167331579687\t29.4738273480161\t749.552006545455\t2478.28485110605\t140.362352983359\n+\tX17419\t17419\t3\tQ4\t1\t01_08_2011\t7\ts\t37.4246591541122\t76.3602136963513\t35.6007838010462\t89.9617217868595\t695.297890909091\t1405.63064191075\t84.9696956072378\n+\tX17489\t17489\t3\tQ4\t2\t01_08_2011\t16\ts\t172.59123002765\t79.510605337691\t28.4678268347873\t29.3101803926911\t374.833317363636\t3641.2951457659\t203.417614300817\n+\tX17736\t17736\t3\tQ1\t1\t01_08_2011\t3\ts\t122.877799698849\t80.1781048340628\t23.3958989887532\t46.5102426333419\t254.164383090909\t2465.74273425251\t141.373694094272\n+\n+\n+Norma_result.tabular::\n+\n+\tPOOL1\tPOOL2\tX12588\tX12701\tX12718\tX13117\tX13341\tX13875\tX14325\tX15432\tX15635\tX16172\tX16220\tX16235\tX16392\tX16437\tX16878\tX16888\tX17159\tX17419\tX17489\tX17736\n+\tion01\t183.806309736177\t190.655485025641\t220.281338788057\t80.2553876257053\t0\t112.693700265425\t137.052799630498\t70.0532376321925\t183.929467815501\t123.859263984884\t761.958946663093\t97.3641336556051\t160.402716323636\t117.83745429722\t91.4762657301598\t152.244202534309\t134.003896781277\t160.400880621802\t807.910566388206\t37.4246591541122\t172.59123002765\t122.877799698849\n+\tion02\t78.555522674121\t82.783250185879\t87.500123119505\t74.3121648660553\t76.3220813847312\t84.4919000357226\t84.0842765863284\t81.4090675909135\t94.695360623753\t80.6950981610103\t82.5290665188414\t77.3172000270102\t72.5258925581935\t78.6308645435113\t84.5502020280356\t77.3858014174909\t79.3380903129169\t78.0971960028743\t83.4544189550015\t76.3602136963513\t79.510605337691\t80.1781048340628\n+\tion03\t24.2565782732588\t25.2333869921957\t24.4029802274792\t25.4930666232626\t29.4993682273574\t18.251402938821\t26.4443462044465\t20.3487238346046\t22.5226896299416\t31.6793877676942\t21.4044648499099\t17.2155856179699\t24.4649275827679\t18.315419286157\t21.3669776585093\t26.5039180350956\t24.5917342073347\t24.4134171806386\t30.5167331579687\t35.6007838010462\t28.4678268347873\t23.3958989887532\n+\tion04\t67.2059357441544\t31.0106280849366\t62.5632990312483\t103.089356639338\t24.2539829611226\t41.3577240621519\t21.2284636032788\t23.2831876997425\t47.497332543935\t62.6545185712173\t86.9208671903241\t58.6271832180619\t37.3959023125888\t24.950677956983\t31.3312796509314\t28.2973388561794\t45.5165130382572\t87.9420387946402\t29.4738273480161\t89.9617217868595\t29.3101803926911\t46.5102426333419\n+\tion05\t0\t0\t94.2986763636364\t414.218462818182\t600.817868636364\t578.781479727273\t467.623937181818\t67.7758438818182\t395.130825545454\t803.848495272727\t468.946563181818\t362.182051727273\t498.740498727273\t52.1508526818182\t347.760990090909\t726.452054090909\t92.9168421818182\t674.263651818182\t749.552006545455\t695.297890909091\t374.833317363636\t254.164383090909\n+\tion06\t2756.58450391724\t2621.24237826457\t3459.67039593807\t2259.03570054876\t3542.65272205883\t2628.90920103769\t3392.25066785752\t3358.22588611392\t2589.44599169574\t3429.68592298187\t2758.73531975414\t2238.0970735015\t2103.99860111142\t3708.61347563638\t1441.84619925857\t1289.1587961513\t1886.14854378149\t3700.84095135577\t2478.28485110605\t1405.63064191075\t3641.2951457659\t2465.74273425251\n+\tion07\t158.052416850832\t157.236695576441\t193.243760535699\t127.848278698451\t215.622242057156\t150.522965863022\t187.147883253472\t208.498595063134\t141.360943533866\t193.242902316211\t163.776450823485\t151.418448347397\t143.406307055514\t196.298993992243\t90.295450550822\t86.5570806388865\t117.979273835979\t215.548190721704\t140.362352983359\t84.9696956072378\t203.417614300817\t141.373694094272\n+-->\n+</tool>\n'
b
diff -r 000000000000 -r 71d83d8920bf batch_correction_all_loess_script.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/batch_correction_all_loess_script.R Tue Aug 09 06:47:41 2016 -0400
[
b'@@ -0,0 +1,289 @@\n+loessF <- function(datVn, qcaVi, preVi, spnN, vrbL=FALSE) {\n+\n+    if(length(qcaVi) < 5) {\n+\n+        if(vrbL)\n+            cat("\\nWarning: less than 5 \'", refC, "\'; linear regression will be performed instead of loess regression for this batch\\n", sep="")\n+\n+        return(predict(lm(datVn[qcaVi] ~ qcaVi),\n+                       newdata = data.frame(qcaVi = preVi)))\n+\n+    } else {\n+\n+        return(predict(loess(datVn[qcaVi] ~ qcaVi,\n+                             control = loess.control(surface = "direct"),\n+                             span = spnN),\n+                       newdata = data.frame(qcaVi = preVi)))\n+\n+    }\n+\n+    ## Note:\n+    ##  the surface = \'direct\' argument allows extrapolation\n+\n+} ## loessF\n+\n+plotBatchF <- function(datMN, samDF.arg, spnN.arg) {\n+\n+    maiC <- switch(gsub("MN", "", deparse(substitute(datMN))),\n+                   raw = "Raw",\n+                   nrm = "Normalized")\n+\n+    colVc <- c(sample = "green4",\n+               pool = "red",\n+               blank = "black",\n+               other = "yellow")\n+\n+    par(font = 2, font.axis = 2, font.lab = 2, lwd = 2, pch = 18)\n+\n+    layout(matrix(c(1, 1, 2, 3), nrow = 2),\n+           widths = c(0.7, 0.3))\n+\n+    obsNamVc <- rownames(datMN)\n+\n+    obsColVc <- sapply(samDF.arg[, "sampleType"],\n+                       function(typC)\n+                       ifelse(typC %in% names(colVc), colVc[typC], colVc["other"]))\n+\n+    ## Graphic 1: Sum of intensities for each sample\n+\n+    par(mar = c(3.6, 3.6, 3.1, 0.6))\n+\n+    batTab <- table(samDF.arg[, "batch"])\n+\n+    sumVn <- rowSums(datMN, na.rm = TRUE)\n+\n+    plot(sumVn,\n+         cex = 1.2,\n+         col = obsColVc,\n+         pch = 18,\n+         xaxs = "i",\n+         xlab = "",\n+         ylab = "")\n+\n+    mtext("Injection order",\n+          line = 2.2,\n+          side = 1)\n+    mtext("Sum of variable intensities",\n+          line = 2.2,\n+          side = 2)\n+\n+    mtext(maiC, cex = 1.2, line = 1.5, side = 3)\n+\n+    abline(v = cumsum(batTab) + 0.5,\n+           col = "red")\n+\n+    mtext(names(batTab),\n+          at = batTab / 2 + c(0, cumsum(batTab[-length(batTab)])))\n+\n+    obsColVuc <- obsColVc[sort(unique(names(obsColVc)))]\n+\n+    text(rep(batTab[1], times = length(obsColVuc)),\n+         par("usr")[3] + (0.97 - length(obsColVuc) * 0.03 + 1:length(obsColVuc) * 0.03) * diff(par("usr")[3:4]),\n+         col = obsColVuc,\n+         font = 2,\n+         labels = names(obsColVuc),\n+         pos = 2)\n+\n+    for(batC in names(batTab)) {\n+\n+        batSeqVi <- which(samDF.arg[, "batch"] == batC)\n+        batPooVi <- intersect(batSeqVi,\n+                              grep("pool", samDF.arg[, "sampleType"]))\n+        batSamVi <- intersect(batSeqVi,\n+                              grep("sample", samDF.arg[, "sampleType"]))\n+        if(length(batPooVi))\n+            lines(batSeqVi,\n+                  loessF(sumVn, batPooVi, batSeqVi, spnN=spnN.arg),\n+                  col = colVc["pool"])\n+        lines(batSeqVi,\n+              loessF(sumVn, batSamVi, batSeqVi, spnN=spnN.arg),\n+              col = colVc["sample"])\n+\n+    }\n+\n+    ## Graphics 2 and 3 (right): PCA score plots of components 1-4\n+\n+    radVn <- seq(0, 2 * pi, length.out = 100)\n+    epsN <- .Machine[["double.eps"]] ## [1] 2.22e-16\n+\n+    pcaMN <- datMN\n+\n+    pcaLs <- opls(pcaMN, predI = 4, printL = FALSE, plotL = FALSE)\n+    tMN <- getScoreMN(pcaLs)\n+    vRelVn <- pcaLs@modelDF[, "R2X"]\n+\n+    n <- nrow(tMN)\n+    hotN <- 2 * (n - 1) * (n^2 - 1) / (n^2 * (n - 2))\n+\n+    hotFisN <- hotN * qf(0.95, 2, n - 2)\n+\n+    pcsLs <- list(c(1, 2), c(3, 4))\n+\n+    par(mar = c(3.6, 3.6, 0.6, 1.1))\n+\n+    for(pcsN in 1:length(pcsLs)) {\n+\n+        pcsVn <- pcsLs[[pcsN]]\n+\n+        tcsMN <- tMN[, pcsVn]\n+\n+        micMN <- solve(cov(tcsMN))\n+\n+        n <- nrow(tMN)\n+        hotN <- 2 * (n - 1) * (n^2 - 1) / (n^2 * (n - 2))\n+\n+        hotFisN <- hotN * qf(0.95, 2, n - 2)\n+\n+        hotVn <- apply(tcsMN,\n+                       1,\n+                       f'..b'(-1, 1) * max(sqrt(var(tcsMN[, 2]) * hotFisN), max(abs(tcsMN[, 2])))\n+\n+        plot(tcsMN,\n+             main = "",\n+             type = "n",\n+             xlab = "",\n+             ylab = "",\n+             xlim = xLimVn,\n+             ylim = yLimVn)\n+\n+        mtext(xLabC,\n+              line = 2.2,\n+              side = 1)\n+        mtext(yLabC,\n+              line = 2.2,\n+              side = 2)\n+\n+        par(lwd = 1)\n+\n+        abline(v = axTicks(1),\n+               col = "grey")\n+\n+        abline(h = axTicks(2),\n+               col = "grey")\n+\n+        abline(v = 0)\n+        abline(h = 0)\n+\n+        lines(sqrt(var(tcsMN[, 1]) * hotFisN) * cos(radVn),\n+              sqrt(var(tcsMN[, 2]) * hotFisN) * sin(radVn))\n+\n+        points(tcsMN,\n+               col = obsColVc,\n+               pch = 18)\n+\n+        if(length(obsHotVi))\n+            text(tcsMN[obsHotVi, 1],\n+                 tcsMN[obsHotVi, 2],\n+                 col = obsColVc[obsHotVi],\n+                 labels = obsNamVc[obsHotVi],\n+                 pos = 3)\n+\n+    } ## for(pcsN in 1:length(pcsLs)) {\n+\n+    return(invisible(list(sumVn = sumVn,\n+                          tcsMN = tcsMN)))\n+\n+} ## plotBatchF\n+\n+shiftBatchCorrectF <- function(rawMN.arg,\n+                               samDF.arg,\n+                               refC.arg,\n+                               spnN.arg) {\n+\n+    cat("\\nReference observations are: ", refC.arg, "\\n")\n+\n+    ## computing median off all pools (or samples) for each variable\n+\n+    refMeaVn <- apply(rawMN.arg[samDF.arg[, "sampleType"] == refC.arg, ],\n+                      2,\n+                      function(feaRefVn) mean(feaRefVn, na.rm = TRUE))\n+\n+    ## splitting data and sample metadata from each batch\n+\n+    batRawLs <- split(as.data.frame(rawMN.arg),\n+                      f = samDF.arg[, "batch"])\n+    batRawLs <- lapply(batRawLs, function(inpDF) as.matrix(inpDF))\n+\n+    batSamLs <- split(as.data.frame(samDF.arg),\n+                      f = samDF.arg[, "batch"])\n+\n+    ## checking extrapolation: are there pools at the first and last observations of each batch\n+\n+    if(refC.arg == "pool") {\n+        pooExtML <- matrix(FALSE, nrow = 2, ncol = length(batRawLs),\n+                           dimnames = list(c("first", "last"), names(batRawLs)))\n+        for(batC in names(batSamLs)) {\n+            batSamTypVc <- batSamLs[[batC]][, "sampleType"]\n+            pooExtML["first", batC] <- head(batSamTypVc, 1) == "pool"\n+            pooExtML["last", batC] <- tail(batSamTypVc, 1) == "pool"\n+        }\n+        if(!all(c(pooExtML))) {\n+            cat("\\nWarning: Pools are missing at the first and/or last position of the following batches:\\n")\n+            pooExtBatVi <- which(!apply(pooExtML, 2, all))\n+            for(i in 1:length(pooExtBatVi))\n+                cat(names(pooExtBatVi)[i], ": ",\n+                    paste(rownames(pooExtML)[!pooExtML[, pooExtBatVi[i]]], collapse = ", "), "\\n", sep = "")\n+            cat("Extrapolating loess fits for these batches may result in inaccurate modeling!\\n")\n+        }\n+    }\n+\n+    ## normalizing\n+\n+    nrmMN <- NULL ## normalized data matrix to be computed\n+\n+    cat("\\nProcessing batch:")\n+\n+    for(batC in names(batRawLs)) { ## processing each batch individually\n+\n+        cat("\\n", batC)\n+\n+        batRawMN <- batRawLs[[batC]]\n+        batSamDF <- batSamLs[[batC]]\n+\n+        batAllVi <- 1:nrow(batRawMN)\n+\n+        batRefVi <- grep(refC.arg, batSamDF[, "sampleType"])\n+\n+        ## prediction of the loess fit\n+\n+        batLoeMN <- apply(batRawMN,\n+                          2,\n+                          function(rawVn) loessF(rawVn, batRefVi, batAllVi, spnN=spnN.arg, vrbL=TRUE))\n+\n+        ## normalization\n+\n+        batLoeMN[batLoeMN <= 0] <- NA\n+\n+        batNrmMN <- batRawMN / batLoeMN\n+\n+        nrmMN <- rbind(nrmMN,\n+                       batNrmMN)\n+\n+    }\n+\n+    cat("\\n")\n+\n+    nrmMN <- sweep(nrmMN, MARGIN = 2, STATS = refMeaVn, FUN = "*")\n+\n+    return(nrmMN)\n+\n+} ## shiftBatchCorrectF\n'
b
diff -r 000000000000 -r 71d83d8920bf batch_correction_all_loess_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/batch_correction_all_loess_wrapper.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,196 @@
+#!/usr/bin/env Rscript
+
+library(batch) ## necessary for parseCommandArgs function
+args = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects
+
+source_local <- function(fname){
+    argv <- commandArgs(trailingOnly = FALSE)
+    base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
+    source(paste(base_dir, fname, sep="/"))
+}
+
+## Import the different functions
+source_local("batch_correction_all_loess_script.R")
+
+argVc <- unlist(args)
+
+##  argVc["method"] is either 'all_loess_pool' or 'all_loess_sample'
+##  alternative version developped by CEA
+##  all variables are treated with loess
+##  the reference observations for loess are either 'pool'
+## ('all_loess_pool') or 'sample' ('all_loess_sample')
+
+
+##------------------------------
+## Initializing
+##------------------------------
+
+## options
+##--------
+
+strAsFacL <- options()$stringsAsFactors
+options(stringsAsFactors = FALSE)
+
+## libraries
+##----------
+
+suppressMessages(library(ropls))
+
+if(packageVersion("ropls") < "1.4.0")
+    stop("Please use 'ropls' versions of 1.4.0 and above")
+
+## constants
+##----------
+
+modNamC <- "Batch correction" ## module name
+
+## log file
+##---------
+
+## sink(argVc["information"]) ## not implemented
+
+cat("\nStart of the '", modNamC, "' Galaxy module call: ",
+    format(Sys.time(), "%a %d %b %Y %X"), "\n", sep="")
+
+## loading
+##--------
+
+rawMN <- t(as.matrix(read.table(argVc["dataMatrix"],
+                                header = TRUE,
+                                row.names = 1,
+                                sep = "\t")))
+
+samDF <- read.table(argVc["sampleMetadata"],
+                    header = TRUE,
+                    row.names = 1,
+                    sep = "\t")
+
+varDF <- read.table(argVc["variableMetadata"],
+                    check.names = FALSE,
+                    header = TRUE,
+                    row.names = 1,
+                    sep = "\t") ## not used; for compatibility only
+
+refC <- tolower(gsub("all_loess_", "", argVc["method"]))
+
+spnN <- as.numeric(argVc["span"])
+
+
+## checking
+##---------
+
+stopifnot(refC %in% c("pool", "sample"))
+
+if(refC == "pool" &&
+   !any("pool" %in% samDF[, "sampleType"]))
+    stop("No 'pool' found in the 'sampleType' column; use the samples as normalization reference instead")
+
+refMN <- rawMN[samDF[, "sampleType"] == refC, ]
+refNasZerVl <- apply(refMN, 2,
+                     function(refVn)
+                     all(sapply(refVn,
+                                function(refN) {is.na(refN) || refN == 0})))
+
+if(sum(refNasZerVl)) {
+
+    refNasZerVi <- which(refNasZerVl)
+    cat("The following variables have 'NA' or 0 values in all reference samples; they will be removed from the data:\n", sep = "")
+    print(refNasZerVi)
+    rawMN <- rawMN[, !refNasZerVl, drop = FALSE]
+    varDF <- varDF[!refNasZerVl, , drop = FALSE]
+
+}
+
+##------------------------------
+## Computation
+##------------------------------
+
+## ordering (batch and injection order)
+##-------------------------------------
+
+samDF[, "ordIniVi"] <- 1:nrow(rawMN)
+ordBatInjVi <- order(samDF[, "batch"], samDF[, "injectionOrder"])
+rawMN <- rawMN[ordBatInjVi, ]
+samDF <- samDF[ordBatInjVi, ]
+
+## signal drift and batch-effect correction
+##-----------------------------------------
+
+nrmMN <- shiftBatchCorrectF(rawMN,
+                            samDF,
+                            refC,
+                            spnN)
+
+## figure
+##-------
+
+cat("\nPlotting\n")
+
+pdf(argVc["graph_output"], onefile = TRUE, width = 11, height = 7)
+plotBatchF(rawMN, samDF, spnN)
+plotBatchF(nrmMN, samDF, spnN)
+dev.off()
+
+## returning to initial order
+##---------------------------
+
+ordIniVi <- order(samDF[, "ordIniVi"])
+nrmMN <- nrmMN[ordIniVi, ]
+samDF <- samDF[ordIniVi, ]
+samDF <- samDF[, colnames(samDF) != "ordIniVi", drop=FALSE]
+
+
+##------------------------------
+## Ending
+##------------------------------
+
+
+## saving
+##-------
+
+datMN <- nrmMN
+
+datDF <- cbind.data.frame(dataMatrix = colnames(datMN),
+                          as.data.frame(t(datMN)))
+write.table(datDF,
+            file = argVc["dataMatrix_out"],
+            quote = FALSE,
+            row.names = FALSE,
+            sep = "\t")
+
+varDF <- cbind.data.frame(variableMetadata = rownames(varDF),
+                          varDF) ## not modified; for compatibility only
+write.table(varDF,
+            file = argVc["variableMetadata_out"],
+            quote = FALSE,
+            row.names = FALSE,
+            sep = "\t")
+
+simDF <- cbind.data.frame(samDF, as.data.frame(datMN)) ## for compatibility
+simDF <- cbind.data.frame(names = rownames(simDF),
+                          simDF)
+write.table(simDF,
+            file = argVc["variable_for_simca"],
+            quote = FALSE,
+            row.names = FALSE,
+            sep = "\t")
+
+res <- list(dataMatrix_raw = rawMN,
+            dataMatrix_normalized = nrmMN,
+            sampleMetadata = samDF)
+save(res,
+     file = argVc["rdata_output"]) ## for compatibility
+
+## closing
+##--------
+
+cat("\nEnd of '", modNamC, "' Galaxy module call: ",
+    as.character(Sys.time()), "\n", sep = "")
+
+## sink()
+
+options(stringsAsFactors = strAsFacL)
+
+
+rm(argVc)
+
b
diff -r 000000000000 -r 71d83d8920bf batch_correction_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/batch_correction_wrapper.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,124 @@
+#!/usr/bin/Rscript --vanilla --slave --no-site-file
+
+################################################################################################
+# batch_correction_wrapper                                                                     #
+#                                                                                              #
+# Author: Marion LANDI / Jean-Francois MARTIN / Melanie Petera                                 #
+# User: Galaxy                                                                                 #
+# Original data: --                                                                            #
+# Starting date: 22-07-2014                                                                    #
+# Version 1: 22-07-2014                                                                        #
+# Version 2: 08-12-2014                                                                        #
+# Version 2.1: 09-01-2015 modification in Error message of sample matching                     #
+# Version 2.2: 16-03-2015 inclusion of miniTools' functions for special characters             #
+#                                                                                              #
+#                                                                                              #
+# Input files: dataMatrix.txt ; sampleMetadata.txt ; variableMetadata.txt (for DBC)            #
+# Output files: graph_output.pdf ; corrected table ; diagnostic table                          #
+#                                                                                              #
+################################################################################################
+
+
+library(batch) #necessary for parseCommandArgs function
+args = parseCommandArgs(evaluate=FALSE) #interpretation of arguments given in command line as an R list of objects
+
+source_local <- function(...){
+ argv <- commandArgs(trailingOnly = FALSE)
+ base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
+ for(i in 1:length(list(...))){source(paste(base_dir, list(...)[[i]], sep="/"))}
+}
+#Import the different functions
+source_local("Normalisation_QCpool.r","easyrlibrary-lib/RcheckLibrary.R","easyrlibrary-lib/miniTools.R")
+
+
+## Reading of input files
+idsample=read.table(args$sampleMetadata,header=T,sep='\t',check.names=FALSE)
+iddata=read.table(args$dataMatrix,header=T,sep='\t',check.names=FALSE)
+
+### Table match check 
+table.check <- match2(iddata,idsample,"sample")
+
+### StockID
+samp.id <- stockID(iddata,idsample,"sample")
+iddata<-samp.id$dataMatrix ; idsample<-samp.id$Metadata ; samp.id<-samp.id$id.match
+
+### Checking mandatory variables
+mand.check <- ""
+for(mandcol in c("sampleType","injectionOrder","batch")){
+  if(!(mandcol%in%colnames(idsample))){
+    mand.check <- c(mand.check,"\nError: no '",mandcol,"' column in sample metadata.\n",
+                    "Note: table must include this exact column name (it is case-sensitive).\n")
+  }
+}
+if(length(mand.check)>1){check.err(paste(table.check,mand.check,sep=""))}
+
+### Formating
+idsample[[1]]=make.names(idsample[[1]])
+dimnames(iddata)[[1]]=iddata[[1]]
+
+### Transposition of ions data
+idTdata=t(iddata[,2:dim(iddata)[2]])
+idTdata=data.frame(dimnames(idTdata)[[1]],idTdata)
+
+### Merge of 2 files (ok even if the two dataframe are not sorted on the same key)
+id=merge(idsample, idTdata, by.x=1, by.y=1)
+
+id$batch=as.factor(id$batch)
+ids=id[id$sampleType == 'pool' | id$sampleType == 'sample',]
+nbid=dim(idsample)[2]
+
+### Checking the number of sample and pool
+
+# least 2 samples
+if(length(which(ids$sampleType == "sample"))<2){
+ table.check <- c(table.check,"\nError: less than 2 samples specified in sample metadata.",
+        "\nMake sure this is not due to errors in sampleType coding.\n")
+}
+
+# least 2 pools per batch for all batchs
+B <- rep(0,length(levels(ids$batch)))
+for(nbB in length(levels(ids$batch))){
+ B[nbB]<-length(which(ids[which(ids$batch==(levels(ids$batch)[nbB])),]$sampleType == "pool"))
+}
+if(length(which(B>1))==0){
+ table.check <- c(table.check,"\nError: less than 2 pools specified in each batch in sample metadata.",
+        "\nMake sure this is not due to errors in sampleType coding.\n")
+}
+
+### Factor of interest 
+factbio=args$ref_factor
+
+
+if(args$analyse == "batch_correction") {
+ ## Reading of Metadata Ions file
+ metaion=read.table(args$variableMetadata,header=T,sep='\t',check.names=FALSE)
+ ## Table match check 
+ table.check <- c(table.check,match2(iddata,metaion,"variable"))
+ check.err(table.check)
+
+ ## variables
+ detail=args$detail
+ method=args$method
+
+ ## outputs
+ outfic=args$variable_for_simca
+ outlog=args$graph_output
+
+ ## Launch
+ res = norm_QCpool(ids,nbid,outfic,outlog,factbio,metaion,detail,F,F,method,args$span)
+ save(res, file=args$rdata_output)
+ write.table(reproduceID(res[[1]],res[[3]],"sample",samp.id)$dataMatrix, file=args$dataMatrix_out, sep = '\t', row.names=F, quote=F)
+ write.table(res[[2]], file=args$variableMetadata_out, sep = '\t', row.names=F, quote=F)
+}else{
+ ## error check
+ check.err(table.check)
+
+ ## outputs
+ out_graph_pdf=args$out_graph_pdf
+ out_preNormSummary=args$out_preNormSummary
+
+ ## Launch
+ plotsituation(ids,nbid,out_graph_pdf,out_preNormSummary,factbio,args$span)
+}
+
+rm(args)
b
diff -r 000000000000 -r 71d83d8920bf build.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/build.xml Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,78 @@
+<project name="batchcorrection" default="all">
+
+ <property name="tool.xml" value="batch_correction.xml"/>
+ <property name="conda.dir" value="${user.home}/w4m-conda"/>
+
+ <!--~~~
+ ~ ALL ~
+ ~~~~~-->
+
+ <target name="all"/>
+
+ <!--~~~~
+ ~ TEST ~
+ ~~~~~-->
+
+ <target name="test" depends="planemo.lint,planemo.test"/>
+
+ <!--~~~~~~~~~~~~
+ ~ PLANEMO LINT ~
+ ~~~~~~~~~~~~~-->
+
+ <target name="planemo.lint">
+ <exec executable="planemo" failonerror="true">
+ <arg value="lint"/>
+ <arg value="${tool.xml}"/>
+ </exec>
+ </target>
+
+ <!--~~~~~~~~~~~~
+ ~ PLANEMO TEST ~
+ ~~~~~~~~~~~~~-->
+
+ <target name="planemo.test" depends="planemo.conda.install">
+ <exec executable="planemo" failonerror="true">
+ <arg value="test"/>
+ <arg value="--conda_prefix"/>
+ <arg value="${conda.dir}"/>
+ <arg value="--galaxy_branch"/>
+ <arg value="release_16.01"/>
+ <arg value="--conda_dependency_resolution"/>
+ <arg value="${tool.xml}"/>
+ </exec>
+ </target>
+
+ <!--~~~~~~~~~~~~~~~~~~~~~
+ ~ PLANEMO CONDA INSTALL ~
+ ~~~~~~~~~~~~~~~~~~~~~~-->
+
+ <target name="planemo.conda.install" depends="planemo.conda.init">
+ <exec executable="planemo" failonerror="true">
+ <arg value="conda_install"/>
+ <arg value="--conda_prefix"/>
+ <arg value="${conda.dir}"/>
+ <arg value="${tool.xml}"/>
+ </exec>
+ </target>
+
+ <!--~~~~~~~~~~~~~~~~~~
+ ~ PLANEMO CONDA INIT ~
+ ~~~~~~~~~~~~~~~~~~~-->
+
+ <target name="planemo.conda.init">
+ <exec executable="planemo" failonerror="true">
+ <arg value="conda_init"/>
+ <arg value="--conda_prefix"/>
+ <arg value="${conda.dir}"/>
+ </exec>
+ </target>
+
+ <!--~~~~~
+ ~ CLEAN ~
+ ~~~~~~-->
+
+ <target name="clean">
+ <delete dir="${conda.dir}"/>
+ </target>
+
+</project>
b
diff -r 000000000000 -r 71d83d8920bf determine_bc.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/determine_bc.xml Tue Aug 09 06:47:41 2016 -0400
[
b'@@ -0,0 +1,283 @@\n+<tool id="Determine_BC" name="Determine_batch_correction" version="2.0.0">\n+  <description>to choose between linear, lowess and loess methods</description>\n+\n+  <requirements>\n+    <requirement type="package" version="3.3.1">R</requirement>\n+    <requirement type="package">r-batch</requirement>\n+    <requirement type="package">r-ade4</requirement>\n+    <requirement type="package">r-pcaMethods</requirement>\n+  </requirements>\n+\n+  <stdio>\n+    <exit_code range="1:" level="fatal" />\n+  </stdio>\n+ \n+  <command><![CDATA[\n+    Rscript $__tool_directory__/batch_correction_wrapper.R\n+      analyse "determine_bc"\n+      sampleMetadata "$sampleMetadata"\n+      dataMatrix "$dataMatrix"\n+      ref_factor "$ref_factor"\n+      #if str($advance.option ) == \'show\':\n+        span $advance.span\n+      #else:\n+        span "none"\n+      #end if\n+      out_graph_pdf "$out_graph_pdf"\n+      out_preNormSummary "$out_preNormSummary"\n+  ]]></command>\n+  \n+  <inputs>\n+    <param name="dataMatrix" type="data" label="Data Matrix file " help="" format="tabular" />\n+    <param name="sampleMetadata" type="data" label="Sample metadata file " help="must contain at least the three following columns: \'batch\' + \'injectionOrder\' + \'sampleType\'" format="tabular" />\n+    <param name="ref_factor" type="text" label="Factor of interest " help="column name of the factor of interest (often a biological factor); if none, leave \'batch\'" value="batch" />\n+    <conditional name="advance">\n+        <param name="option" type="select" label="Advanced options" help="should only be put at \'show\' if you have good understanding of the span parameter and are willing to adjust it">\n+            <option value="show">show</option>\n+            <option value="hide" selected="true">hide</option>\n+        </param>\n+\t<when value="hide">\n+\t  <param name="span" type="hidden" value="none"/>\n+\t</when>\t\n+        <when value="show">\n+          <param name="span" type="float" value="0.85" label="span" help="applied to lowess and loess regression"/>\n+        </when>\n+    </conditional>\n+  </inputs>\n+  \n+  <outputs>\n+    <data name="out_graph_pdf" label="Determine_BC_graph" format="pdf" ></data>\n+    <data name="out_preNormSummary" label="Determine_BC_preNormSummary" format="tabular" ></data>\n+  </outputs>\n+\n+  <tests>\n+    <test>\n+      <param name="dataMatrix" value="input-determinebc-dataMatrix.tsv"/>\n+      <param name="sampleMetadata" value="input-determinebc-sampleMetadata.tsv"/>\n+      <param name="ref_factor" value="batch"/>\n+      <param name="option" value="hide"/>\n+      <param name="span" value="none"/>\n+      <output name="out_preNormSummary" file="output-determinebc-preNormSummary.txt"/>\n+    </test>\n+  </tests>\n+\t\n+  <help>\n+\n+.. class:: infomark\n+\n+**Authors** Franck Giacomoni and Marion Landi (for interface and wrapper) and Jean-Francois Martin and Melanie Petera (for R)\n+\n+---------------------------------------------------\n+\n+.. class:: infomark\n+\n+**Please cite** If you use this tool, please cite `F.M. van der Kloet, I. Bobeldijk, E.R. Verheij, R.H. Jellema. (2009). "Analytical error reduction using single point calibration for accurate and precise metabolomic phenotyping." Journal of Proteome Research p5132-5141 &lt;http://www.ncbi.nlm.nih.gov/pubmed/19754161&gt;`_\n+\n+---------------------------------------------------\n+\n+==========================\n+Determine_batch_correction\n+==========================\n+\n+-----------\n+Description\n+-----------\n+\n+| Allows to choose between linear or non-linear (lowess or loess) functions for batch correction\n+| using quality control pooled samples (QC-pools) with correction algorithm as mentioned by Van Der Kloet (J Prot Res 2009).\n+| \n+| Warning : this module does *not* deliver which choice should be made in model type;\n+| it only provides tools to help users to determine which choice may be appropriate, based on their own expertise.\n+| \n+| This tool is meant to be used prior to the Batch_correction tool to help make a c'..b'0499r}\n+  }</citation>\n+  <citation type="doi">10.1093/bioinformatics/btu813</citation>\n+</citations>\n+  \n+<!--  \n+Input files\n+===========\n+\n+| **These two input files can be used in the purview "URL/Text:" of the tool "Get Data/Upload File",**\n+| **by checking the box "Convert spaces to tabs: YES"**\n+\n+Metadata_samples.txt\n+\tModel input Sample metadata file::\n+\n+\t\tsamples idLIMS serie factor01 factor02 batch injectionOrder sampleType\n+\t\tPOOL1 POOL1 pool p pool 01_08_2011 1 p\n+\t\tX12588 12588 3 validation 2 01_08_2011 2 s\n+\t\tX17736 17736 3 Q1 1 01_08_2011 3 s\n+\t\tX15432 15432 3 validation 1 01_08_2011 4 s\n+\t\tX17159 17159 3 Q4 1 01_08_2011 5 s\n+\t\tX14325 14325 3 validation 2 01_08_2011 6 s\n+\t\tX17419 17419 3 Q4 1 01_08_2011 7 s\n+\t\tX16437 16437 3 Q4 1 01_08_2011 8 s\n+\t\tX16172 16172 3 Q4 2 01_08_2011 9 s\n+\t\tX16392 16392 3 Q4 2 01_08_2011 10 s\n+\t\tX13875 13875 3 validation 2 01_08_2011 11 s\n+\t\tPOOL2 POOL2 pool p pool 01_08_2011 12 p\n+\t\tX13117 13117 3 Q4 2 01_08_2011 13 s\n+\t\tX13341 13341 3 Q1 2 01_08_2011 14 s\n+\t\tX16888 16888 3 Q4 1 01_08_2011 15 s\n+\t\tX17489 17489 3 Q4 2 01_08_2011 16 s\n+\t\tX12718 12718 3 Q1 2 01_08_2011 17 s\n+\t\tX16235 16235 3 Q4 2 01_08_2011 18 s\n+\t\tX16878 16878 3 Q1 1 01_08_2011 19 s\n+\t\tX12701 12701 3 validation 1 01_08_2011 20 s\n+\t\tX16220 16220 3 Q4 2 01_08_2011 21 s\n+\t\tX15635 15635 3 Q4 1 01_08_2011 22 s\n+\n+\n+Intensity_matrix.txt\n+\tModel input Matrix Ions file BEFORE IMPLEMENTATION::\n+\n+\t\tsamples POOL1 X12588 X17736 X15432 X17159 X14325 X17419 X16437 X16172 X16392 X13875 POOL2 X13117 X13341 X16888 X17489 X12718 X16235 X16878 X12701 X16220 X15635\n+\t\tion01 188.4140625 219.729126 122.5697632 123.5487671 805.8852539 183.4683838 37.33084106 151.8625488 97.12005615 91.24694824 69.87762451 195.4349365 112.4111938 136.7092285 159.9987793 172.1585693 0 117.5420532 133.6679688 80.05419922 160.0006104 760.0488281\n+\t\tion02 82.02575684 87.11358643 79.82391357 80.33862305 83.08575439 94.27703857 76.02288818 77.04394531 76.97564697 84.17669678 81.04943848 86.44024658 84.11865234 83.71282959 77.75219727 79.15936279 75.98492432 78.2835083 78.98760986 73.98388672 72.20550537 82.16448975\n+\t\tion03 25.31900024 24.2960968 23.29342651 31.54063416 30.3830719 22.42404175 35.44485474 26.38783264 17.1401825 21.27339172 20.25959778 26.33859253 18.17146301 26.32852173 24.30648804 28.34313965 29.37016296 18.23519897 24.48402405 25.38140869 24.35777283 21.31071472\n+\t\tion04 65.87536621 62.68716431 46.60232544 62.77856445 29.53218079 47.59136963 90.13983154 28.35336304 58.74325562 31.39331055 23.32928467 30.39666748 41.43960571 21.27049255 88.1161499 29.36820984 24.30200195 25.00007629 45.60662842 103.293457 37.46994019 87.09295654\n+\t\tion05 0 103.728544 279.5808214 884.2333448 824.5072072 434.6439081 764.82768 799.0972595 398.4002569 382.5370891 74.55342827 0 636.6596277 514.3863309 741.690017 412.3166491 660.8996555 57.36593795 102.2085264 455.6403091 548.6145486 515.8412195\n+\t\tion06 2711.785156 3465.292969 2469.75 3435.259766 2482.3125 2593.654297 1407.915039 1291.253906 2241.734375 1444.189453 3363.683594 2578.642578 2633.181641 3397.763672 3706.855469 3647.212891 3548.410156 3714.640625 1889.213867 2262.707031 2107.417969 2763.21875\n+\t\tion07 164.9023438 192.40625 140.7609863 192.4053955 139.7540283 140.748291 84.60144043 86.1819458 150.762207 89.90411377 207.5949707 164.0512695 149.8706055 186.336792 214.6140137 202.5360107 214.6877441 195.4482422 117.4679565 127.2941895 142.78479 163.0666504\n+\n+\n+Parameters\n+==========\n+\n+Factor analysis  -> **batch**\n+\n+\n+Output files\n+============\n+\n+out_preNormSummary.tabular:\n+\n+====== ============== ==============\n+labion batch.1.linear batch.1.lowess\n+====== ============== ==============\n+ion01   2              2\n+ion02   2              2\n+ion03   2              2\n+ion04   2              2\n+ion05   1              1\n+...     ...            ...\n+====== ============== ==============\n+\n+\n+out_graph_pdf.pdf\n+\n+.. image:: ./static/images/metabolomics/pdf_plotsituation.png\n+        :width: 800\n+-->\n+\n+</tool>\n'
b
diff -r 000000000000 -r 71d83d8920bf easyrlibrary-lib/RcheckLibrary.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/easyrlibrary-lib/RcheckLibrary.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,124 @@
+######################################################
+# R check library
+# Coded by: M.Petera, 
+# - -
+# R functions to use in R scripts  
+# (management of various generic subroutines)
+# - -
+# V0: script structure + first functions
+# V1: More detailed error messages in match functions
+######################################################
+
+
+# Generic function to return an error if problems have been encountered - - - -
+
+check.err <- function(err.stock){
+
+ # err.stock = vector of results returned by check functions
+
+ if(length(err.stock)!=0){ stop("\n- - - - - - - - -\n",err.stock,"\n- - - - - - - - -\n") }
+
+}
+
+
+
+
+# Table match check functions - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# To check if dataMatrix and (variable or sample)Metadata match regarding identifiers
+match2 <- function(dataMatrix, Metadata, Mtype){
+
+ # dataMatrix = data.frame containing dataMatrix
+ # Metadata = data.frame containing sampleMetadata or variableMetadata
+ # Mtype = "sample" or "variable" depending on Metadata content
+
+ err.stock <- NULL # error vector
+
+ id2 <- Metadata[,1]
+ if(Mtype=="sample"){ id1 <- colnames(dataMatrix)[-1] }
+ if(Mtype=="variable"){ id1 <- dataMatrix[,1] }
+
+ if( length(which(id1%in%id2))!=length(id1) || length(which(id2%in%id1))!=length(id2) ){
+ err.stock <- c("\nData matrix and ",Mtype," metadata do not match regarding ",Mtype," identifiers.")
+ if(length(which(id1%in%id2))!=length(id1)){
+ if(length(which(!(id1%in%id2)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the data matrix\n",
+ "    do not appear in the ",Mtype," metadata file:\n")
+ identif <- id1[which(!(id1%in%id2))][1:min(3,length(which(!(id1%in%id2))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ if(length(which(id2%in%id1))!=length(id2)){
+ if(length(which(!(id2%in%id1)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the ",Mtype," metadata file\n",
+ "    do not appear in the data matrix:\n")
+ identif <- id2[which(!(id2%in%id1))][1:min(3,length(which(!(id2%in%id1))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ err.stock <- c(err.stock,"\nPlease check your data.\n")
+ }
+
+ return(err.stock)
+
+}
+
+# To check if the 3 standard tables match regarding identifiers
+match3 <- function(dataMatrix, sampleMetadata, variableMetadata){
+
+ # dataMatrix = data.frame containing dataMatrix
+ # sampleMetadata = data.frame containing sampleMetadata
+ # variableMetadata = data.frame containing variableMetadata
+
+ err.stock <- NULL # error vector
+
+ id1 <- colnames(dataMatrix)[-1]
+ id2 <- sampleMetadata[,1]
+ id3 <- dataMatrix[,1]
+ id4 <- variableMetadata[,1]
+
+ if( length(which(id1%in%id2))!=length(id1) || length(which(id2%in%id1))!=length(id2) ){
+ err.stock <- c(err.stock,"\nData matrix and sample metadata do not match regarding sample identifiers.")
+ if(length(which(id1%in%id2))!=length(id1)){
+ if(length(which(!(id1%in%id2)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the data matrix\n",
+ "    do not appear in the sample metadata file:\n")
+ identif <- id1[which(!(id1%in%id2))][1:min(3,length(which(!(id1%in%id2))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ if(length(which(id2%in%id1))!=length(id2)){
+ if(length(which(!(id2%in%id1)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the sample metadata file\n",
+ "    do not appear in the data matrix:\n")
+ identif <- id2[which(!(id2%in%id1))][1:min(3,length(which(!(id2%in%id1))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ }
+
+ if( length(which(id3%in%id4))!=length(id3) || length(which(id4%in%id3))!=length(id4) ){
+ err.stock <- c(err.stock,"\nData matrix and variable metadata do not match regarding variable identifiers.")
+ if(length(which(id3%in%id4))!=length(id3)){
+ if(length(which(!(id3%in%id4)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the data matrix\n",
+ "    do not appear in the variable metadata file:\n")
+ identif <- id3[which(!(id3%in%id4))][1:min(3,length(which(!(id3%in%id4))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ if(length(which(id4%in%id3))!=length(id4)){
+ if(length(which(!(id4%in%id3)))<4){ err.stock <- c(err.stock,"\n    The ")
+ }else{ err.stock <- c(err.stock,"\n    For example, the ") }
+ err.stock <- c(err.stock,"following identifiers found in the variable metadata file\n",
+ "    do not appear in the data matrix:\n")
+ identif <- id4[which(!(id4%in%id3))][1:min(3,length(which(!(id4%in%id3))))]
+ err.stock <- c(err.stock,"    ",paste(identif,collapse="\n    "),"\n")
+ }
+ }
+
+ if(length(err.stock)!=0){ err.stock <- c(err.stock,"\nPlease check your data.\n") }
+
+ return(err.stock)
+
+}
\ No newline at end of file
b
diff -r 000000000000 -r 71d83d8920bf easyrlibrary-lib/miniTools.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/easyrlibrary-lib/miniTools.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,133 @@
+#####################################################
+# Mini tools for Galaxy scripting
+# Coded by: M.Petera, 
+# - -
+# R functions to use in R scripts and wrappers
+# to make things easier (lightening code, reducing verbose...)
+# - -
+# V0: script structure + first functions
+# V1: addition of functions to handle special characters in identifiers
+#####################################################
+
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+# Function to call packages without printing all the verbose
+# (only getting the essentials, like warning messages for example)
+
+shyLib <- function(...){
+ for(i in 1:length(list(...))){
+ suppressPackageStartupMessages(library(list(...)[[i]],character.only=TRUE))
+ }
+}
+
+#example: shyLib("xcms","pcaMethods")
+
+
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+# Fonction pour sourcer les scripts R requis
+# /!\ ATTENTION : actuellement la fonction n'est pas chargee au lancement du script,
+# il faut donc la copier-coller dans le wrapper R pour pouvoir l'utiliser. 
+
+if(FALSE){
+source_local <- function(...){
+ argv <- commandArgs(trailingOnly = FALSE)
+ base_dir <- dirname(substring(argv[grep("--file=", argv)], 8))
+ for(i in 1:length(list(...))){
+ source(paste(base_dir, list(...)[[i]], sep="/"))
+ }
+}
+}
+
+#example: source_local("filter_script.R","RcheckLibrary.R")
+
+
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
+# Functions to stock identifiers before applying make.names() and
+# to reinject it into final matrices
+# Note: it reproduces the original order of datasets' identifiers
+# - - -
+# stockID: stocks original identifiers and original order
+# -> needs checked data regarding table match
+# reproduceID: reinjects original identifiers and original order into final tables
+# -> function to be used at the very end, when exporting tables
+
+stockID <- function(dataMatrix, Metadata, Mtype){
+  # dataMatrix = data.frame containing dataMatrix
+  # Metadata = data.frame containing sampleMetadata or variableMetadata
+  # Mtype = "sample" or "variable" depending on Metadata content
+  cname <- colnames(dataMatrix)[1]
+      # dataMatrix temporary-stock + transfo - - - -
+  if(Mtype=="sample"){
+    id.ori <- colnames(dataMatrix)[-1] 
+    colnames(dataMatrix) <- make.names(colnames(dataMatrix)) 
+  }
+  if(Mtype=="variable"){
+    id.ori <- dataMatrix[,1] 
+    dataMatrix[,1] <- make.names(dataMatrix[,1]) 
+  }
+      # global stock - - - - - - - - - - - - - - - -
+  id.new <- data.frame(order.ori=c(1:length(Metadata[,1])),Metadata[,1],
+    id.new=make.names(Metadata[,1]),id.ori,
+    id.new.DM=make.names(id.ori),stringsAsFactors=FALSE)
+  colnames(id.new)[c(2,4)] <- c(colnames(Metadata)[1],cname)
+      # Metadata transfo + returning data - - - - - 
+  Metadata[,1] <- make.names(Metadata[,1]) 
+  return(list(id.match=id.new, dataMatrix=dataMatrix, Metadata=Metadata))
+}
+#example: A<-stockID(myDM,mysM,"sample") ; myDM<-A$dataMatrix ; mysM<-A$Metadata ; A<-A$id.match
+
+reproduceID <- function(dataMatrix, Metadata, Mtype, id.match){
+  # dataMatrix = data.frame containing dataMatrix
+  # Metadata = data.frame containing sampleMetadata or variableMetadata
+  # Mtype = "sample" or "variable" depending on Metadata content
+  # id.match = 'id.match' element produced by stockID
+      #Metadada - - - - - - - - - - - - - - 
+  temp.table <- id.match[,c(1,2,3)]
+  ## Removing deleted rows
+  for(i in 1:(dim(id.match)[1])){
+ if(!(temp.table[i,3]%in%Metadata[,1])){temp.table[i,1] <- 0}
+  }
+  if(length(which(temp.table[,1]==0))!=0){
+ temp.table <- temp.table[-c(which(temp.table[,1]==0)),]
+  }
+  ## Restoring original identifiers and order
+  temp.table <- merge(x=temp.table,y=Metadata,by.x=3,by.y=1)
+  temp.table <- temp.table[order(temp.table$order.ori),]
+  Metadata <- temp.table[,-c(1,2)]
+  rownames(Metadata) <- NULL
+      #dataMatrix - - - - - - - - - - - - - 
+  rownames(dataMatrix)<-dataMatrix[,1]
+  if(Mtype=="sample"){
+    dataMatrix <- t(dataMatrix[,-1])
+  }
+  temp.table <- id.match[,c(1,4,5)]
+  ## Removing deleted rows
+  for(i in 1:(dim(id.match)[1])){
+ if(!(temp.table[i,3]%in%rownames(dataMatrix))){temp.table[i,1] <- 0}
+  }
+  if(length(which(temp.table[,1]==0))!=0){
+ temp.table <- temp.table[-c(which(temp.table[,1]==0)),]
+  }
+  ## Restoring original identifiers and order
+  temp.table <- merge(x=temp.table,y=dataMatrix,by.x=3,by.y=0)
+  temp.table <- temp.table[order(temp.table$order.ori),]
+  if(Mtype=="variable"){
+ dataMatrix <- temp.table[,-c(1,2,4)]
+ colnames(dataMatrix)[1] <- colnames(id.match)[4]
+  } else {
+ rownames(temp.table) <- temp.table[,3]
+ temp.table <- t(temp.table[,-c(1,2,3)])
+ dataMatrix <- data.frame(rownames(temp.table),temp.table)
+ colnames(dataMatrix)[1] <- colnames(id.match)[4]
+  }
+  rownames(dataMatrix) <- NULL
+      # return datasets - - - - - - - - - - - 
+  return(list(dataMatrix=dataMatrix, Metadata=Metadata))
+}
+#example: B<-reproduceID(myDM,mysM,"sample",A) ; myDM<-B$dataMatrix ; mysM<-B$Metadata
+
+
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
b
diff -r 000000000000 -r 71d83d8920bf runit/batchcorrection_runtests.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/batchcorrection_runtests.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,131 @@
+#!/usr/bin/env Rscript
+
+## Package
+##--------
+
+library(RUnit)
+
+## Constants
+##----------
+
+testOutDirC <- "output"
+argVc <- commandArgs(trailingOnly = FALSE)
+scriptPathC <- sub("--file=", "", argVc[grep("--file=", argVc)])
+
+
+## Functions
+##-----------
+
+## Reading tables (matrix or data frame)
+readTableF <- function(fileC, typeC = c("matrix", "dataframe")[1]) {
+
+     file.exists(fileC) || stop(paste0("No output file \"", fileC ,"\"."))
+
+        switch(typeC,
+               matrix = return(t(as.matrix(read.table(file = fileC,
+                   header = TRUE,
+                   row.names = 1,
+                   sep = "\t",
+                   stringsAsFactors = FALSE)))),
+               dataframe = return(read.table(file = fileC,
+                   header = TRUE,
+                   row.names = 1,
+                   sep = "\t",
+                   stringsAsFactors = FALSE)))
+
+}
+
+## Call wrapper
+wrapperCallF <- function(paramLs, allLoessL) {
+
+    ## Set program path
+    wrapperPathC <- file.path(dirname(scriptPathC), "..",
+                              ifelse(allLoessL,
+                                     "batch_correction_all_loess_wrapper.R",
+                                     "batch_correction_wrapper.R"))
+
+    ## Set arguments
+    argLs <- NULL
+    for (parC in names(paramLs))
+        argLs <- c(argLs, parC, paramLs[[parC]])
+
+    ## Call
+    wrapperCallC <- paste(c(wrapperPathC, argLs), collapse = " ")
+
+    if(.Platform$OS.type == "windows")
+        wrapperCallC <- paste("Rscript", wrapperCallC)
+
+
+    print(wrapperCallC)
+    
+
+    wrapperCodeN <- system(wrapperCallC)
+
+    if (wrapperCodeN != 0)
+        stop(paste0("Error when running 'batch_correction_",
+                    ifelse(allLoessL, "all_loess_", ""),
+                    "wrapper.R'"))
+
+    ## Get output
+    outLs <- list()
+    if ("dataMatrix_out" %in% names(paramLs))
+        outLs[["datMN"]] <- readTableF(paramLs[["dataMatrix_out"]], "matrix")
+    if ("sampleMetadata_out" %in% names(paramLs))
+        outLs[["samDF"]] <- readTableF(paramLs[["sampleMetadata_out"]], "dataframe")
+    if ("variableMetadata_out" %in% names(paramLs))
+        outLs[["varDF"]] <- readTableF(paramLs[["variableMetadata_out"]], "dataframe")
+    if("information" %in% names(paramLs))
+        outLs[["infVc"]] <- readLines(paramLs[["information"]])
+
+    if("out_preNormSummary" %in% names(paramLs))
+        outLs[["sumDF"]] <- readTableF(paramLs[["out_preNormSummary"]], "dataframe")
+
+    return(outLs)
+    
+}
+
+## Setting default parameters
+defaultArgF <- function(testInDirC, determineL) {
+
+    defaultArgLs <- list()
+
+    if(file.exists(file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv")))
+        defaultArgLs[["dataMatrix"]] <- file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv")
+    if(file.exists(file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv")))
+        defaultArgLs[["sampleMetadata"]] <- file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv")
+
+    if(!determineL)
+        if(file.exists(file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv")))
+            defaultArgLs[["variableMetadata"]] <- file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv")
+
+    if(determineL) { ## determinebc
+
+        defaultArgLs[["out_graph_pdf"]] <- file.path(dirname(scriptPathC), testOutDirC, "out_graph.pdf")
+        defaultArgLs[["out_preNormSummary"]] <- file.path(dirname(scriptPathC), testOutDirC, "preNormSummary.txt")
+
+    } else { ## batchcorrection
+        
+        defaultArgLs[["dataMatrix_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "dataMatrix.tsv")
+        defaultArgLs[["variableMetadata_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "variableMetadata.tsv")
+        defaultArgLs[["variable_for_simca"]] <- file.path(dirname(scriptPathC), testOutDirC, "variable_for_simca.tsv")
+        defaultArgLs[["graph_output"]] <- file.path(dirname(scriptPathC), testOutDirC, "graph_output.pdf")
+        defaultArgLs[["rdata_output"]] <- file.path(dirname(scriptPathC), testOutDirC, "rdata_output.rdata")
+        
+       }
+
+    defaultArgLs
+
+}
+
+## Main
+##-----
+
+## Create output folder
+file.exists(testOutDirC) || dir.create(testOutDirC)
+
+## Run tests
+test.suite <- defineTestSuite('tests', dirname(scriptPathC), testFileRegexp = paste0('^.*_tests\\.R$'), testFuncRegexp = '^.*$')
+isValidTestSuite(test.suite)
+test.results <- runTestSuite(test.suite)
+print(test.results)
+
b
diff -r 000000000000 -r 71d83d8920bf runit/batchcorrection_tests.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/batchcorrection_tests.R Tue Aug 09 06:47:41 2016 -0400
[
@@ -0,0 +1,109 @@
+test_input_allLoessPool <- function() {
+
+    testDirC <- "input"
+    determineL <- FALSE
+    allLoessL <- TRUE
+    argLs <- list(method = "all_loess_pool",
+                  span = "1")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+    
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)  
+
+    checkEqualsNumeric(outLs[['datMN']][1, 1], 25803076, tolerance = 1e-3)
+
+}
+
+test_input_allLoessSample <- function() {
+
+    testDirC <- "input"
+    determineL <- FALSE
+    allLoessL <- TRUE
+    argLs <- list(method = "all_loess_sample",
+                  span = "1")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+    
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)
+    
+    checkEqualsNumeric(outLs[['datMN']][1, 1], 23402048, tolerance = 1e-3)
+
+}
+
+test_example1_allLoessSample <- function() {
+
+    testDirC <- "example1"
+    determineL <- FALSE
+    allLoessL <- TRUE
+    argLs <- list(method = "all_loess_sample",
+                  span = "1")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+    
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)    
+
+    checkEqualsNumeric(outLs[['datMN']][1, 1], 21732604, tolerance = 1e-3)
+
+}
+
+test_example1_allLoessSampleSpan06 <- function() {
+
+    testDirC <- "example1"
+    determineL <- FALSE
+    allLoessL <- TRUE
+    argLs <- list(method = "all_loess_sample",
+                  span = "0.6")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+    
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)
+
+    checkEqualsNumeric(outLs[['datMN']][1, 1], 134619170, tolerance = 1e-3)
+
+}
+
+test_sacurine_allLoessPool <- function() {
+
+    testDirC <- "sacurine"
+    determineL <- FALSE
+    allLoessL <- TRUE
+    argLs <- list(method = "all_loess_pool",
+                  span = "1")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+    
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)

+    checkEqualsNumeric(outLs[['datMN']]["HU_neg_017", "M53T345"], 7902.366, tolerance = 1e-3)
+
+
+}
+
+test_sacurine_determinebc <- function() {
+
+    testDirC <- "sacurine"
+    determineL <- TRUE
+    allLoessL <- FALSE
+    argLs <- list(ref_factor = "batch",
+                  span = "none")
+
+    if(!allLoessL)
+        argLs[["analyse"]] <- ifelse(determineL, "determine_bc", "batch_correction")
+
+    argLs <- c(defaultArgF(testDirC, determineL = determineL), argLs)
+    outLs <- wrapperCallF(argLs, allLoessL = allLoessL)
+
+    checkEqualsNumeric(outLs[['sumDF']]["M59T62", "batch.2.linear"], 3, tolerance = 1e-3)
+
+
+}
b
diff -r 000000000000 -r 71d83d8920bf runit/example1/dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/example1/dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,2823 @@\n+dataMatrix\tBl1\tBl2\tBl3\tSa1\tSa2\tSa3\tSa4\tSa5\tSa6\tSa7\tSa8\tSa9\tSa10\tSa11\tSa12\tSa13\tSa14\tSa15\tSa16\tSa17\tSa18\tSa19\tSa20\tSa21\tSa22\tSa23\tSa24\tSa25\tSa26\tSa27\n+M81.524T70\t17245057.15\t17036926.76\t14186746.11\t4164396.264\t5825050.37\t457731.4386\t13431506.24\t4743128.922\t4431069.682\t11904377.48\t618138.4105\t8634502.192\t5199903.713\t2999525.25\t2871167.761\t3201384.67\t6855006.036\t2065984.636\t12354338.68\t2632801.531\t6008013.246\t1538072.426\t1376310.444\t4616186.732\t12160011.06\t7363508.262\t7605224.47\t2842257.47\t3636874.797\t7106432.313\n+M81.523T36\t55675386.24\t46887468.27\t19824326.82\t2206896.237\t2440868.374\t2009364.908\t2407403.606\t1978183.429\t2143366.471\t2656133.68\t1426335.105\t2135439.5\t720638.4583\t898892.7064\t920198.319\t523723.8217\t1093497.67\t724489.0167\t972712.5631\t438772.6775\t887895.3126\t2677695.373\t2588015.107\t356215.5043\t1049454.733\t3787646.426\t2919221.103\t5359484.094\t478359.5274\t1140528.449\n+M81.524T124\t3164592.199\t5989888.692\t1518120.946\t1286357.752\t3260040.481\t719417.0386\t7054955.83\t6343114.495\t4237024.074\t4397965.168\t534257.2816\t1424000.696\t4174800.757\t2253885.166\t304750.9031\t3804141.652\t6366198.521\t1102220.868\t12383046.03\t2881755.9\t4030125.647\t1034171.556\t403876.6439\t4332910.019\t5373346.688\t2345864.555\t6061830.965\t591704.7268\t1439355.184\t5460301.309\n+M81.605T62\t738234.5386\t787394.0411\t609336.1721\t165239.2505\t250720.1499\t62050.79635\t572778.7761\t214128.5387\t165783.3638\t520178.7999\t19210.28881\t197410.8184\t215250.8345\t173276.4954\t140765.734\t124586.9754\t460116.931\t100216.0769\t599215.8137\t119548.1579\t249620.4321\t56410.08846\t45422.8306\t212608.4206\t504629.5165\t372211.6104\t664010.2538\t179442.8094\t169076.104\t420632.4458\n+M81.633T44\t500457.0519\t301708.945\t234100.7174\t392423.4081\t481733.7903\t112110.4766\t76348.84276\t400525.6374\t386544.2661\t623711.8934\t182942.4875\t364640.4889\t303372.5045\t234440.2839\t181890.7412\t173583.9663\t481476.5972\t145854.1448\t509794.6715\t168818.0723\t368060.0572\t96908.72298\t71999.19233\t268318.1997\t556452.5016\t557010.2479\t586287.2181\t208337.9949\t228941.2122\t443363.7884\n+M82.025T59\t1207813.881\t1142397.168\t1150519.242\t348694.7322\t625629.7426\t98655.59187\t470104.6477\t926554.1909\t236099.609\t891870.3441\t49253.16017\t332923.0177\t475239.2787\t393623.9927\t325048.1156\t1917117.05\t799454.1828\t278074.6859\t2679898.544\t268837.486\t718982.0999\t113651.0052\t90680.90425\t381971.6629\t836732.4873\t737367.7711\t774259.093\t359011.6606\t129923.0342\t3761203.309\n+M82.523T47\t72408.01962\t479836.9534\t399391.4331\t131800.2801\t153337.9494\t20580.16273\t171750.3476\t140196.0952\t140293.5506\t119631.6183\t64527.21102\t126119.5217\t121571.0167\t95508.53517\t70590.42251\t87952.71042\t134846.3362\t63333.72236\t204393.6917\t77661.09783\t141873.7917\t49905.94484\t39313.34747\t126289.9087\t97737.51026\t189376.1418\t205615.8223\t96610.68423\t104612.0213\t172473.8835\n+M83.52T53\t973615.9034\t293189.6933\t181734.3685\t153114.1318\t215143.117\t36152.32465\t197876.3098\t210523.4099\t184159.8796\t221321.5841\t92007.22097\t154646.96\t161633.7567\t180997.6472\t101401.6563\t304634.2243\t241313.5529\t94047.32174\t260213.4656\t101528.5794\t202045.5528\t63840.95954\t49230.77996\t110758.2558\t257909.9551\t198190.6667\t233882.9991\t120885.2951\t532154.7778\t230603.6055\n+M84.047T59\t14439.61977\t16349.71331\t12582.91893\t124405.101\t70829.4163\t194558.7348\t153885.888\t149786.1332\t123124.1582\t70209.79629\t172584.1048\t108573.5919\t74232.25189\t85538.82003\t87989.127\t121360.6446\t52372.97402\t126514.5246\t43524.95031\t161680.3702\t76494.91467\t245580.0423\t217140.5488\t177947.8424\t54608.71322\t69495.0811\t50715.78024\t68358.70175\t145309.8529\t51613.8655\n+M85.531T75\t68339.74372\t70359.6043\t50776.85175\t5216.238182\t7718.406996\t0\t10666.9767\t6817.35759\t5661.247397\t8178.096986\t2411.517318\t4292.332573\t6230.916237\t4266.916511\t1301.799001\t4303.945578\t10847.06789\t2671.889116\t9864.150914\t4480.246932\t7301.859428\t3049.951399\t2477.811606\t7972.836037\t11587.30302\t11398.68536\t11152.1808\t4234.035718\t5256.501912\t8359.228364\n+M86.099T81\t672.0496664\t418.1018938\t2285.715037\t232994.4033\t230432.1222\t294443.7699\t177819.3497\t198136.2036\t205416.647\t227544.7572\t361191.7857\t190863.4887\t8'..b'\t104124.3352\t110180.7635\t131856.3576\t197216.7148\t1686.292924\t772.0403043\t1861.076229\t1257.780046\t1243.445488\t13062.4639\t16991.7466\t1103413.795\t1021087.948\n+M1561.961T1013\t633.1570555\t2569.558933\t0\t46904.07334\t32227.58813\t39650.39266\t35879.025\t33321.38483\t22682.90973\t22359.67453\t31523.25262\t26337.92407\t88953.07973\t101410.655\t95971.16576\t128297.8485\t112622.8666\t52636.40751\t66661.10898\t100265.0642\t81895.01728\t197755.0574\t318871.2366\t208994.4331\t205786.4402\t578.7781871\t26701.87497\t181122.1891\t179407.42\t110364.8096\n+M1562.15T1095\t4560.666375\t284933.218\t674005.4601\t587802.2491\t503117.9572\t599562.1553\t534042.6747\t570469.368\t136265.6303\t174855.373\t183788.9724\t103218.883\t456882.3154\t535874.4261\t1246833.921\t1361629.931\t429123.0798\t256823.7498\t271321.3144\t721798.1162\t470935.1596\t1680.517028\t1162.079764\t2979.790264\t1640.917169\t6372.178946\t19686.30244\t16138.07962\t397509.0085\t517275.656\n+M1563.154T1095\t2258.599804\t196204.5947\t574665.3504\t480769.7116\t617063.2603\t681112.0227\t497382.5375\t553905.573\t98368.86269\t152205.17\t133572.3129\t88638.36162\t199774.1477\t301669.5115\t1065103.674\t1212810.269\t355606.8419\t238837.267\t371137.8313\t893592.8218\t415040.0508\t554.7922872\t1210.508705\t348.5429179\t385.6259961\t2380.821626\t3771.404558\t608.9809514\t0\t0\n+M1564.167T1093\t3352.179311\t226135.2696\t907941.7963\t1291153.219\t1006860.692\t1608924.385\t1367862.79\t1169349.072\t1145354.544\t1367693.283\t1484507.917\t385461.5869\t2392249.99\t4833723.488\t3578512.368\t1194905.871\t915456.389\t1883180.389\t2287377.452\t1674389.756\t817096.7645\t2471.23456\t2179.197004\t911.9372589\t553.5280148\t1672.357481\t4797.436897\t5496.362783\t0\t0\n+M1565.171T1092\t2391.673074\t104981.121\t797475.6427\t937682.6956\t862274.8411\t1301248.757\t1061205.211\t912752.2862\t1070088.728\t1044576.462\t1110620.5\t324761.4966\t2283480.821\t3589252.082\t3201567.997\t778814.7363\t740452.8691\t1595786.684\t2006489.738\t1563947.213\t824828.0277\t885.3897125\t1279.679269\t1473.35515\t445.3226434\t1586.542068\t1825.562713\t7077.378934\t0\t420.3640782\n+M1566.166T1089\t1363.869792\t37949.49292\t121494.8579\t1012112.449\t1042910.357\t1320813.985\t1069822.688\t772387.1841\t933433.6508\t1071964.959\t1474904.128\t527125.3161\t694519.144\t1383763.837\t1231791.839\t261387.9416\t0\t1456918.942\t1988638.529\t1872777.562\t189952.3118\t455.7522126\t387.074135\t595.3212328\t389.1774095\t1539.164443\t892.5944244\t2071.736368\t1025.623468\t0\n+M1566.181T1092\t1644.853052\t47612.72709\t881627.8824\t1660293.164\t1557986.786\t2029968.616\t1551856.115\t1149445.857\t1632329.47\t1819380.344\t2138257.479\t1011433.509\t1035042.849\t2097926.961\t1730456.955\t326806.1017\t792208.683\t2988647.625\t3860065.901\t2771680.844\t1073803.385\t871.1694469\t1612.912082\t1524.276341\t1468.351702\t2667.379\t1497.898289\t3152.713457\t1662.325644\t593.1816321\n+M1567.185T1092\t867.712003\t15893.72448\t670889.5905\t1256005.618\t1390471.388\t1445467.483\t1330178.011\t814957.88\t1182354.349\t1270646.39\t1899711.902\t728972.3588\t336436.6849\t688988.8803\t612851.7544\t109131.0185\t550843.5803\t2151430.323\t3163240.349\t1977569.223\t914571.4609\t2313.173362\t2484.359426\t1447.526562\t1248.220126\t2043.012904\t1599.002845\t3163.402558\t786.2454912\t1095.262451\n+M1568.195T1091\t1571.274388\t5175.897488\t554511.3109\t1566070.939\t870031.8181\t1499354.726\t1161073.514\t1342908.345\t1638584.671\t1608916.043\t1896714.427\t1269422.222\t116906.3314\t173843.9803\t143755.2308\t25861.00509\t536846.3486\t2459254.323\t3228311.051\t2564296.754\t891969.147\t2768.042175\t2030.792029\t2027.823091\t1557.920625\t1641.914768\t3459.331919\t1289.75614\t748.6860842\t836.9299264\n+M1569.199T1091\t2545.427034\t1536.402468\t343455.298\t1130403.884\t670605.6566\t1046969.401\t875096.325\t1033889.485\t1337255.851\t1214834.452\t1566912.913\t1080530.164\t25737.23685\t47879.49103\t12298.58152\t3860.265966\t453733.2203\t770506.4799\t1255858.369\t1732641.988\t860463.2801\t2478.635528\t2562.619965\t1922.086329\t1881.404783\t2508.362366\t3003.76721\t1796.128126\t0\t1456.224017\n+M1595.494T496\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t27005.61027\t32797.99771\t40869.13018\t50464.612\t39706.54314\t38212.08514\t31376.23894\t0\t29441.76632\t0\t50350.55219\t79536.14115\t49796.50463\t0\t0\t44618.85694\t65471.39112\t37076.84241\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/example1/sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/example1/sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,31 @@
+sampleMetadata sampleType injectionOrder batch
+Bl1 blank 2 B1
+Bl2 blank 12 B1
+Bl3 blank 22 B1
+Sa1 sample 23 B1
+Sa2 sample 24 B1
+Sa3 sample 25 B1
+Sa4 sample 26 B1
+Sa5 sample 27 B1
+Sa6 sample 28 B1
+Sa7 sample 29 B1
+Sa8 sample 30 B1
+Sa9 sample 31 B1
+Sa10 sample 13 B1
+Sa11 sample 14 B1
+Sa12 sample 15 B1
+Sa13 sample 16 B1
+Sa14 sample 17 B1
+Sa15 sample 18 B1
+Sa16 sample 19 B1
+Sa17 sample 20 B1
+Sa18 sample 21 B1
+Sa19 sample 3 B1
+Sa20 sample 4 B1
+Sa21 sample 5 B1
+Sa22 sample 6 B1
+Sa23 sample 7 B1
+Sa24 sample 8 B1
+Sa25 sample 9 B1
+Sa26 sample 10 B1
+Sa27 sample 11 B1
b
diff -r 000000000000 -r 71d83d8920bf runit/example1/variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/example1/variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,2823 @@\n+variableMetadata\tmz\trt\n+M81.524T70\t81.52351013\t70.29784451\n+M81.523T36\t81.52349512\t35.95647988\n+M81.524T124\t81.52354019\t123.5096532\n+M81.605T62\t81.60548036\t61.78835891\n+M81.633T44\t81.63323734\t43.70694913\n+M82.025T59\t82.02477981\t59.49840694\n+M82.523T47\t82.52268073\t46.86225329\n+M83.52T53\t83.51993952\t52.54517075\n+M84.047T59\t84.0469907\t58.95691622\n+M85.531T75\t85.5305276\t75.34771535\n+M86.099T81\t86.099216\t80.98378266\n+M86.521T43\t86.52069023\t42.83441056\n+M87.047T339\t87.04674186\t339.2751257\n+M87.047T652\t87.0467279\t652.4946267\n+M87.058T40\t87.05772009\t39.60905547\n+M89.063T255\t89.06263568\t255.0942085\n+M89.063T170\t89.06266366\t170.2453013\n+M89.148T158\t89.14807717\t158.0965509\n+M89.51T1385\t89.50966847\t1385.043145\n+M90.011T1385\t90.0107254\t1384.981283\n+M90.058T40\t90.05769453\t40.25205337\n+M90.066T165\t90.06587156\t165.1384276\n+M90.066T264\t90.06580956\t263.9491842\n+M90.066T225\t90.06586188\t225.1020035\n+M90.506T73\t90.50595932\t72.71502618\n+M90.51T1381\t90.50992241\t1380.936506\n+M91.021T155\t91.02084886\t154.5091413\n+M91.021T59\t91.02094009\t59.03912572\n+M91.508T1380\t91.50765075\t1379.683617\n+M91.522T59\t91.52176381\t59.14978541\n+M92.539T116\t92.53893896\t116.3328801\n+M95.088T155\t95.08779229\t154.9520966\n+M96.511T54\t96.51079935\t53.61540381\n+M97.039T75\t97.03920288\t75.34771535\n+M97.994T116\t97.99377332\t116.4964514\n+M98.978T69\t98.97838029\t69.27356585\n+M98.978T124\t98.97830166\t123.9684741\n+M98.978T41\t98.9784227\t40.66576003\n+M99.511T73\t99.51060047\t72.81032578\n+M99.511T48\t99.51077268\t48.06842246\n+M100.017T50\t100.0173119\t50.21928524\n+M101.007T50\t101.0066087\t50.36815634\n+M101.011T35\t101.0111687\t35.17955922\n+M101.026T73\t101.0258903\t72.71502618\n+M101.074T844\t101.073735\t843.6337392\n+M102.037T48\t102.0372909\t48.17692568\n+M104.11T1019\t104.1101124\t1018.623341\n+M104.11T1047\t104.1101062\t1047.248681\n+M104.11T992\t104.1100533\t992.4576784\n+M104.11T40\t104.1098087\t39.54115124\n+M104.996T1033\t104.9956185\t1033.189174\n+M104.996T1066\t104.9955993\t1066.220114\n+M104.996T980\t104.9955539\t979.7903177\n+M104.995T834\t104.9954405\t834.1890566\n+M104.995T532\t104.9952924\t531.833618\n+M104.995T793\t104.9954129\t793.275991\n+M104.995T871\t104.9954447\t871.4333228\n+M104.995T1374\t104.9951312\t1374.460659\n+M104.995T927\t104.9954966\t927.2704765\n+M104.995T52\t104.9954605\t52.33124286\n+M104.995T722\t104.9954355\t722.0267665\n+M104.995T749\t104.9954288\t749.0278751\n+M104.995T477\t104.9952713\t476.7831691\n+M104.995T448\t104.9952747\t448.4858402\n+M104.995T660\t104.995319\t660.2613431\n+M105.018T59\t105.0183269\t59.05224576\n+M105.037T166\t105.0367685\t165.6840889\n+M105.036T259\t105.03601\t258.6962631\n+M105.074T843\t105.0742434\t843.4304162\n+M105.088T1026\t105.0883394\t1026.412202\n+M105.088T870\t105.0880694\t869.8539313\n+M105.088T1374\t105.0881156\t1374.318544\n+M105.12T1374\t105.1198884\t1374.318544\n+M105.538T157\t105.538078\t156.5811664\n+M105.999T1375\t105.9985678\t1374.51568\n+M106.045T75\t106.0445768\t75.34771535\n+M106.076T844\t106.0758364\t843.7135283\n+M107.034T43\t107.0340134\t43.09426429\n+M107.508T47\t107.5082594\t47.04312666\n+M107.526T77\t107.5262147\t76.96131283\n+M108.036T166\t108.0364937\t165.9421683\n+M108.534T46\t108.5337888\t45.555366\n+M109.104T336\t109.1039809\t335.9167868\n+M109.104T386\t109.1038218\t385.8042147\n+M109.104T584\t109.1040645\t584.4708663\n+M109.104T732\t109.1040458\t732.2508118\n+M110.016T41\t110.0157307\t41.44646298\n+M111.019T73\t111.0189768\t72.78969413\n+M111.024T42\t111.0237361\t41.78374409\n+M111.023T1381\t111.0233522\t1381.416454\n+M111.12T428\t111.1196051\t428.0927364\n+M111.12T324\t111.1197321\t323.699976\n+M111.12T248\t111.1197358\t248.0681893\n+M111.119T277\t111.1191813\t277.0007489\n+M111.534T59\t111.5344755\t59.06965408\n+M112.032T43\t112.0317192\t42.82699166\n+M112.053T51\t112.0534075\t51.4535156\n+M112.115T33\t112.1149146\t33.44257492\n+M113.038T66\t113.0376996\t65.8492613\n+M113.052T116\t113.0524353\t116.3328801\n+M113.062T155\t113.0616293\t154.9524321\n+M113.099T160\t113.0990245\t159.8792998\n+M114.041T66\t114.0406577\t65.91298192\n+M114.094T162\t114.0943511\t161.7900827\n+M114.516T44\t114.5162023\t44.24411309\n+M114.534T166\t114.5343777\t165.8406062\n+M115.042T148\t115.0417762\t147.'..b'89T1072\t905.5885888\t1071.832384\n+M919.023T1373\t919.0233913\t1373.292375\n+M919.561T1072\t919.5614265\t1071.942104\n+M920.558T1072\t920.5583187\t1071.961275\n+M925.029T1372\t925.0289925\t1371.922891\n+M927.566T990\t927.5663392\t989.9293541\n+M934.994T1374\t934.9938008\t1374.033605\n+M936.996T1373\t936.9963234\t1373.320126\n+M941.559T1073\t941.5589903\t1072.6399\n+M942.652T1070\t942.6516364\t1070.470929\n+M943.654T1070\t943.6543318\t1070.470929\n+M947.614T1070\t947.6135116\t1070.480991\n+M948.605T1071\t948.6049248\t1070.598943\n+M949.549T990\t949.5487602\t989.9293541\n+M949.613T1070\t949.6130087\t1070.470929\n+M951.568T981\t951.5679268\t980.561028\n+M955.602T1011\t955.6017746\t1011.367619\n+M956.605T1011\t956.604892\t1011.316517\n+M957.607T1011\t957.6068644\t1011.14355\n+M959.633T1044\t959.6327396\t1044.052694\n+M960.636T1048\t960.6355667\t1047.861716\n+M961.275T786\t961.2750697\t786.4107324\n+M963.583T1071\t963.583426\t1070.598943\n+M977.584T1011\t977.5835139\t1011.04195\n+M978.586T1011\t978.5862229\t1011.03924\n+M981.615T1044\t981.6147331\t1044.043425\n+M986.682T1070\t986.6817271\t1069.800642\n+M987.682T1070\t987.6816591\t1069.787666\n+M991.641T1070\t991.6412197\t1069.907261\n+M992.644T1070\t992.6439286\t1069.907261\n+M997.648T1013\t997.6483183\t1012.683683\n+M998.651T1013\t998.6513403\t1012.763915\n+M1000.573T1020\t1000.572741\t1019.588239\n+M1001.679T1045\t1001.679281\t1045.407109\n+M1002.682T1045\t1002.682372\t1045.489397\n+M1018.993T1373\t1018.99256\t1373.008258\n+M1019.631T1013\t1019.631396\t1012.708924\n+M1019.702T966\t1019.701656\t965.8091686\n+M1019.714T937\t1019.71401\t937.2919317\n+M1020.634T1013\t1020.633957\t1012.67588\n+M1020.706T966\t1020.7057\t966.1494147\n+M1020.717T937\t1020.717416\t937.2919317\n+M1023.663T1045\t1023.662572\t1045.410526\n+M1024.664T1045\t1024.664322\t1045.363343\n+M1033.645T993\t1033.644632\t992.8094628\n+M1035.668T1069\t1035.667762\t1068.553907\n+M1039.698T1013\t1039.697597\t1013.355568\n+M1040.701T1013\t1040.700553\t1013.315758\n+M1041.62T1019\t1041.620146\t1019.272933\n+M1043.729T1046\t1043.729224\t1046.089508\n+M1044.732T1046\t1044.731718\t1046.093653\n+M1061.68T1014\t1061.680096\t1013.59542\n+M1062.683T1014\t1062.68279\t1013.701114\n+M1063.684T1014\t1063.683864\t1013.59542\n+M1065.712T1046\t1065.711697\t1046.157088\n+M1066.715T1046\t1066.715093\t1046.144592\n+M1067.717T1046\t1067.716885\t1046.096899\n+M1143.683T1014\t1143.682656\t1014.041402\n+M1144.686T1014\t1144.685696\t1014.036874\n+M1145.314T786\t1145.313554\t786.4601369\n+M1145.314T911\t1145.314008\t910.7546791\n+M1146.317T786\t1146.316899\t786.4527621\n+M1147.715T1047\t1147.715122\t1046.575722\n+M1199.797T1283\t1199.796724\t1282.649688\n+M1261.894T1045\t1261.893922\t1045.398699\n+M1262.899T1046\t1262.899375\t1045.750448\n+M1263.909T1046\t1263.908833\t1045.616394\n+M1281.863T1012\t1281.863054\t1011.638699\n+M1282.867T1019\t1282.866956\t1019.377748\n+M1283.878T1012\t1283.877844\t1012.38687\n+M1283.881T1045\t1283.880861\t1045.061187\n+M1284.884T1049\t1284.883575\t1049.246127\n+M1285.895T1046\t1285.894787\t1045.616394\n+M1286.898T1046\t1286.897787\t1046.16651\n+M1288.018T1288\t1288.018164\t1288.068625\n+M1289.021T1288\t1289.021422\t1288.106792\n+M1298.796T1045\t1298.795574\t1045.179037\n+M1301.926T1047\t1301.926473\t1046.55187\n+M1303.942T1046\t1303.941625\t1046.30942\n+M1304.945T1046\t1304.945457\t1046.266254\n+M1323.91T1014\t1323.909761\t1014.068777\n+M1476.862T1011\t1476.861712\t1010.794042\n+M1492.07T1087\t1492.070125\t1087.247673\n+M1512.134T1090\t1512.133957\t1090.42822\n+M1514.094T1077\t1514.094411\t1077.056862\n+M1538.149T1097\t1538.149298\t1096.772622\n+M1539.152T1095\t1539.152105\t1095.271461\n+M1540.164T1094\t1540.164159\t1093.945049\n+M1560.135T1094\t1560.134573\t1093.852655\n+M1560.959T1013\t1560.959487\t1013.355801\n+M1561.138T1094\t1561.137889\t1093.901862\n+M1561.961T1013\t1561.961341\t1013.356034\n+M1562.15T1095\t1562.149696\t1094.53803\n+M1563.154T1095\t1563.154155\t1094.559861\n+M1564.167T1093\t1564.166664\t1092.54829\n+M1565.171T1092\t1565.170892\t1092.458348\n+M1566.166T1089\t1566.166119\t1089.363431\n+M1566.181T1092\t1566.180671\t1092.102796\n+M1567.185T1092\t1567.185264\t1091.841887\n+M1568.195T1091\t1568.194562\t1091.458796\n+M1569.199T1091\t1569.19926\t1091.033591\n+M1595.494T496\t1595.494335\t495.7960805\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/input/dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/input/dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,114 @@\n+\tQC1_001\tHU_022\tHU_076\tHU_166\tHU_114\tHU_190\tHU_139\tHU_096\tHU_058\tHU_031\tQC1_002\tHU_039\tHU_087\tHU_143\tHU_162\tHU_102\tHU_188\tHU_095\tHU_062\tQC1_003\tHU_063\tHU_011\tHU_074\tHU_122\tHU_142\tHU_030\tHU_187\tHU_167\tHU_113\tQC1_004\tHU_081\tHU_014\tHU_206\tHU_119\tHU_033\tHU_067\tHU_140\tHU_164\tHU_193\tHU_112\tQC1_005\tHU_097\tHU_056\tHU_195\tHU_135\tHU_159\tHU_070\tHU_038\tHU_026\tQC1_006\tHU_098\tHU_115\tHU_137\tHU_019\tHU_073\tHU_168\tHU_191\tHU_040\tHU_046\tQC1_007\tHU_103\tHU_015\tHU_053\tHU_121\tHU_183\tHU_199\tHU_042\tHU_075\tQC1_008\tHU_203\tHU_024\tHU_082\tHU_169\tHU_129\tHU_057\tHU_035\tHU_194\tHU_145\tHU_104\tQC1_009\tHU_177\tHU_025\tHU_080\tHU_117\tHU_136\tHU_197\tHU_036\tHU_054\tHU_085\tQC1_010\tHU_160\tHU_092\tHU_023\tHU_124\tHU_147\tHU_205\tHU_084\tHU_120\tHU_198\tQC1_011\tHU_045\tHU_029\tHU_069\tHU_155\tHU_106\tHU_146\tHU_128\tQC1_012\n+met_001\t34046147\t29268048\t43765299\t44375419\t50601116\t4832613\t40454119\t8126\t19479962\t11235683\t33064844\t75260138\t36891690\t17466250\t74160059\t32122101\t5238560\t30163448\t10216046\t31450577\t17301601\t11549910\t12734389\t54057483\t3488082\t24301846\t2046492\t23004592\t9579482\t30075694\t7571631\t5257922\t60032654\t15725469\t42794552\t12202672\t10427301\t17332850\t2558158\t66102394\t29666404\t34174908\t36717068\t24271602\t36414651\t37145056\t20074559\t1865267\t5837544\t27608715\t38999155\t21669105\t14372963\t36030678\t24509866\t1906953\t15589584\t18219005\t25991397\t25068509\t21518123\t17608775\t6613249\t4124652\t30008362\t7839717\t16104411\t36946332\t23198059\t6151472\t23334545\t18392766\t27331396\t30774819\t18461787\t42246522\t20479189\t28817403\t27674313\t21703591\t17170407\t13809778\t11188751\t14478896\t8256694\t2771227\t47261207\t21462355\t24438964\t19424590\t379608\t17107855\t14512991\t31446516\t24437179\t18499953\t16786178\t1370420\t23336305\t18279598\t9162668\t29590881\t24605602\t13020657\t30919250\t16843645\t42298126\t15320951\n+met_002\t25505104\t13027974\t32763597\t34730095\t33371485\t1895066\t27495574\t59974\t13416309\t7415642\t23483152\t56144021\t29010226\t13269573\t61487618\t21195395\t3379894\t23790609\t4902552\t23924391\t10425200\t5914542\t10652705\t32854120\t835047\t13453508\t1274458\t22515044\t4126230\t22230978\t1786393\t3285537\t42606906\t22882567\t35048135\t9125465\t3968320\t10918248\t2767218\t40862097\t20287479\t21966458\t30969969\t17039420\t20122412\t28288256\t13281775\t1926605\t10855072\t19582666\t28740009\t14276670\t8544427\t28305898\t17921960\t1108003\t15397507\t12237865\t16183896\t17724624\t12764878\t19325552\t5978795\t2327941\t19932606\t3940696\t8131604\t27569944\t16730669\t4383418\t15424544\t10734487\t33257422\t21428567\t10875162\t33291902\t12687175\t13724743\t17750641\t15859004\t7722135\t10212514\t5089001\t10323782\t5299453\t529447\t39682428\t18277950\t17763884\t14171656\t997710\t14321798\t12297861\t15992338\t26897819\t12146700\t13597912\t256757\t14051155\t13070239\t6274244\t20895482\t17767113\t13249946\t20766019\t15026075\t25876196\t11032203\n+met_003\t5892635\t10312094\t7821772\t11024697\t11099724\t211356\t15572436\tNA\t5081385\t1287012\t7083236\t11463946\t10268577\t3466442\t16572946\t7596396\t515301\t5605033\t1166691\t6692258\t5258935\t1120354\t2768153\t17622620\t100138\t5657045\t155546\t3993478\t895432\t6630262\t1160086\t1398006\t20292345\t8345069\t9496638\t2281112\t1622765\t559527\t1169164\t24371841\t6010179\t5988080\t6808771\t4430121\t6994393\t13311751\t5318285\t783176\t353306\t5788416\t6714250\t6043357\t3119950\t4761136\t4840500\t316705\t2576605\t4562242\t7534703\t5546336\t3149195\t2525989\t2463379\t413059\t4398279\t855987\t2243033\t6719671\t4189278\t1103830\t3718953\t5441941\t4324385\t9454992\t5764607\t7703610\t7439304\t5651876\t5810300\t4075671\t5884945\t2071030\t822119\t2324725\t1072516\t75496\t15134893\t4124869\t5293399\t3395800\tNA\t2578641\t5179943\t5878251\t8146783\t4702730\t2191032\t34289\t4192685\t3234808\t2907002\t8592351\t5858938\t1541012\t10652067\t3600540\t11259836\t2932946\n+met_004\t22027726\t28338717\t19767257\t776755\t29237805\t551519\t43361691\t17669\t24178241\t2483160\t22961817\t36696085\t29568489\t12694039\t38098794\t28957490\t4548936\t21546827\t8439927\t23754498\t19390563\t2410036\t15610073\t48462830\t743472\t12281479\t957970\t22957209\t3382722\t23184843\t3152846\t6026857\t29934738\t37430772\t28469408\t6392048\t3956769\t18521915\t6448619\t58495251\t21643123\t15824960\t24311549\t14867509\t14415999\t39238537\t19313537\t4269597\t14077517\t20163043\t27340905\t24'..b'491\t31448100\t34659066\t28767624\t25600071\t15859089\t27835970\t27390922\t41203737\t20498119\t24452585\t19528858\t38827573\t19668360\t36226070\t20834484\t23959078\t24861056\t26613170\t19267218\t29521876\t24702382\t22611875\t27200384\t24013133\t8211817\t19321158\t25053327\t21309585\t26111146\t22752518\t23678180\t14152377\t18368970\t20070120\t25344880\t23708432\t24308059\t21954805\t17310020\t15790465\t18113923\t15887568\t21212232\t24847089\t26846871\t21379272\t16591716\t20216215\t26495026\t9555821\t25623659\t22300532\t19302590\t32540833\t38044859\t18732489\t20874060\t25502870\t19077479\t27777050\t38317810\t11205446\t23184858\t22056757\t19844415\t20832666\t18822607\t22767829\t20416588\t14459562\t18594833\t20083706\t24380208\t11525928\t16313321\t14407791\t17369758\t14005534\t14258891\t13852000\t11087898\t24969299\t15806268\t16899211\t15920144\n+met_110\t935810\t216794\t1250664\t961929\t322675\t358002\t748600\t1860981\t1018669\t502991\t684506\t319659\t372075\t435408\t271584\t134703\t303433\t660710\t497665\t545837\t562326\t294841\t768892\t810960\t1051193\t334380\t415293\t274518\t1024104\t541427\t301845\t328083\t257992\t599182\t440881\t228402\t425882\t556153\t473391\t796559\t433075\t637036\t502610\t252290\t878377\t318451\t806407\t240703\t431264\t364408\t432337\t490946\t495207\t557849\t481367\t240800\t239131\t552620\t296097\t325675\t299775\t538890\t129963\t202343\t159717\t524611\t659238\t837602\t401479\t347983\t286154\t405225\t113652\t522101\t168009\t185467\t508620\t217008\t189382\t300949\t181027\t293385\t593884\t707190\t86552\t667494\t119244\t290894\t850008\t307178\t409093\t223301\t101862\t205697\t38427\t209271\t69666\t182736\t247482\t273165\t123847\t387771\t325480\t44799\t104296\t295313\t155240\t212170\n+met_111\t1043674\t783394\t569047\t2884257\t2457038\t2025231\t2245847\tNA\t576988\t636282\t1109803\t511108\t1986572\t950755\t453817\t673562\t345902\t1199314\t673490\t1088285\t1650159\t548818\t673318\t1350162\t1955525\t740092\t273505\t467277\t2262955\t1064977\t2870714\t199436\t422478\t991340\t2525718\t798722\t179006\t619100\t874665\t3040034\t996244\t329299\t679032\t733260\t2162571\t528686\t219519\t138708\t740267\t940086\t736191\t703043\t1639741\t433247\t2081907\t705395\t1089016\t1249615\t789518\t854281\t424305\t719392\t258294\t813349\t666412\t1123188\t524519\t910137\t742428\t1482493\t1050502\t1019270\t846205\t398868\t409318\t832274\t122817\t1372087\t902737\t753444\t1261485\t1138611\t1159395\t680881\t111575\t2005973\t748730\t797783\t815843\t601216\t897182\t1159520\t207899\t606512\t1051255\t493530\t299954\t651714\t315358\t558515\t255169\t338669\t832857\t218229\t649477\t415127\t1274096\t494555\n+met_112\t6419071\t2797128\t4299074\t11909792\t6115103\t3096009\t8035572\tNA\t3259089\t6395447\t5049944\t4099603\t7256757\t5080926\t3738872\t2566634\t1719671\t4297409\t5324570\t4873112\t7648125\t1910687\t5439846\t4340784\t7283405\t3178504\t1547866\t3074074\t6191537\t4916409\t8943211\t1784458\t4200543\t4136622\t7786416\t4378240\t2608290\t2992852\t4462941\t9689440\t4286272\t2686538\t2745539\t4160961\t7108278\t2547671\t2212921\t992136\t3451416\t4253840\t4661221\t2464180\t4009317\t3451266\t9045261\t2681403\t3260592\t5840008\t2611730\t4002414\t3128586\t4061269\t875155\t2993219\t4222945\t4810052\t3599437\t6386359\t4087475\t5853004\t2845191\t5015241\t5255266\t2977940\t4272008\t7251435\t3019276\t3081894\t2290972\t3841186\t3298124\t3942297\t7512978\t3936963\t796120\t7537291\t3841541\t4596420\t5044950\t3496643\t2341361\t6304734\t1369143\t4345921\t3364143\t3282371\t2017426\t2744678\t5320910\t3371583\t1340912\t2186105\t3792760\t2150395\t4931386\t2886649\t3159267\t2835997\n+met_113\t1351348\t1546452\t704498\t1178543\t1910776\t2419982\t1730728\tNA\t1518760\t1292032\t1333917\t1256258\t974162\t519797\t2540508\t976266\t328769\t1916054\t1273384\t1345103\t2028673\t740657\t1759018\t2037601\t1797824\t1183570\t281005\t210403\t2013482\t1157284\t2890251\t473682\t1397064\t922962\t1608440\t785419\t836119\t552727\t996652\t1314640\t1080507\t941223\t1069492\t492963\t1146686\t413720\t1146636\t106708\t428730\t1153669\t682704\t1685395\t1027646\t673104\t762161\t230163\t984144\t741438\t962147\t954327\t887638\t721180\t215275\t364352\t353548\t991113\t1975188\t1308883\t919371\t525484\t489779\t945717\t86415\t409383\t910262\t1155717\t1527056\t1552890\t374555\t863254\t831837\t632228\t1534291\t1054678\t104907\t1181832\t570191\t1181392\t710672\t765250\t157618\t799343\t352504\t730991\t12561534\t1127759\t317084\t828816\t772629\t761105\t256288\t491981\t517417\t208846\t2334220\t563581\t849860\t654635\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/input/sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/input/sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,109 @@
+ injectionOrder sampleType batch
+QC1_001 1 pool b1
+HU_022 2 sample b1
+HU_076 3 sample b1
+HU_166 4 sample b1
+HU_114 5 sample b1
+HU_190 6 sample b1
+HU_139 7 sample b1
+HU_096 8 sample b1
+HU_058 9 sample b1
+HU_031 10 sample b1
+QC1_002 11 pool b1
+HU_039 12 sample b1
+HU_087 13 sample b1
+HU_143 14 sample b1
+HU_162 15 sample b1
+HU_102 16 sample b1
+HU_188 17 sample b1
+HU_095 18 sample b1
+HU_062 19 sample b1
+QC1_003 20 pool b1
+HU_063 21 sample b1
+HU_011 22 sample b1
+HU_074 23 sample b1
+HU_122 24 sample b1
+HU_142 25 sample b1
+HU_030 26 sample b1
+HU_187 27 sample b1
+HU_167 28 sample b1
+HU_113 29 sample b1
+QC1_004 30 pool b1
+HU_081 31 sample b1
+HU_014 32 sample b1
+HU_206 33 sample b1
+HU_119 34 sample b1
+HU_033 35 sample b1
+HU_067 36 sample b1
+HU_140 37 sample b1
+HU_164 38 sample b1
+HU_193 39 sample b1
+HU_112 40 sample b1
+QC1_005 41 pool b1
+HU_097 42 sample b1
+HU_056 43 sample b1
+HU_195 44 sample b1
+HU_135 45 sample b1
+HU_159 46 sample b1
+HU_070 47 sample b1
+HU_038 48 sample b1
+HU_026 49 sample b1
+QC1_006 50 pool b1
+HU_098 51 sample b1
+HU_115 52 sample b1
+HU_137 53 sample b1
+HU_019 54 sample b1
+HU_073 55 sample b1
+HU_168 56 sample b1
+HU_191 57 sample b1
+HU_040 58 sample b1
+HU_046 59 sample b1
+QC1_007 60 pool b1
+HU_103 61 sample b1
+HU_015 62 sample b1
+HU_053 63 sample b1
+HU_121 64 sample b1
+HU_183 65 sample b1
+HU_199 66 sample b1
+HU_042 67 sample b1
+HU_075 68 sample b1
+QC1_008 69 pool b1
+HU_203 70 sample b1
+HU_024 71 sample b1
+HU_082 72 sample b1
+HU_169 73 sample b1
+HU_129 74 sample b1
+HU_057 75 sample b1
+HU_035 76 sample b1
+HU_194 77 sample b1
+HU_145 78 sample b1
+HU_104 79 sample b1
+QC1_009 80 pool b1
+HU_177 81 sample b1
+HU_025 82 sample b1
+HU_080 83 sample b1
+HU_117 84 sample b1
+HU_136 85 sample b1
+HU_197 86 sample b1
+HU_036 87 sample b1
+HU_054 88 sample b1
+HU_085 89 sample b1
+QC1_010 90 pool b1
+HU_160 91 sample b1
+HU_092 92 sample b1
+HU_023 93 sample b1
+HU_124 94 sample b1
+HU_147 95 sample b1
+HU_205 96 sample b1
+HU_084 97 sample b1
+HU_120 98 sample b1
+HU_198 99 sample b1
+QC1_011 100 pool b1
+HU_045 101 sample b1
+HU_029 102 sample b1
+HU_069 103 sample b1
+HU_155 104 sample b1
+HU_106 105 sample b1
+HU_146 106 sample b1
+HU_128 107 sample b1
+QC1_012 108 pool b1
b
diff -r 000000000000 -r 71d83d8920bf runit/input/variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/input/variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,114 @@
+ number MSI_level
+met_001 1 1
+met_002 2 1
+met_003 3 1
+met_004 4 1
+met_005 5 2
+met_006 6 1
+met_007 7 1
+met_008 8 1
+met_009 9 1
+met_010 10 1
+met_011 11 2
+met_012 12 1
+met_013 13 1
+met_014 14 1
+met_015 15 1
+met_016 16 1
+met_017 17 2
+met_018 18 1
+met_019 19 1
+met_020 20 1
+met_021 21 1
+met_022 22 2
+met_023 23 1
+met_024 24 2
+met_025 25 2
+met_026 26 1
+met_027 27 1
+met_028 28 1
+met_029 29 1
+met_030 30 2
+met_031 31 1
+met_032 32 2
+met_033 33 1
+met_034 34 1
+met_035 35 2
+met_036 36 1
+met_037 37 2
+met_038 38 2
+met_039 39 2
+met_040 40 2
+met_041 41 1
+met_042 42 1
+met_043 43 2
+met_044 44 2
+met_045 45 1
+met_046 46 1
+met_047 47 2
+met_048 48 1
+met_049 49 1
+met_050 50 1
+met_051 51 2
+met_052 52 2
+met_053 53 1
+met_054 54 2
+met_055 55 2
+met_056 56 2
+met_057 57 2
+met_058 58 1
+met_059 59 2
+met_060 60 2
+met_061 61 2
+met_062 62 2
+met_063 63 2
+met_064 64 1
+met_065 65 1
+met_066 66 2
+met_067 67 2
+met_068 68 2
+met_069 69 1
+met_070 70 2
+met_071 71 2
+met_072 72 2
+met_073 73 1
+met_074 74 1
+met_075 75 1
+met_076 76 2
+met_077 77 2
+met_078 78 2
+met_079 79 2
+met_080 80 2
+met_081 81 2
+met_082 82 1
+met_083 83 1
+met_084 84 1
+met_085 85 1
+met_086 86 1
+met_087 87 1
+met_088 88 2
+met_089 89 2
+met_090 90 1
+met_091 91 1
+met_092 92 1
+met_093 93 2
+met_094 94 2
+met_095 95 2
+met_096 96 1
+met_097 97 1
+met_098 98 2
+met_099 99 2
+met_100 100 2
+met_101 101 1
+met_102 102 1
+met_103 103 1
+met_104 104 1
+met_105 105 2
+met_106 106 1
+met_107 107 2
+met_108 108 2
+met_109 109 2
+met_110 110 1
+met_111 111 2
+met_112 112 2
+met_113 113 1
b
diff -r 000000000000 -r 71d83d8920bf runit/output/dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/output/dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,11 @@\n+dataMatrix\tQC1_001\tHU_neg_017\tHU_neg_018\tHU_neg_020\tHU_neg_021\tHU_neg_027\tHU_neg_028\tHU_neg_032\tHU_neg_034\tQC1_002\tHU_neg_037\tHU_neg_041\tHU_neg_043\tHU_neg_044\tHU_neg_047\tHU_neg_048\tQC1_003\tHU_neg_049\tHU_neg_050\tHU_neg_051\tHU_neg_052\tHU_neg_055\tHU_neg_059\tHU_neg_060\tHU_neg_061\tQC1_004\tHU_neg_064\tHU_neg_065\tHU_neg_066\tHU_neg_068\tHU_neg_071\tHU_neg_072\tHU_neg_077\tHU_neg_078\tQC1_005\tHU_neg_079\tHU_neg_083\tHU_neg_086\tHU_neg_088\tHU_neg_089\tHU_neg_090\tHU_neg_091\tHU_neg_093\tHU_neg_094\tQC1_006\tHU_neg_099\tHU_neg_100\tHU_neg_101\tHU_neg_105\tHU_neg_107\tHU_neg_108\tHU_neg_109\tHU_neg_110\tHU_neg_111\tQC1_007\tHU_neg_116\tHU_neg_118\tHU_neg_123\tHU_neg_125\tHU_neg_126\tHU_neg_127\tQC1_008\tHU_neg_130\tHU_neg_131\tHU_neg_132\tHU_neg_133\tHU_neg_134\tHU_neg_138\tQC1_009\tHU_neg_144\tHU_neg_148\tHU_neg_149\tHU_neg_150\tQC1_010\tHU_neg_152\tHU_neg_154\tHU_neg_156\tHU_neg_157\tHU_neg_158\tHU_neg_163\tHU_neg_170\tHU_neg_171\tQC1_011\tHU_neg_172\tHU_neg_173\tHU_neg_174\tHU_neg_175\tHU_neg_178\tHU_neg_179\tHU_neg_180\tHU_neg_181\tHU_neg_182\tQC1_012\tHU_neg_184\tHU_neg_185\tHU_neg_186\tHU_neg_189\tHU_neg_192\tHU_neg_196\tQC1_013\tHU_neg_200\tHU_neg_201\tHU_neg_202\tHU_neg_204\tHU_neg_207\tHU_neg_208\tHU_neg_209\tQC1_014\tQC1_001_b2\tHU_neg_022_b2\tHU_neg_076_b2\tHU_neg_166_b2\tHU_neg_114_b2\tHU_neg_190_b2\tHU_neg_139_b2\tHU_neg_096_b2\tHU_neg_058_b2\tHU_neg_031_b2\tQC1_002_b2\tHU_neg_039_b2\tHU_neg_087_b2\tHU_neg_143_b2\tHU_neg_162_b2\tHU_neg_102_b2\tHU_neg_188_b2\tHU_neg_095_b2\tHU_neg_062_b2\tQC1_003_b2\tHU_neg_063_b2\tHU_neg_011_b2\tHU_neg_074_b2\tHU_neg_122_b2\tHU_neg_142_b2\tHU_neg_030_b2\tHU_neg_187_b2\tHU_neg_167_b2\tHU_neg_113_b2\tQC1_004_b2\tHU_neg_081_b2\tHU_neg_014_b2\tHU_neg_206_b2\tHU_neg_119_b2\tHU_neg_033_b2\tHU_neg_067_b2\tHU_neg_140_b2\tHU_neg_164_b2\tHU_neg_193_b2\tHU_neg_112_b2\tQC1_005_b2\tHU_neg_097_b2\tHU_neg_056_b2\tHU_neg_195_b2\tHU_neg_135_b2\tHU_neg_159_b2\tHU_neg_070_b2\tHU_neg_038_b2\tHU_neg_026_b2\tQC1_006_b2\tHU_neg_098_b2\tHU_neg_115_b2\tHU_neg_137_b2\tHU_neg_019_b2\tHU_neg_073_b2\tHU_neg_168_b2\tHU_neg_191_b2\tHU_neg_040_b2\tHU_neg_046_b2\tQC1_007_b2\tHU_neg_103_b2\tHU_neg_015_b2\tHU_neg_053_b2\tHU_neg_121_b2\tHU_neg_183_b2\tHU_neg_199_b2\tHU_neg_042_b2\tHU_neg_075_b2\tQC1_008_b2\tHU_neg_203_b2\tHU_neg_024_b2\tHU_neg_082_b2\tHU_neg_169_b2\tHU_neg_129_b2\tHU_neg_057_b2\tHU_neg_035_b2\tHU_neg_194_b2\tHU_neg_145_b2\tHU_neg_104_b2\tQC1_009_b2\tHU_neg_177_b2\tHU_neg_025_b2\tHU_neg_080_b2\tHU_neg_117_b2\tHU_neg_136_b2\tHU_neg_197_b2\tHU_neg_036_b2\tHU_neg_054_b2\tHU_neg_085_b2\tQC1_010_b2\tHU_neg_160_b2\tHU_neg_092_b2\tHU_neg_023_b2\tHU_neg_124_b2\tHU_neg_147_b2\tHU_neg_205_b2\tHU_neg_084_b2\tHU_neg_120_b2\tHU_neg_198_b2\tQC1_011_b2\tHU_neg_045_b2\tHU_neg_029_b2\tHU_neg_069_b2\tHU_neg_155_b2\tHU_neg_106_b2\tHU_neg_146_b2\tHU_neg_128_b2\tQC1_012_b2\n+M53T345\t22916.8503183278\t7902.36628611891\t14186.1927260197\t10015.9019240688\t26094.828028276\t0\t38332.1570293848\t8393.52483632099\t6785.85486172605\t64557.5696044546\t15085.3806578423\t0\t55618.4950303317\t0\t0\t74378.564916877\t69385.6823681573\t89437.9795664756\t48320.6149305083\t0\t27549.0211475775\t17372.8580621263\t49331.7569391658\t52762.8909562027\t14701.2645921527\t45264.5638569828\t0\t22800.9849561408\t44174.1106217275\t21020.4732296622\t0\t38080.7304204211\t32382.6256336037\t27785.3736965079\t37328.4752249551\t19541.5803787906\t34889.5607768396\t164054.478223313\t68963.9935434008\t39557.2309303527\t29623.8667089724\t53765.4492117118\t9298.12832080944\t1950.95686964544\t77308.9014034962\t11959.2640840444\t42652.1227840538\t0\t24286.3336183775\t75811.0410858136\t0\t0\t9464.23645760711\t174377.136304784\t48086.7360433165\t14925.1880942963\t15358.803016403\t181689.711577104\t42975.0756929933\t47882.0867588327\t147474.219553644\t20423.1003315362\t96186.6084956545\t81450.8051605474\t75984.6073191648\t0\t0\t37916.9838544697\t59635.0709072874\t88591.7909778961\t107351.343538686\t214900.490026095\t0\t0\t101860.62950402\t0\t0\t75878.6360109469\t0\t218702.585453886\t118194.313858912\t55775.259094532\t38006.6711995647\t181840.596518769\t11686.9719830616\t127721.148955206\t182860.420341732\t0\t23775.5437795508\t20023.7275839261\t0\t0\t48093.0771338209\t68516.0666418151\t23791.3343168634\t0\t23783.3223321733\t174248.120'..b'9836.75922960136\t0\t21960.5625241016\t7752.6279548032\t0\t42394.5289452647\t0\t16885.164729337\t9419.17763024988\t0\t15775.1973748943\t22213.6493909447\t0\t37351.8646384021\t275946.902583094\t220205.4204303\t0\t240321.418146108\t404666.199982779\t35549.9141799903\n+M65T347\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\t0\t0\t0\t0\t0\t17577.7523599669\t12716.9483154491\t0\t0\t0\t0\t0\t0\t0\t0\t9227.52812225522\t0\t0\t0\t0\t0\t8655.72495167114\t2785.89360160062\t0\t0\t0\t7665.56274089389\t0\t24411.9035717586\t26673.3764224817\t0\t0\t4957.78878335087\t5893.35173627485\t0\t9232.20647814967\t5897.51053646421\t0\t0\t0\t10595.9640451461\t0\t0\t0\t0\t0\t3600.02698782932\t0\t0\t0\t0\t3104.13752275366\t0\t1305.8153658586\t0\t0\t12198.9175700778\t4033.05588518951\t5563.31298292953\t10252.6717734315\t9006.20625464274\t4393.70210640498\t0\t10938.1589642391\t0\t6995.14472938548\t0\t0\t0\t2795.56950834933\t0\t0\t6453.85924033309\t3769.59029600916\t0\t0\t3948.77174969479\t0\t6872.2008449651\t10662.815500164\t1430.52218731967\t0\t6628.52477286425\t6109.84270038378\t0\t0\t0\t0\t6864.31528229662\t0\t11482.1388929745\t12764.6593425743\t16644.919410871\t0\t0\t48017.7167269393\t0\t0\tNA\tNA\t6924.18711009832\t0\t0\t14187.3204532684\t0\t13586.348983009\t0\t0\t0\t9269.72807242392\t0\t0\t12532.2353098584\t0\t0\t0\t0\t7450.37683579171\t0\t0\t28312.9289651925\t32920.4519412756\t0\t0\t0\t60097.4399421925\t0\t0\t92350.3419541241\t0\t0\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\tNA\t0\t0\t205719.903080552\t81931.5147433721\t0\t0\t75446.1919531793\t71806.6973200351\t96891.2605469779\t0\t0\t21958.7115351948\t0\t0\t0\t17970.6660585164\t0\t52921.1801879622\t20285.3838321717\t39648.2753696965\t0\t0\t0\t0\t0\t12105.7976443698\t0\t13116.611445248\t0\t0\t0\t0\t29111.9843879581\t0\t0\t18774.7460616189\t0\t16057.8759211401\t0\t0\t0\t7859.53123526753\t0\t2306.33224635393\t0\t0\t0\t3000.49940768142\t2763.60425899446\t0\t0\t3872.20348463165\t2515.66755783652\t3710.72689500818\t4646.60009105324\t0\t0\t6797.64248978523\t0\t4904.85992721011\n+M65T379\t0\t0\t0\t0\t19319.784477314\t0\t2358.91451043098\t0\t0\t6146.07821441386\t0\t0\t0\t0\t0\t1796.47735198171\t7125.33879092052\t2635.27150058506\t5182.89231545897\t2227.07955856423\t14915.0599008699\t0\t0\t36884.2824796481\t7971.93053414221\t21546.7130945337\t1106.78816682253\t0\t12209.900287666\t7069.20612554734\t0\t18788.451584342\t9150.4104910484\t0\t11225.9296972091\t0\t9575.81479249076\t25385.3644103777\t11947.3457132044\t11457.7990816385\t4758.98691288765\t11662.7155322396\t0\t8254.41204449586\t0\t0\t0\t0\t0\t30254.4402564108\t0\t0\t2218.81233907726\t0\t0\t0\t0\t45224.8877985745\t0\t0\t0\t0\t17162.4177720751\t33814.6038957995\t0\t0\t13062.7324556288\t40942.8220567403\t14674.108351702\t0\t18638.3283559686\t0\t9622.84024273207\t3623.57431535713\t0\t0\t3340.47633445213\t0\t0\t4841.96871041119\t0\t0\t45466.1114161014\t0\t0\t0\t16671.9055698337\t13461.2220470744\t0\t25855.4996925191\t0\t4228.85166891446\t7306.3522965035\t0\t0\t0\t18214.4700333264\t0\t31956.49979747\t0\t0\t16336.8074340521\t0\t21004.7862449397\t32082.1261984759\t0\t0\t0\t3903.74436334081\t5940.99143467867\t0\t9650.23052524917\t5692.11542577102\t0\t0\t0\t0\t7673.01694151431\t14358.8121247852\t4482.60692633307\t4626.86002305355\t0\t0\t0\t0\t7278.0062930656\t0\t10411.9211438194\t0\t0\t4540.9140770715\t8190.12009366662\t3557.87322079825\t3296.84451085836\t0\t0\t4825.34857042043\t0\t0\t4087.32859261343\t22512.9294636802\t0\t4533.77551008407\t4309.91095787936\t6211.33485416505\t5137.47693452919\t24590.0374650008\t54242.8122107214\t0\t9904.31119626018\t9036.42851637183\t4543.39927970651\t9361.25095387635\t23135.7456592626\t0\t0\t12678.1780185843\t17294.4661916624\t0\t0\t0\t37785.8757986175\t29269.6121043192\t12931.5996710815\t11112.3473991272\t5840.53283889335\t0\t17841.7734691827\t0\t0\t9660.12888206858\t0\t12711.8371141284\t6448.48348402996\t7216.45400679199\t17002.9576437415\t0\t3521.7797273502\t7473.87193907181\t0\t8505.68747645502\t10676.3525005773\t5305.7851485662\t5552.44282073779\t0\t14435.7438130564\t8536.20088102446\t0\t0\t7721.53659611395\t8354.49158261139\t8292.42381975183\t4668.32413096465\t0\t0\t8871.71663682864\t17070.0052819867\t13664.9374535562\t16100.2332819966\t10942.8220740789\t0\t37144.442508253\t9081.1220238305\t16819.8701047487\t11907.2110344546\t0\t0\t12848.1184120016\t32186.631711067\t42112.8736432409\t19067.8374396085\t123052.057113716\t69742.8385855293\t0\t194579.902698815\t0\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/output/graph_output.pdf
b
Binary file runit/output/graph_output.pdf has changed
b
diff -r 000000000000 -r 71d83d8920bf runit/output/out_graph.pdf
b
Binary file runit/output/out_graph.pdf has changed
b
diff -r 000000000000 -r 71d83d8920bf runit/output/preNormSummary.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/output/preNormSummary.txt Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,11 @@
+labion batch.1.linear batch.1.loess batch.1.lowess batch.2.linear batch.2.loess batch.2.lowess
+M53T345 0 0 0 0 0 0
+M58T69 0 0 0 0 0 0
+M59T246 0 0 0 5 0 0
+M59T62 0 0 0 3 3 3
+M59T270 0 0 0 0 0 0
+M62T56 0 0 0 0 0 0
+M64T348 0 0 0 0 0 0
+M64T379 0 0 0 0 0 0
+M65T347 5 0 0 5 0 0
+M65T379 0 0 0 0 0 0
b
diff -r 000000000000 -r 71d83d8920bf runit/output/rdata_output.rdata
b
Binary file runit/output/rdata_output.rdata has changed
b
diff -r 000000000000 -r 71d83d8920bf runit/output/variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/output/variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,11 @@
+variableMetadata mz rt
+M53T345 53.00116493 345.3902643
+M58T69 57.97545393 68.67242364
+M59T246 59.01359496 246.0306602
+M59T62 59.0137118 61.90072933
+M59T270 59.01362084 269.6233798
+M62T56 61.98819056 55.58308625
+M64T348 63.62063447 347.5012693
+M64T379 63.62063447 378.9359473
+M65T347 64.90244604 347.4115572
+M65T379 64.9028817 378.9130758
b
diff -r 000000000000 -r 71d83d8920bf runit/output/variable_for_simca.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/output/variable_for_simca.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,217 @@\n+names\tsampleType\tinjectionOrder\tbatch\tM53T345\tM58T69\tM59T246\tM59T62\tM59T270\tM62T56\tM64T348\tM64T379\tM65T347\tM65T379\n+QC1_001\tpool\t14\tne1\t22916.8503183278\t414335.514903694\t31597.2963818844\t10396.7469524831\t5545.85336555007\t6357771.36568666\t15280.9335261441\t15209.3350889908\tNA\t0\n+HU_neg_017\tsample\t17\tne1\t7902.36628611891\t114393.000721447\t0\t0\t0\t2566772.45126903\t22883.7849648464\t0\tNA\t0\n+HU_neg_018\tsample\t18\tne1\t14186.1927260197\t126621.285371012\t73263.1745467661\t48807.7004751479\t45499.2532566739\t7918786.43270129\t29412.2985860409\t6028.453373865\tNA\t0\n+HU_neg_020\tsample\t19\tne1\t10015.9019240688\t143110.676434993\t0\t0\t0\t2711781.00431142\t23567.9721870871\t4435.36159361631\tNA\t0\n+HU_neg_021\tsample\t20\tne1\t26094.828028276\t209940.624575068\t44029.1138677143\t11743.5608955695\t45259.1527113759\t5549057.18386628\t0\t25447.569115331\tNA\t19319.784477314\n+HU_neg_027\tsample\t22\tne1\t0\t30490.3229152273\t0\t6182.11173521795\t0\t3117104.41608518\t14820.0715202055\t4312.86095485588\tNA\t0\n+HU_neg_028\tsample\t23\tne1\t38332.1570293848\t120354.978068946\t65544.3440435328\t12959.6928185789\t0\t5011009.07575411\t22143.6001774649\t11706.2740758898\tNA\t2358.91451043098\n+HU_neg_032\tsample\t25\tne1\t8393.52483632099\t228452.378845564\t0\t0\t2815.48976935071\t4074773.95643709\t16541.7006989418\t3313.44127061182\tNA\t0\n+HU_neg_034\tsample\t26\tne1\t6785.85486172605\t821961.331895979\t0\t13214.928374308\t0\t5772294.1134195\t9669.77585057873\t9061.05119485424\t0\t0\n+QC1_002\tpool\t27\tne1\t64557.5696044546\t387436.306124251\t25926.9014019498\t9441.21811649049\t10949.7954145854\t5721367.6809163\t23271.2867953649\t16782.2052996299\t0\t6146.07821441386\n+HU_neg_037\tsample\t32\tne1\t15085.3806578423\t572790.502672348\t0\t21024.2387239496\t0\t5145680.08148254\t2990.68873644705\t0\t0\t0\n+HU_neg_041\tsample\t34\tne1\t0\t23106.4532699009\t3917.11331480479\t9484.81294657684\t0\t2157188.76930328\t8903.43600544316\t5667.26299585238\t0\t0\n+HU_neg_043\tsample\t36\tne1\t55618.4950303317\t344733.839950306\t12239.4899545428\t28922.8830888333\t0\t3126857.9926602\t6121.28093859868\t12991.2688341502\t0\t0\n+HU_neg_044\tsample\t37\tne1\t0\t105149.982589545\t0\t5798.88774680255\t0\t1628726.03424121\t11176.880956293\t2595.2250512392\t17577.7523599669\t0\n+HU_neg_047\tsample\t38\tne1\t0\t38849.1835427455\t5580.71066540823\t0\t0\t3766792.65982601\t7784.81015421122\t14366.127214807\t12716.9483154491\t0\n+HU_neg_048\tsample\t39\tne1\t74378.564916877\t84923.317737559\t16812.3761849151\t12768.8471292001\t8265.6376628611\t5120638.25871586\t10214.4243042097\t16545.9894306663\t0\t1796.47735198171\n+QC1_003\tpool\t40\tne1\t69385.6823681573\t438883.454352924\t33894.9796613836\t12163.389542402\t17809.4825112921\t5202475.82491676\t13658.6556594957\t11684.8398790874\t0\t7125.33879092052\n+HU_neg_049\tsample\t43\tne1\t89437.9795664756\t94512.4350719824\t2679.72010679899\t7796.78504801455\t22617.8849477442\t11022459.6272805\t0\t3107.76471330431\t0\t2635.27150058506\n+HU_neg_050\tsample\t44\tne1\t48320.6149305083\t348585.770923454\t73672.8889432879\t20905.687737515\t14643.2808429715\t4684921.30148651\t38058.8378477906\t11722.0952725287\t0\t5182.89231545897\n+HU_neg_051\tsample\t45\tne1\t0\t43074.9404587368\t0\t0\t0\t2839212.71131481\t2878.48790076907\t5275.55429263035\t0\t2227.07955856423\n+HU_neg_052\tsample\t46\tne1\t27549.0211475775\t315206.69942588\t3400.83259108738\t11215.9678046422\t3281.79638334132\t2890474.78696583\t39018.9545882897\t14250.7522230372\t0\t14915.0599008699\n+HU_neg_055\tsample\t48\tne1\t17372.8580621263\t35781.896819856\t2420.80657839847\t5647.13737920437\t0\t3713953.83059064\t4719.68500893146\t4803.06049170028\t0\t0\n+HU_neg_059\tsample\t50\tne1\t49331.7569391658\t207110.900173121\t40672.2254646222\t15725.7960558992\t6054.7183419183\t4275004.45650596\t15263.0277711816\t7338.81247207245\t0\t0\n+HU_neg_060\tsample\t51\tne1\t52762.8909562027\t216905.390687518\t24724.1611707945\t18537.3756077814\t31230.8721808582\t4126998.73211027\t48443.7738973598\t26264.8489779139\t9227.52812225522\t36884.2824796481\n+HU_neg_061\tsample\t52\tne1\t14701.2645921527\t116178.215101415\t11933.6736580781\t13625.2211326419\t2618.38617028143\t2932237.04913505\t6608.04171261367\t11464.6541557274\t0\t7971.93053414221\n+QC1_004\tpool\t53\tne1\t45264.5638569828\t4291'..b'\t0\t9123.78479481339\t0\t2159758.96408848\t15268.7957647657\t6377.63173137508\t0\t4668.32413096465\n+HU_neg_197_b2\tsample\t127\tne2\t25635.5732408133\t200853.508576854\t122774.220223768\t8554.28345655055\t61695.7266716568\t3910793.6058202\t17800.3809827898\t15278.2092214688\t16057.8759211401\t0\n+HU_neg_036_b2\tsample\t128\tne2\t0\t1780603.51587091\t48513.4997472712\t60778.1725865781\t0\t4599797.2222596\t6516.07113392464\t13644.2927034882\t0\t0\n+HU_neg_054_b2\tsample\t129\tne2\t126871.672949796\t149332.199059522\t51826.7880173299\t7591.22868164988\t56583.6094352797\t10464578.6475196\t23885.9647447575\t24833.1495196631\t0\t8871.71663682864\n+HU_neg_085_b2\tsample\t130\tne2\t93070.0624662882\t169686.415380358\t125584.46377227\t8362.63631797827\t47720.1567812388\t4530348.62131862\t40169.6853738626\t9836.75922960136\t0\t17070.0052819867\n+QC1_010_b2\tpool\t131\tne2\t0\t423607.260828555\t25936.6154518318\t8046.35281614121\t3479.79080283346\t5620735.2624169\t19194.4449708521\t0\t7859.53123526753\t13664.9374535562\n+HU_neg_160_b2\tsample\t134\tne2\t52891.1218192687\t317645.486666445\t8211.32571538391\t24605.0265500288\t0\t3627639.8055793\t22150.2163731973\t21960.5625241016\t0\t16100.2332819966\n+HU_neg_092_b2\tsample\t136\tne2\t72408.9537744018\t1460924.19676066\t49928.4507491627\t16763.2610498386\t3990.17984237917\t2805850.59575042\t13454.8128885898\t7752.6279548032\t2306.33224635393\t10942.8220740789\n+HU_neg_023_b2\tsample\t137\tne2\t152604.332831428\t201672.631748578\t14913.8106037919\t0\t1755.94815016581\t3052497.75920036\t5630.2519036096\t0\t0\t0\n+HU_neg_124_b2\tsample\t138\tne2\t587864.895817316\t2279481.97503921\t55618.1262392793\t45260.1417438861\t57744.5588804476\t4538313.54264357\t4038.05660936366\t42394.5289452647\t0\t37144.442508253\n+HU_neg_147_b2\tsample\t139\tne2\t410998.858671201\t397469.497502822\t25100.9972538257\t50293.9859189137\t3098.70833505369\t3773052.03940999\t33109.031770493\t0\t0\t9081.1220238305\n+HU_neg_205_b2\tsample\t140\tne2\t0\t258673.421594387\t63429.8329903911\t35573.9595964222\t58320.6029517851\t3768136.85500143\t23286.4890689731\t16885.164729337\t3000.49940768142\t16819.8701047487\n+HU_neg_084_b2\tsample\t141\tne2\t43270.7055185618\t242841.35237843\t23919.6694291931\t61463.3139336184\t0\t1649574.79278349\t0\t9419.17763024988\t2763.60425899446\t11907.2110344546\n+HU_neg_120_b2\tsample\t142\tne2\t407021.031572177\t134561.255169041\t9340.29265177823\t14808.1767672651\t0\t3529988.2629453\t26510.6812034667\t0\t0\t0\n+HU_neg_198_b2\tsample\t143\tne2\t444111.471880968\t2017033.56336578\t20361.5550262026\t20903.6663706153\t21250.9636204492\t8488543.40652706\t66087.3955004915\t15775.1973748943\t0\t0\n+QC1_011_b2\tpool\t144\tne2\t187425.394100892\t469588.273011053\t18710.2646154161\t14761.3548219776\t16685.3057969668\t6350090.32962661\t8713.66043440489\t22213.6493909447\t3872.20348463165\t12848.1184120016\n+HU_neg_045_b2\tsample\t148\tne2\t0\t988435.757475126\t0\t11745.1367553337\t5389.27375880758\t4681162.74519829\t62696.920237698\t0\t2515.66755783652\t32186.631711067\n+HU_neg_029_b2\tsample\t149\tne2\t5071704.61214239\t1260602.91215149\t79824.3594572156\t54703.6107854852\t5385.21616225194\t14383354.0590852\t53307.8837226276\t37351.8646384021\t3710.72689500818\t42112.8736432409\n+HU_neg_069_b2\tsample\t150\tne2\t163991.025876611\t5203884.95109952\t41764.6862312955\t23527.6914295009\t50719.4780336792\t8579540.46155677\t68908.6249137131\t275946.902583094\t4646.60009105324\t19067.8374396085\n+HU_neg_155_b2\tsample\t151\tne2\t5363609.55468826\t22932097.9437264\t8063.14414678053\t26069.2792049545\t0\t7071584.63633001\t0\t220205.4204303\t0\t123052.057113716\n+HU_neg_106_b2\tsample\t154\tne2\tNA\t1520831.1518585\t23691.063008973\t73493.5514855902\t0\t12723314.3521273\t49360.5458922014\t0\t0\t69742.8385855293\n+HU_neg_146_b2\tsample\t155\tne2\tNA\t6088802.82900919\t62498.5132553181\t23812.4585556634\t78192.8428380911\t9107633.71464821\t65709.086176117\t240321.418146108\t6797.64248978523\t0\n+HU_neg_128_b2\tsample\t156\tne2\tNA\t5460519.61610762\t19461.012748901\t50958.3471344108\t0\t15437723.3325578\t108516.297876654\t404666.199982779\t0\t194579.902698815\n+QC1_012_b2\tpool\t157\tne2\tNA\t316208.032086306\t39604.0051243116\t8030.36632130052\t5714.42230295629\t5767931.8110389\t23064.3082325567\t35549.9141799903\t4904.85992721011\t0\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurine/dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurine/dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,11 @@\n+""\t"QC1_001"\t"HU_neg_017"\t"HU_neg_018"\t"HU_neg_020"\t"HU_neg_021"\t"HU_neg_027"\t"HU_neg_028"\t"HU_neg_032"\t"HU_neg_034"\t"QC1_002"\t"HU_neg_037"\t"HU_neg_041"\t"HU_neg_043"\t"HU_neg_044"\t"HU_neg_047"\t"HU_neg_048"\t"QC1_003"\t"HU_neg_049"\t"HU_neg_050"\t"HU_neg_051"\t"HU_neg_052"\t"HU_neg_055"\t"HU_neg_059"\t"HU_neg_060"\t"HU_neg_061"\t"QC1_004"\t"HU_neg_064"\t"HU_neg_065"\t"HU_neg_066"\t"HU_neg_068"\t"HU_neg_071"\t"HU_neg_072"\t"HU_neg_077"\t"HU_neg_078"\t"QC1_005"\t"HU_neg_079"\t"HU_neg_083"\t"HU_neg_086"\t"HU_neg_088"\t"HU_neg_089"\t"HU_neg_090"\t"HU_neg_091"\t"HU_neg_093"\t"HU_neg_094"\t"QC1_006"\t"HU_neg_099"\t"HU_neg_100"\t"HU_neg_101"\t"HU_neg_105"\t"HU_neg_107"\t"HU_neg_108"\t"HU_neg_109"\t"HU_neg_110"\t"HU_neg_111"\t"QC1_007"\t"HU_neg_116"\t"HU_neg_118"\t"HU_neg_123"\t"HU_neg_125"\t"HU_neg_126"\t"HU_neg_127"\t"QC1_008"\t"HU_neg_130"\t"HU_neg_131"\t"HU_neg_132"\t"HU_neg_133"\t"HU_neg_134"\t"HU_neg_138"\t"QC1_009"\t"HU_neg_144"\t"HU_neg_148"\t"HU_neg_149"\t"HU_neg_150"\t"QC1_010"\t"HU_neg_152"\t"HU_neg_154"\t"HU_neg_156"\t"HU_neg_157"\t"HU_neg_158"\t"HU_neg_163"\t"HU_neg_170"\t"HU_neg_171"\t"QC1_011"\t"HU_neg_172"\t"HU_neg_173"\t"HU_neg_174"\t"HU_neg_175"\t"HU_neg_178"\t"HU_neg_179"\t"HU_neg_180"\t"HU_neg_181"\t"HU_neg_182"\t"QC1_012"\t"HU_neg_184"\t"HU_neg_185"\t"HU_neg_186"\t"HU_neg_189"\t"HU_neg_192"\t"HU_neg_196"\t"QC1_013"\t"HU_neg_200"\t"HU_neg_201"\t"HU_neg_202"\t"HU_neg_204"\t"HU_neg_207"\t"HU_neg_208"\t"HU_neg_209"\t"QC1_014"\t"QC1_001_b2"\t"HU_neg_022_b2"\t"HU_neg_076_b2"\t"HU_neg_166_b2"\t"HU_neg_114_b2"\t"HU_neg_190_b2"\t"HU_neg_139_b2"\t"HU_neg_096_b2"\t"HU_neg_058_b2"\t"HU_neg_031_b2"\t"QC1_002_b2"\t"HU_neg_039_b2"\t"HU_neg_087_b2"\t"HU_neg_143_b2"\t"HU_neg_162_b2"\t"HU_neg_102_b2"\t"HU_neg_188_b2"\t"HU_neg_095_b2"\t"HU_neg_062_b2"\t"QC1_003_b2"\t"HU_neg_063_b2"\t"HU_neg_011_b2"\t"HU_neg_074_b2"\t"HU_neg_122_b2"\t"HU_neg_142_b2"\t"HU_neg_030_b2"\t"HU_neg_187_b2"\t"HU_neg_167_b2"\t"HU_neg_113_b2"\t"QC1_004_b2"\t"HU_neg_081_b2"\t"HU_neg_014_b2"\t"HU_neg_206_b2"\t"HU_neg_119_b2"\t"HU_neg_033_b2"\t"HU_neg_067_b2"\t"HU_neg_140_b2"\t"HU_neg_164_b2"\t"HU_neg_193_b2"\t"HU_neg_112_b2"\t"QC1_005_b2"\t"HU_neg_097_b2"\t"HU_neg_056_b2"\t"HU_neg_195_b2"\t"HU_neg_135_b2"\t"HU_neg_159_b2"\t"HU_neg_070_b2"\t"HU_neg_038_b2"\t"HU_neg_026_b2"\t"QC1_006_b2"\t"HU_neg_098_b2"\t"HU_neg_115_b2"\t"HU_neg_137_b2"\t"HU_neg_019_b2"\t"HU_neg_073_b2"\t"HU_neg_168_b2"\t"HU_neg_191_b2"\t"HU_neg_040_b2"\t"HU_neg_046_b2"\t"QC1_007_b2"\t"HU_neg_103_b2"\t"HU_neg_015_b2"\t"HU_neg_053_b2"\t"HU_neg_121_b2"\t"HU_neg_183_b2"\t"HU_neg_199_b2"\t"HU_neg_042_b2"\t"HU_neg_075_b2"\t"QC1_008_b2"\t"HU_neg_203_b2"\t"HU_neg_024_b2"\t"HU_neg_082_b2"\t"HU_neg_169_b2"\t"HU_neg_129_b2"\t"HU_neg_057_b2"\t"HU_neg_035_b2"\t"HU_neg_194_b2"\t"HU_neg_145_b2"\t"HU_neg_104_b2"\t"QC1_009_b2"\t"HU_neg_177_b2"\t"HU_neg_025_b2"\t"HU_neg_080_b2"\t"HU_neg_117_b2"\t"HU_neg_136_b2"\t"HU_neg_197_b2"\t"HU_neg_036_b2"\t"HU_neg_054_b2"\t"HU_neg_085_b2"\t"QC1_010_b2"\t"HU_neg_160_b2"\t"HU_neg_092_b2"\t"HU_neg_023_b2"\t"HU_neg_124_b2"\t"HU_neg_147_b2"\t"HU_neg_205_b2"\t"HU_neg_084_b2"\t"HU_neg_120_b2"\t"HU_neg_198_b2"\t"QC1_011_b2"\t"HU_neg_045_b2"\t"HU_neg_029_b2"\t"HU_neg_069_b2"\t"HU_neg_155_b2"\t"HU_neg_106_b2"\t"HU_neg_146_b2"\t"HU_neg_128_b2"\t"QC1_012_b2"\n+"M53T345"\t42779.3721121841\t15074.1968224961\t27606.1785823935\t19852.1617880405\t52602.4518881409\t0\t79597.5040896563\t17656.125836332\t14442.9490502211\t138869.981260119\t32761.0927210332\t0\t122734.450361837\t0\t0\t166910.294593527\t156294.989437752\t202048.894588891\t109383.253873075\t0\t62456.6025907225\t39365.5200417267\t111628.134234755\t119125.737447368\t33089.1407089231\t101475.563434966\t0\t50574.1059385567\t97324.7117260035\t45957.8534136242\t0\t81739.3213397075\t68762.047406909\t58300.6616291019\t77304.0740671995\t39891.7167254028\t70113.9653518234\t324095.722803516\t133731.673403656\t75174.3515363374\t55077.1297019528\t97614.4270171876\t16451.936108592\t3356.88223480915\t129051.012407321\t19318.4607431544\t66489.3976696218\t0\t34952.655496657\t104405.718527173\t0\t0\t11376.4990687903\t201363.458875403\t53038.6002706044\t15623.3191735135\t15307.3858104395\t173125.271502381\t39311.9643483841\t42201.3471976341\t125605.094512501\t16850.0458863669\t77027.7156161'..b'4010.315983861\t5266.79917625168\t0\t7597.51546438219\t51561.6956682535\t37548.6933920918\t0\t33291.0445651875\t49732.0512893425\t3822.41876047632\n+"M65T347"\t0\t0\t0\t0\t22816.2146517542\t6711.4124020715\t0\t0\t0\t0\t0\t0\t0\t6827.16107890486\t5776.21918873859\t0\t0\t0\t0\t0\t0\t0\t0\t9192.7543566501\t0\t0\t0\t0\t0\t11298.3924632847\t3768.99515936009\t0\t0\t0\t11753.3843655266\t0\t39505.3248865409\t44269.6919677473\t0\t0\t8826.74729244849\t10724.0333629916\t0\t17517.5709635939\t11418.0855632288\t0\t0\t0\t22145.5919207218\t0\t0\t0\t0\t0\t8079.46865409031\t0\t0\t0\t0\t6648.72096684431\t0\t2736.8090995068\t0\t0\t24725.7135475714\t8079.18710674447\t11010.0936521117\t20035.7811451175\t17369.2800203013\t8357.40711287974\t0\t20195.0508866401\t0\t12493.3412654959\t0\t0\t0\t4612.63714368351\t0\t0\t9892.86309519511\t5619.55058184312\t0\t0\t5350.68060947637\t0\t8636.14255369592\t12850.5108369864\t1648.13392309397\t0\t6903.2091290772\t6011.07903621243\t0\t0\t0\t0\t4625.58362641909\t0\t6200.98290708415\t6014.03938294187\t6673.54666289923\t0\t0\t8770.13891015641\t0\t0\t0\t0\t13287.4583016197\t0\t0\t22979.0834304854\t0\t19493.3858666909\t0\t0\t0\t10183.3393261695\t0\t0\t10960.7706933713\t0\t0\t0\t0\t4119.21194052429\t0\t0\t11040.7493627059\t11212.1058784467\t0\t0\t0\t10079.3953926199\t0\t0\t5919.1069032068\t0\t0\t0\t36253.8846315991\t0\t6331.23425109825\t0\t39727.4700232424\t0\t0\t0\t0\t6404.36785176058\t8828.6867106941\t0\t0\t0\t17464.96634648\t5347.18878889966\t0\t0\t14161.958406247\t7787.6740345106\t0\t0\t10396.7619642628\t10480.0108960802\t15261.2586441881\t0\t0\t4622.68216378012\t0\t0\t0\t5637.51438290188\t0\t19864.0390382923\t8282.52477467977\t17547.9604567919\t0\t0\t0\t0\t0\t8175.36014323213\t0\t10010.4282380581\t0\t0\t0\t0\t29289.3981093544\t0\t0\t21938.3547210825\t0\t20620.3964855394\t0\t0\t0\t12054.7259115614\t0\t3847.01547151388\t0\t0\t0\t5867.66570966062\t5614.02871387193\t0\t0\t8784.04484503412\t5913.52931213673\t9033.61167449966\t11708.6283333598\t0\t0\t18934.8222750162\t0\t14570.4486964372\n+"M65T379"\t0\t0\t0\t0\t18699.5794174405\t0\t2518.8810360068\t0\t0\t7346.10484006272\t0\t0\t0\t0\t0\t2470.25453581087\t9947.04420971702\t3727.7546298617\t7415.56127904845\t3217.50908801231\t21723.2320507327\t0\t0\t54557.3026358469\t11820.4173518051\t31986.0163825779\t1642.95258799276\t0\t18058.5180549033\t10417.6940535011\t0\t27389.1744837152\t13242.1345892031\t0\t15946.2061533074\t0\t13272.6449825391\t34668.3809916985\t16045.2929844237\t15099.3153334144\t6138.67594324735\t14683.3954276462\t0\t9796.42030421765\t0\t0\t0\t0\t0\t25867.1142815881\t0\t0\t1391.13497465257\t0\t0\t0\t0\t24641.6704402189\t0\t0\t0\t0\t9297.80015848825\t18070.6035643595\t0\t0\t6616.13548755258\t20316.8794653808\t7129.36783672944\t0\t8673.01284702543\t0\t4290.09257045895\t1582.15801675308\t0\t0\t1375.71943038973\t0\t0\t1896.82958767271\t0\t0\t17119.8648570023\t0\t0\t0\t6053.88065373166\t4856.12325233303\t0\t9228.1298970727\t0\t1497.05100389418\t2577.74015395784\t0\t0\t0\t6352.48554609922\t0\t11077.865918902\t0\t0\t5596.45496171871\t0\t7117.24643520608\t10798.3158879205\t0\t0\t0\t9461.31604121372\t14199.3585021418\t0\t22420.6026273989\t13036.3674821417\t0\t0\t0\t0\t16338.431612293\t30128.5398162769\t9268.29237998942\t9426.72129038915\t0\t0\t0\t0\t13773.1060226101\t0\t19126.9575814141\t0\t0\t7973.90375953146\t14163.9195082871\t6058.59567913602\t5526.79166264928\t0\t0\t7703.56911077945\t0\t0\t6189.10864971328\t33452.5550298605\t0\t6472.6360666787\t6023.2717943611\t8489.09107955321\t6859.08927536239\t32033.355711207\t68858.3715859043\t0\t11889.5270702665\t10525.6542232235\t5127.7071579\t10223.4945537111\t24424.4591921982\t0\t0\t12102.9343357168\t16053.0465809994\t0\t0\t0\t34820.9455640214\t27132.2013814453\t11818.1286274253\t10032.3132256405\t5218.37212003157\t0\t15667.2971715828\t0\t0\t8287.57520813908\t0\t10726.6628530429\t5392.63789126053\t5977.04799694555\t13938.1183625378\t0\t2821.31995040749\t5911.38388778861\t0\t6540.1917804101\t8082.82735107367\t3951.17455307886\t4063.12730191024\t0\t10168.3310458211\t5889.51019295818\t0\t0\t4971.41734007462\t5243.43228768982\t5066.80476566118\t2773.24200769425\t0\t0\t4801.75130714306\t8928.70455995294\t6895.73126790376\t7824.00410561761\t5110.91012145999\t0\t15920.9256301352\t3715.17058814941\t6549.86367446174\t4400.19406611943\t0\t0\t3969.50604962136\t9284.6508917653\t11279.048542144\t4710.85200800878\t27828.3469400129\t14305.0627750295\t0\t31646.2973611278\t0\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurine/sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurine/sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,217 @@
+sampleMetadata sampleType injectionOrder batch
+QC1_001 pool 14 ne1
+HU_neg_017 sample 17 ne1
+HU_neg_018 sample 18 ne1
+HU_neg_020 sample 19 ne1
+HU_neg_021 sample 20 ne1
+HU_neg_027 sample 22 ne1
+HU_neg_028 sample 23 ne1
+HU_neg_032 sample 25 ne1
+HU_neg_034 sample 26 ne1
+QC1_002 pool 27 ne1
+HU_neg_037 sample 32 ne1
+HU_neg_041 sample 34 ne1
+HU_neg_043 sample 36 ne1
+HU_neg_044 sample 37 ne1
+HU_neg_047 sample 38 ne1
+HU_neg_048 sample 39 ne1
+QC1_003 pool 40 ne1
+HU_neg_049 sample 43 ne1
+HU_neg_050 sample 44 ne1
+HU_neg_051 sample 45 ne1
+HU_neg_052 sample 46 ne1
+HU_neg_055 sample 48 ne1
+HU_neg_059 sample 50 ne1
+HU_neg_060 sample 51 ne1
+HU_neg_061 sample 52 ne1
+QC1_004 pool 53 ne1
+HU_neg_064 sample 57 ne1
+HU_neg_065 sample 58 ne1
+HU_neg_066 sample 59 ne1
+HU_neg_068 sample 60 ne1
+HU_neg_071 sample 61 ne1
+HU_neg_072 sample 62 ne1
+HU_neg_077 sample 64 ne1
+HU_neg_078 sample 65 ne1
+QC1_005 pool 66 ne1
+HU_neg_079 sample 69 ne1
+HU_neg_083 sample 70 ne1
+HU_neg_086 sample 72 ne1
+HU_neg_088 sample 73 ne1
+HU_neg_089 sample 74 ne1
+HU_neg_090 sample 75 ne1
+HU_neg_091 sample 76 ne1
+HU_neg_093 sample 77 ne1
+HU_neg_094 sample 78 ne1
+QC1_006 pool 79 ne1
+HU_neg_099 sample 83 ne1
+HU_neg_100 sample 84 ne1
+HU_neg_101 sample 85 ne1
+HU_neg_105 sample 86 ne1
+HU_neg_107 sample 87 ne1
+HU_neg_108 sample 88 ne1
+HU_neg_109 sample 89 ne1
+HU_neg_110 sample 90 ne1
+HU_neg_111 sample 91 ne1
+QC1_007 pool 92 ne1
+HU_neg_116 sample 96 ne1
+HU_neg_118 sample 98 ne1
+HU_neg_123 sample 100 ne1
+HU_neg_125 sample 102 ne1
+HU_neg_126 sample 103 ne1
+HU_neg_127 sample 104 ne1
+QC1_008 pool 105 ne1
+HU_neg_130 sample 109 ne1
+HU_neg_131 sample 110 ne1
+HU_neg_132 sample 111 ne1
+HU_neg_133 sample 112 ne1
+HU_neg_134 sample 113 ne1
+HU_neg_138 sample 117 ne1
+QC1_009 pool 118 ne1
+HU_neg_144 sample 124 ne1
+HU_neg_148 sample 128 ne1
+HU_neg_149 sample 129 ne1
+HU_neg_150 sample 130 ne1
+QC1_010 pool 131 ne1
+HU_neg_152 sample 134 ne1
+HU_neg_154 sample 135 ne1
+HU_neg_156 sample 136 ne1
+HU_neg_157 sample 137 ne1
+HU_neg_158 sample 138 ne1
+HU_neg_163 sample 140 ne1
+HU_neg_170 sample 142 ne1
+HU_neg_171 sample 143 ne1
+QC1_011 pool 144 ne1
+HU_neg_172 sample 147 ne1
+HU_neg_173 sample 148 ne1
+HU_neg_174 sample 149 ne1
+HU_neg_175 sample 150 ne1
+HU_neg_178 sample 152 ne1
+HU_neg_179 sample 153 ne1
+HU_neg_180 sample 154 ne1
+HU_neg_181 sample 155 ne1
+HU_neg_182 sample 156 ne1
+QC1_012 pool 157 ne1
+HU_neg_184 sample 160 ne1
+HU_neg_185 sample 161 ne1
+HU_neg_186 sample 162 ne1
+HU_neg_189 sample 164 ne1
+HU_neg_192 sample 165 ne1
+HU_neg_196 sample 167 ne1
+QC1_013 pool 171 ne1
+HU_neg_200 sample 174 ne1
+HU_neg_201 sample 175 ne1
+HU_neg_202 sample 176 ne1
+HU_neg_204 sample 177 ne1
+HU_neg_207 sample 179 ne1
+HU_neg_208 sample 180 ne1
+HU_neg_209 sample 181 ne1
+QC1_014 pool 185 ne1
+QC1_001_b2 pool 14 ne2
+HU_neg_022_b2 sample 17 ne2
+HU_neg_076_b2 sample 18 ne2
+HU_neg_166_b2 sample 19 ne2
+HU_neg_114_b2 sample 20 ne2
+HU_neg_190_b2 sample 21 ne2
+HU_neg_139_b2 sample 23 ne2
+HU_neg_096_b2 sample 24 ne2
+HU_neg_058_b2 sample 25 ne2
+HU_neg_031_b2 sample 26 ne2
+QC1_002_b2 pool 27 ne2
+HU_neg_039_b2 sample 30 ne2
+HU_neg_087_b2 sample 32 ne2
+HU_neg_143_b2 sample 33 ne2
+HU_neg_162_b2 sample 34 ne2
+HU_neg_102_b2 sample 35 ne2
+HU_neg_188_b2 sample 37 ne2
+HU_neg_095_b2 sample 38 ne2
+HU_neg_062_b2 sample 39 ne2
+QC1_003_b2 pool 40 ne2
+HU_neg_063_b2 sample 43 ne2
+HU_neg_011_b2 sample 44 ne2
+HU_neg_074_b2 sample 45 ne2
+HU_neg_122_b2 sample 46 ne2
+HU_neg_142_b2 sample 47 ne2
+HU_neg_030_b2 sample 48 ne2
+HU_neg_187_b2 sample 50 ne2
+HU_neg_167_b2 sample 51 ne2
+HU_neg_113_b2 sample 52 ne2
+QC1_004_b2 pool 53 ne2
+HU_neg_081_b2 sample 56 ne2
+HU_neg_014_b2 sample 57 ne2
+HU_neg_206_b2 sample 58 ne2
+HU_neg_119_b2 sample 59 ne2
+HU_neg_033_b2 sample 60 ne2
+HU_neg_067_b2 sample 61 ne2
+HU_neg_140_b2 sample 62 ne2
+HU_neg_164_b2 sample 63 ne2
+HU_neg_193_b2 sample 64 ne2
+HU_neg_112_b2 sample 65 ne2
+QC1_005_b2 pool 66 ne2
+HU_neg_097_b2 sample 69 ne2
+HU_neg_056_b2 sample 70 ne2
+HU_neg_195_b2 sample 71 ne2
+HU_neg_135_b2 sample 72 ne2
+HU_neg_159_b2 sample 73 ne2
+HU_neg_070_b2 sample 76 ne2
+HU_neg_038_b2 sample 77 ne2
+HU_neg_026_b2 sample 78 ne2
+QC1_006_b2 pool 79 ne2
+HU_neg_098_b2 sample 82 ne2
+HU_neg_115_b2 sample 83 ne2
+HU_neg_137_b2 sample 85 ne2
+HU_neg_019_b2 sample 86 ne2
+HU_neg_073_b2 sample 87 ne2
+HU_neg_168_b2 sample 88 ne2
+HU_neg_191_b2 sample 89 ne2
+HU_neg_040_b2 sample 90 ne2
+HU_neg_046_b2 sample 91 ne2
+QC1_007_b2 pool 92 ne2
+HU_neg_103_b2 sample 95 ne2
+HU_neg_015_b2 sample 96 ne2
+HU_neg_053_b2 sample 97 ne2
+HU_neg_121_b2 sample 99 ne2
+HU_neg_183_b2 sample 101 ne2
+HU_neg_199_b2 sample 102 ne2
+HU_neg_042_b2 sample 103 ne2
+HU_neg_075_b2 sample 104 ne2
+QC1_008_b2 pool 105 ne2
+HU_neg_203_b2 sample 108 ne2
+HU_neg_024_b2 sample 109 ne2
+HU_neg_082_b2 sample 110 ne2
+HU_neg_169_b2 sample 111 ne2
+HU_neg_129_b2 sample 112 ne2
+HU_neg_057_b2 sample 113 ne2
+HU_neg_035_b2 sample 114 ne2
+HU_neg_194_b2 sample 115 ne2
+HU_neg_145_b2 sample 116 ne2
+HU_neg_104_b2 sample 117 ne2
+QC1_009_b2 pool 118 ne2
+HU_neg_177_b2 sample 121 ne2
+HU_neg_025_b2 sample 123 ne2
+HU_neg_080_b2 sample 124 ne2
+HU_neg_117_b2 sample 125 ne2
+HU_neg_136_b2 sample 126 ne2
+HU_neg_197_b2 sample 127 ne2
+HU_neg_036_b2 sample 128 ne2
+HU_neg_054_b2 sample 129 ne2
+HU_neg_085_b2 sample 130 ne2
+QC1_010_b2 pool 131 ne2
+HU_neg_160_b2 sample 134 ne2
+HU_neg_092_b2 sample 136 ne2
+HU_neg_023_b2 sample 137 ne2
+HU_neg_124_b2 sample 138 ne2
+HU_neg_147_b2 sample 139 ne2
+HU_neg_205_b2 sample 140 ne2
+HU_neg_084_b2 sample 141 ne2
+HU_neg_120_b2 sample 142 ne2
+HU_neg_198_b2 sample 143 ne2
+QC1_011_b2 pool 144 ne2
+HU_neg_045_b2 sample 148 ne2
+HU_neg_029_b2 sample 149 ne2
+HU_neg_069_b2 sample 150 ne2
+HU_neg_155_b2 sample 151 ne2
+HU_neg_106_b2 sample 154 ne2
+HU_neg_146_b2 sample 155 ne2
+HU_neg_128_b2 sample 156 ne2
+QC1_012_b2 pool 157 ne2
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurine/variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurine/variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,11 @@
+"" "mz" "rt"
+"M53T345" 53.00116493 345.3902643
+"M58T69" 57.97545393 68.67242364
+"M59T246" 59.01359496 246.0306602
+"M59T62" 59.0137118 61.90072933
+"M59T270" 59.01362084 269.6233798
+"M62T56" 61.98819056 55.58308625
+"M64T348" 63.62063447 347.5012693
+"M64T379" 63.62063447 378.9359473
+"M65T347" 64.90244604 347.4115572
+"M65T379" 64.9028817 378.9130758
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurineNegFull/dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurineNegFull/dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,3765 @@\n+dataMatrix\tQC1_001\tHU_neg_017\tHU_neg_018\tHU_neg_020\tHU_neg_021\tHU_neg_027\tHU_neg_028\tHU_neg_032\tHU_neg_034\tQC1_002\tHU_neg_037\tHU_neg_041\tHU_neg_043\tHU_neg_044\tHU_neg_047\tHU_neg_048\tQC1_003\tHU_neg_049\tHU_neg_050\tHU_neg_051\tHU_neg_052\tHU_neg_055\tHU_neg_059\tHU_neg_060\tHU_neg_061\tQC1_004\tHU_neg_064\tHU_neg_065\tHU_neg_066\tHU_neg_068\tHU_neg_071\tHU_neg_072\tHU_neg_077\tHU_neg_078\tQC1_005\tHU_neg_079\tHU_neg_083\tHU_neg_086\tHU_neg_088\tHU_neg_089\tHU_neg_090\tHU_neg_091\tHU_neg_093\tHU_neg_094\tQC1_006\tHU_neg_099\tHU_neg_100\tHU_neg_101\tHU_neg_105\tHU_neg_107\tHU_neg_108\tHU_neg_109\tHU_neg_110\tHU_neg_111\tQC1_007\tHU_neg_116\tHU_neg_118\tHU_neg_123\tHU_neg_125\tHU_neg_126\tHU_neg_127\tQC1_008\tHU_neg_130\tHU_neg_131\tHU_neg_132\tHU_neg_133\tHU_neg_134\tHU_neg_138\tQC1_009\tHU_neg_144\tHU_neg_148\tHU_neg_149\tHU_neg_150\tQC1_010\tHU_neg_152\tHU_neg_154\tHU_neg_156\tHU_neg_157\tHU_neg_158\tHU_neg_163\tHU_neg_170\tHU_neg_171\tQC1_011\tHU_neg_172\tHU_neg_173\tHU_neg_174\tHU_neg_175\tHU_neg_178\tHU_neg_179\tHU_neg_180\tHU_neg_181\tHU_neg_182\tQC1_012\tHU_neg_184\tHU_neg_185\tHU_neg_186\tHU_neg_189\tHU_neg_192\tHU_neg_196\tQC1_013\tHU_neg_200\tHU_neg_201\tHU_neg_202\tHU_neg_204\tHU_neg_207\tHU_neg_208\tHU_neg_209\tQC1_014\tQC1_001_b2\tHU_neg_022_b2\tHU_neg_076_b2\tHU_neg_166_b2\tHU_neg_114_b2\tHU_neg_190_b2\tHU_neg_139_b2\tHU_neg_096_b2\tHU_neg_058_b2\tHU_neg_031_b2\tQC1_002_b2\tHU_neg_039_b2\tHU_neg_087_b2\tHU_neg_143_b2\tHU_neg_162_b2\tHU_neg_102_b2\tHU_neg_188_b2\tHU_neg_095_b2\tHU_neg_062_b2\tQC1_003_b2\tHU_neg_063_b2\tHU_neg_011_b2\tHU_neg_074_b2\tHU_neg_122_b2\tHU_neg_142_b2\tHU_neg_030_b2\tHU_neg_187_b2\tHU_neg_167_b2\tHU_neg_113_b2\tQC1_004_b2\tHU_neg_081_b2\tHU_neg_014_b2\tHU_neg_206_b2\tHU_neg_119_b2\tHU_neg_033_b2\tHU_neg_067_b2\tHU_neg_140_b2\tHU_neg_164_b2\tHU_neg_193_b2\tHU_neg_112_b2\tQC1_005_b2\tHU_neg_097_b2\tHU_neg_056_b2\tHU_neg_195_b2\tHU_neg_135_b2\tHU_neg_159_b2\tHU_neg_070_b2\tHU_neg_038_b2\tHU_neg_026_b2\tQC1_006_b2\tHU_neg_098_b2\tHU_neg_115_b2\tHU_neg_137_b2\tHU_neg_019_b2\tHU_neg_073_b2\tHU_neg_168_b2\tHU_neg_191_b2\tHU_neg_040_b2\tHU_neg_046_b2\tQC1_007_b2\tHU_neg_103_b2\tHU_neg_015_b2\tHU_neg_053_b2\tHU_neg_121_b2\tHU_neg_183_b2\tHU_neg_199_b2\tHU_neg_042_b2\tHU_neg_075_b2\tQC1_008_b2\tHU_neg_203_b2\tHU_neg_024_b2\tHU_neg_082_b2\tHU_neg_169_b2\tHU_neg_129_b2\tHU_neg_057_b2\tHU_neg_035_b2\tHU_neg_194_b2\tHU_neg_145_b2\tHU_neg_104_b2\tQC1_009_b2\tHU_neg_177_b2\tHU_neg_025_b2\tHU_neg_080_b2\tHU_neg_117_b2\tHU_neg_136_b2\tHU_neg_197_b2\tHU_neg_036_b2\tHU_neg_054_b2\tHU_neg_085_b2\tQC1_010_b2\tHU_neg_160_b2\tHU_neg_092_b2\tHU_neg_023_b2\tHU_neg_124_b2\tHU_neg_147_b2\tHU_neg_205_b2\tHU_neg_084_b2\tHU_neg_120_b2\tHU_neg_198_b2\tQC1_011_b2\tHU_neg_045_b2\tHU_neg_029_b2\tHU_neg_069_b2\tHU_neg_155_b2\tHU_neg_106_b2\tHU_neg_146_b2\tHU_neg_128_b2\tQC1_012_b2\n+M53T345\t42779.3721121841\t15074.1968224961\t27606.1785823935\t19852.1617880405\t52602.4518881409\t0\t79597.5040896563\t17656.125836332\t14442.9490502211\t138869.981260119\t32761.0927210332\t0\t122734.450361837\t0\t0\t166910.294593527\t156294.989437752\t202048.894588891\t109383.253873075\t0\t62456.6025907225\t39365.5200417267\t111628.134234755\t119125.737447368\t33089.1407089231\t101475.563434966\t0\t50574.1059385567\t97324.7117260035\t45957.8534136242\t0\t81739.3213397075\t68762.047406909\t58300.6616291019\t77304.0740671995\t39891.7167254028\t70113.9653518234\t324095.722803516\t133731.673403656\t75174.3515363374\t55077.1297019528\t97614.4270171876\t16451.936108592\t3356.88223480915\t129051.012407321\t19318.4607431544\t66489.3976696218\t0\t34952.655496657\t104405.718527173\t0\t0\t11376.4990687903\t201363.458875403\t53038.6002706044\t15623.3191735135\t15307.3858104395\t173125.271502381\t39311.9643483841\t42201.3471976341\t125605.094512501\t16850.0458863669\t77027.7156161627\t63418.8045298051\t57609.2944968765\t0\t0\t26759.0897120217\t41201.5764976749\t60003.2422350001\t71379.8656593745\t140488.02837844\t0\t0\t63904.6422756576\t0\t0\t46444.4472560159\t0\t133050.505744111\t71922.7087055791\t34024.8872562035\t23296.3697971045\t112248.821349943\t7281.80767734402\t80503.9282582037\t116853.454072959\t0\t15715.3656644528\t13501.1750853166\t0\t0\t34790.8383200151\t50903.4631485676\t18178.2822666866\t0\t19291.7543432818\t145864.0'..b'652\t1736.54998333124\t26630.5130567273\t34447.6192657358\t2721.39479725478\t20063.3124286636\t22790.4062505377\t15759.1064960767\t16615.6251962996\t46663.3899968332\t24940.0042792164\t42108.1442654425\t11342.0169928755\t48971.3100715244\t47925.3939427564\t52342.428452448\t4659.66451601056\t38610.0968054224\t36029.3645902509\t44914.4152565709\t13736.4110314566\t30129.2017297407\t0\t15542.2532153029\t34062.803596857\t31712.0656095523\t136186.200159458\t30497.1215522022\t240736.12391289\t26290.0968961246\t50887.2565286465\t25517.5165929329\t5812.20719970453\t20086.5588024179\t25717.6215396361\t150699.845510076\t45749.2857202302\t0\t12026.3062237598\t30666.0836324996\t27272.6291897601\t0\t42790.4491186526\t9263.89736670788\t9628.87487987745\t22254.353784702\t56097.7435969259\t37021.1570491933\t34793.1900174635\t7947.197119657\t12603.7112627351\t22129.5131249809\t31563.4506959462\t13888.2111675536\t23860.3751432875\t44210.9798012693\t27085.9054552736\t37820.9968558589\t13655.6435874282\t28740.6032497018\t21903.9702097995\t18731.3872910893\t0\t0\t21112.0391558496\t28644.6063144284\t0\t47070.2939154779\t12616.169793542\t18281.6892674902\t14058.6720957821\t5718.19736778722\t7028.08327978091\t8387.0657245046\t24446.8510393067\t31059.2215647653\t6027.5462660538\t17618.5688024824\t12456.2266594372\t0\t20768.3067446292\t5916.67592078244\t13362.9979371092\t39025.0250617624\t8694.78415421207\t6464.8029649323\t8624.56386864657\t11547.3545836952\t19086.569002881\t132707.384552217\t2271.09199835272\t15117.9556292723\t11663.2969613008\t14517.8240730574\t31442.3468252319\t14161.3867693846\t10922.7812127148\t17863.1531600937\t5129.12901978715\t0\t143832.599597673\t0\t0\t0\t0\t0\t0\t0\t0\t5582.98971717632\t0\t0\t0\t5919.68587463251\t0\t0\t3833.81755937\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t5265.52075794975\t0\t0\t0\t0\t0\t5594.4500519177\t0\t1397.76986630152\t7503.79748846679\t4397.38474912047\t4786.26178950873\t0\t0\t3363.18418123827\t0\t0\t0\t0\t0\t0\t0\t0\t2141.53574380668\t0\t0\t0\t0\t3173.75773866137\t0\t0\t0\t0\t0\t0\t0\t0\t4945.42463361881\t0\t0\t0\t0\t0\t2743.51886222929\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n+M966T378\t130076.990712944\t34544.0988858725\t138759.454898156\t29260.6658899765\t80950.981179491\t22725.6876765534\t211760.729115487\t70565.3377005916\t33851.7749077705\t12963.6525474603\t61717.829640484\t25810.3512860707\t128880.414657815\t48165.2288978368\t90027.2706175177\t114298.578574763\t9797.93525218411\t52792.8832729734\t17692.0707691707\t18287.8781794477\t70792.3459507311\t20418.6850011997\t77134.951118995\t290883.303878816\t48343.5797882552\t128211.374203016\t45891.2256213928\t152421.808052723\t56444.0220793638\t16589.0959563651\t38125.5636424191\t0\t11730.6708855881\t13060.718499278\t10008.6465725668\t55784.3253261056\t9551.0970753438\t46688.8241480634\t5671.43151686803\t0\t20551.2198233165\t0\t5447.10556748078\t45481.7840492754\t41970.7914821379\t42240.2250675171\t165964.881750309\t3389.97017016122\t58439.3158547725\t21213.6146296775\t26750.1543971155\t38573.2547261451\t97515.3164292101\t94262.2295151594\t138494.734724429\t93684.5031517805\t35753.6104119591\t39808.7301665399\t35083.6140903592\t44519.3248637359\t43752.0698951335\t110773.860240722\t0\t2271.19248383983\t0\t79706.0730725874\t29434.6221478269\t0\t27124.9726801164\t0\t24195.36538949\t0\t0\t22201.7959552441\t92437.3286315465\t58446.6271992182\t452.132223443153\t110325.69649626\t41746.9574921574\t6950.20112333296\t26022.4545829104\t5290.47341101878\t22730.4316439044\t4676.16838121544\t6735.66188813524\t61263.9778549048\t87034.8632131594\t3128.11703619123\t0\t24627.3202432552\t15891.0346555289\t47353.4130704524\t23428.4475273277\t45090.2551318489\t22784.2681206181\t18705.1177583394\t20555.7540548439\t29189.8785462842\t48348.2712526143\t3306.87051616329\t5396.66444336469\t7230.97201527049\t2666.6528568062\t89496.2377350447\t26609.6056674389\t2910.00661101999\t29424.1817376969\t40473.7697363512\t0\t0\t0\t0\t13509.1186215571\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t6049.14906052736\t9628.21333860449\t0\t0\t0\t0\t11404.7350881259\t0\t0\t7444.98522641363\t0\t0\t0\t0\t0\t0\t0\t5170.12070780272\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t9559.02851434078\t0\t0\n'
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurineNegFull/sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurineNegFull/sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,217 @@
+sampleMetadata sampleType injectionOrder batch
+QC1_001 pool 14 ne1
+HU_neg_017 sample 17 ne1
+HU_neg_018 sample 18 ne1
+HU_neg_020 sample 19 ne1
+HU_neg_021 sample 20 ne1
+HU_neg_027 sample 22 ne1
+HU_neg_028 sample 23 ne1
+HU_neg_032 sample 25 ne1
+HU_neg_034 sample 26 ne1
+QC1_002 pool 27 ne1
+HU_neg_037 sample 32 ne1
+HU_neg_041 sample 34 ne1
+HU_neg_043 sample 36 ne1
+HU_neg_044 sample 37 ne1
+HU_neg_047 sample 38 ne1
+HU_neg_048 sample 39 ne1
+QC1_003 pool 40 ne1
+HU_neg_049 sample 43 ne1
+HU_neg_050 sample 44 ne1
+HU_neg_051 sample 45 ne1
+HU_neg_052 sample 46 ne1
+HU_neg_055 sample 48 ne1
+HU_neg_059 sample 50 ne1
+HU_neg_060 sample 51 ne1
+HU_neg_061 sample 52 ne1
+QC1_004 pool 53 ne1
+HU_neg_064 sample 57 ne1
+HU_neg_065 sample 58 ne1
+HU_neg_066 sample 59 ne1
+HU_neg_068 sample 60 ne1
+HU_neg_071 sample 61 ne1
+HU_neg_072 sample 62 ne1
+HU_neg_077 sample 64 ne1
+HU_neg_078 sample 65 ne1
+QC1_005 pool 66 ne1
+HU_neg_079 sample 69 ne1
+HU_neg_083 sample 70 ne1
+HU_neg_086 sample 72 ne1
+HU_neg_088 sample 73 ne1
+HU_neg_089 sample 74 ne1
+HU_neg_090 sample 75 ne1
+HU_neg_091 sample 76 ne1
+HU_neg_093 sample 77 ne1
+HU_neg_094 sample 78 ne1
+QC1_006 pool 79 ne1
+HU_neg_099 sample 83 ne1
+HU_neg_100 sample 84 ne1
+HU_neg_101 sample 85 ne1
+HU_neg_105 sample 86 ne1
+HU_neg_107 sample 87 ne1
+HU_neg_108 sample 88 ne1
+HU_neg_109 sample 89 ne1
+HU_neg_110 sample 90 ne1
+HU_neg_111 sample 91 ne1
+QC1_007 pool 92 ne1
+HU_neg_116 sample 96 ne1
+HU_neg_118 sample 98 ne1
+HU_neg_123 sample 100 ne1
+HU_neg_125 sample 102 ne1
+HU_neg_126 sample 103 ne1
+HU_neg_127 sample 104 ne1
+QC1_008 pool 105 ne1
+HU_neg_130 sample 109 ne1
+HU_neg_131 sample 110 ne1
+HU_neg_132 sample 111 ne1
+HU_neg_133 sample 112 ne1
+HU_neg_134 sample 113 ne1
+HU_neg_138 sample 117 ne1
+QC1_009 pool 118 ne1
+HU_neg_144 sample 124 ne1
+HU_neg_148 sample 128 ne1
+HU_neg_149 sample 129 ne1
+HU_neg_150 sample 130 ne1
+QC1_010 pool 131 ne1
+HU_neg_152 sample 134 ne1
+HU_neg_154 sample 135 ne1
+HU_neg_156 sample 136 ne1
+HU_neg_157 sample 137 ne1
+HU_neg_158 sample 138 ne1
+HU_neg_163 sample 140 ne1
+HU_neg_170 sample 142 ne1
+HU_neg_171 sample 143 ne1
+QC1_011 pool 144 ne1
+HU_neg_172 sample 147 ne1
+HU_neg_173 sample 148 ne1
+HU_neg_174 sample 149 ne1
+HU_neg_175 sample 150 ne1
+HU_neg_178 sample 152 ne1
+HU_neg_179 sample 153 ne1
+HU_neg_180 sample 154 ne1
+HU_neg_181 sample 155 ne1
+HU_neg_182 sample 156 ne1
+QC1_012 pool 157 ne1
+HU_neg_184 sample 160 ne1
+HU_neg_185 sample 161 ne1
+HU_neg_186 sample 162 ne1
+HU_neg_189 sample 164 ne1
+HU_neg_192 sample 165 ne1
+HU_neg_196 sample 167 ne1
+QC1_013 pool 171 ne1
+HU_neg_200 sample 174 ne1
+HU_neg_201 sample 175 ne1
+HU_neg_202 sample 176 ne1
+HU_neg_204 sample 177 ne1
+HU_neg_207 sample 179 ne1
+HU_neg_208 sample 180 ne1
+HU_neg_209 sample 181 ne1
+QC1_014 pool 185 ne1
+QC1_001_b2 pool 14 ne2
+HU_neg_022_b2 sample 17 ne2
+HU_neg_076_b2 sample 18 ne2
+HU_neg_166_b2 sample 19 ne2
+HU_neg_114_b2 sample 20 ne2
+HU_neg_190_b2 sample 21 ne2
+HU_neg_139_b2 sample 23 ne2
+HU_neg_096_b2 sample 24 ne2
+HU_neg_058_b2 sample 25 ne2
+HU_neg_031_b2 sample 26 ne2
+QC1_002_b2 pool 27 ne2
+HU_neg_039_b2 sample 30 ne2
+HU_neg_087_b2 sample 32 ne2
+HU_neg_143_b2 sample 33 ne2
+HU_neg_162_b2 sample 34 ne2
+HU_neg_102_b2 sample 35 ne2
+HU_neg_188_b2 sample 37 ne2
+HU_neg_095_b2 sample 38 ne2
+HU_neg_062_b2 sample 39 ne2
+QC1_003_b2 pool 40 ne2
+HU_neg_063_b2 sample 43 ne2
+HU_neg_011_b2 sample 44 ne2
+HU_neg_074_b2 sample 45 ne2
+HU_neg_122_b2 sample 46 ne2
+HU_neg_142_b2 sample 47 ne2
+HU_neg_030_b2 sample 48 ne2
+HU_neg_187_b2 sample 50 ne2
+HU_neg_167_b2 sample 51 ne2
+HU_neg_113_b2 sample 52 ne2
+QC1_004_b2 pool 53 ne2
+HU_neg_081_b2 sample 56 ne2
+HU_neg_014_b2 sample 57 ne2
+HU_neg_206_b2 sample 58 ne2
+HU_neg_119_b2 sample 59 ne2
+HU_neg_033_b2 sample 60 ne2
+HU_neg_067_b2 sample 61 ne2
+HU_neg_140_b2 sample 62 ne2
+HU_neg_164_b2 sample 63 ne2
+HU_neg_193_b2 sample 64 ne2
+HU_neg_112_b2 sample 65 ne2
+QC1_005_b2 pool 66 ne2
+HU_neg_097_b2 sample 69 ne2
+HU_neg_056_b2 sample 70 ne2
+HU_neg_195_b2 sample 71 ne2
+HU_neg_135_b2 sample 72 ne2
+HU_neg_159_b2 sample 73 ne2
+HU_neg_070_b2 sample 76 ne2
+HU_neg_038_b2 sample 77 ne2
+HU_neg_026_b2 sample 78 ne2
+QC1_006_b2 pool 79 ne2
+HU_neg_098_b2 sample 82 ne2
+HU_neg_115_b2 sample 83 ne2
+HU_neg_137_b2 sample 85 ne2
+HU_neg_019_b2 sample 86 ne2
+HU_neg_073_b2 sample 87 ne2
+HU_neg_168_b2 sample 88 ne2
+HU_neg_191_b2 sample 89 ne2
+HU_neg_040_b2 sample 90 ne2
+HU_neg_046_b2 sample 91 ne2
+QC1_007_b2 pool 92 ne2
+HU_neg_103_b2 sample 95 ne2
+HU_neg_015_b2 sample 96 ne2
+HU_neg_053_b2 sample 97 ne2
+HU_neg_121_b2 sample 99 ne2
+HU_neg_183_b2 sample 101 ne2
+HU_neg_199_b2 sample 102 ne2
+HU_neg_042_b2 sample 103 ne2
+HU_neg_075_b2 sample 104 ne2
+QC1_008_b2 pool 105 ne2
+HU_neg_203_b2 sample 108 ne2
+HU_neg_024_b2 sample 109 ne2
+HU_neg_082_b2 sample 110 ne2
+HU_neg_169_b2 sample 111 ne2
+HU_neg_129_b2 sample 112 ne2
+HU_neg_057_b2 sample 113 ne2
+HU_neg_035_b2 sample 114 ne2
+HU_neg_194_b2 sample 115 ne2
+HU_neg_145_b2 sample 116 ne2
+HU_neg_104_b2 sample 117 ne2
+QC1_009_b2 pool 118 ne2
+HU_neg_177_b2 sample 121 ne2
+HU_neg_025_b2 sample 123 ne2
+HU_neg_080_b2 sample 124 ne2
+HU_neg_117_b2 sample 125 ne2
+HU_neg_136_b2 sample 126 ne2
+HU_neg_197_b2 sample 127 ne2
+HU_neg_036_b2 sample 128 ne2
+HU_neg_054_b2 sample 129 ne2
+HU_neg_085_b2 sample 130 ne2
+QC1_010_b2 pool 131 ne2
+HU_neg_160_b2 sample 134 ne2
+HU_neg_092_b2 sample 136 ne2
+HU_neg_023_b2 sample 137 ne2
+HU_neg_124_b2 sample 138 ne2
+HU_neg_147_b2 sample 139 ne2
+HU_neg_205_b2 sample 140 ne2
+HU_neg_084_b2 sample 141 ne2
+HU_neg_120_b2 sample 142 ne2
+HU_neg_198_b2 sample 143 ne2
+QC1_011_b2 pool 144 ne2
+HU_neg_045_b2 sample 148 ne2
+HU_neg_029_b2 sample 149 ne2
+HU_neg_069_b2 sample 150 ne2
+HU_neg_155_b2 sample 151 ne2
+HU_neg_106_b2 sample 154 ne2
+HU_neg_146_b2 sample 155 ne2
+HU_neg_128_b2 sample 156 ne2
+QC1_012_b2 pool 157 ne2
b
diff -r 000000000000 -r 71d83d8920bf runit/sacurineNegFull/variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runit/sacurineNegFull/variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,3765 @@\n+variableMetadata\tmz\trt\n+M53T345\t53.00116493\t345.3902643\n+M58T69\t57.97545393\t68.67242364\n+M59T246\t59.01359496\t246.0306602\n+M59T62\t59.0137118\t61.90072933\n+M59T270\t59.01362084\t269.6233798\n+M62T56\t61.98819056\t55.58308625\n+M64T348\t63.62063447\t347.5012693\n+M64T379\t63.62063447\t378.9359473\n+M65T347\t64.90244604\t347.4115572\n+M65T379\t64.9028817\t378.9130758\n+M66T348\t65.77665497\t347.9836541\n+M67T271\t67.01890623\t271.4153128\n+M67T348\t67.3765051\t348.2577627\n+M70T346\t69.98660212\t345.6794403\n+M70T380\t69.99090963\t380.4933666\n+M71T55\t70.94593863\t54.71591062\n+M71T64\t71.01366844\t63.73396493\n+M71T87\t71.01358948\t86.92523277\n+M73T55\t72.94294804\t54.75542171\n+M73T63\t72.99307596\t62.51757269\n+M73T62\t73.02944583\t62.47089773\n+M74T314\t74.02451425\t313.6331336\n+M74T367\t74.0247057\t367.0055278\n+M75T59\t75.00870751\t59.07627328\n+M76T348\t75.70279194\t347.8863924\n+M77T60\t77.00647163\t60.38586139\n+M79T348\t78.825445\t347.5720043\n+M79T54\t78.91861957\t54.00523908\n+M79T49\t78.9588594\t49.2836\n+M79T59\t78.98568339\t59.33841385\n+M80T379_1\t79.95715359\t378.7594073\n+M80T64\t80.46413288\t64.47188913\n+M80T348_1\t80.46402616\t347.7639173\n+M80T348_2\t80.47292643\t347.6801198\n+M80T379_2\t80.47386772\t379.011456\n+M80T348_3\t80.48048449\t348.0859004\n+M80T345\t80.49506282\t345.1323767\n+M80T378\t80.49509521\t378.1934282\n+M80T459\t80.49510745\t459.1677208\n+M80T312\t80.49511577\t311.6955972\n+M81T344\t80.9648646\t343.7212635\n+M81T378\t80.96483849\t377.8905566\n+M81T54\t80.97471493\t54.08601949\n+M82T54\t81.9778432\t54.02280491\n+M82T347\t82.14256619\t347.3387321\n+M83T496\t82.79515312\t495.8032296\n+M83T54\t82.97170627\t54.09302687\n+M83T302\t83.04993534\t301.8688285\n+M85T64\t85.02933348\t63.9614\n+M85T336\t85.06565866\t335.8432731\n+M86T348\t86.00543564\t348.1142898\n+M86T347\t86.01745772\t347.3148588\n+M86T378\t86.02069608\t377.938073\n+M87T63_1\t87.00867236\t63.47674397\n+M87T96\t87.00867236\t96.12375876\n+M87T63_2\t87.01851676\t62.92264729\n+M89T80\t89.02407236\t80.42772832\n+M89T380\t89.44064541\t380.4494022\n+M93T52\t92.92757619\t51.5339\n+M93T429\t93.03412879\t428.5477772\n+M93T317\t93.03416144\t316.7849361\n+M93T346\t93.45250499\t345.8070132\n+M93T378\t93.45151938\t378.0687489\n+M93T348\t93.46146022\t347.558573\n+M93T379\t93.4618996\t378.8051162\n+M94T318\t94.03775038\t317.7645185\n+M95T52\t94.92477318\t51.5339\n+M95T343\t95.05001157\t343.2047552\n+M95T314\t95.0498722\t314.179577\n+M97T52_1\t96.92172836\t51.5339\n+M97T61\t96.95981718\t60.90092183\n+M97T52_2\t96.96919814\t52.41750897\n+M97T55\t96.99827479\t55.01853021\n+M97T265\t97.02912402\t264.8616322\n+M98T345\t97.74618255\t345.0821487\n+M98T381\t97.75167469\t380.916267\n+M98T349\t97.75739229\t348.5090637\n+M98T379\t97.76161629\t378.9143251\n+M98T48\t97.95889496\t48.3145\n+M98T374\t98.00676576\t373.9582468\n+M99T61\t98.95541056\t60.91083087\n+M99T316\t99.04474492\t315.8454308\n+M99T295\t99.04485919\t294.8085845\n+M100T291\t100.0036341\t290.803162\n+M100T415\t100.0035933\t415.4985816\n+M100T312\t100.0038469\t312.0350277\n+M100T316\t100.048\t315.6982471\n+M101T379\t100.9017469\t378.741427\n+M101T386\t100.9161546\t386.4437022\n+M101T68\t100.9455921\t68.22400759\n+M101T63\t101.0239539\t63.4646519\n+M101T354\t101.0603052\t353.7142288\n+M101T305\t101.0603052\t304.9361758\n+M102T59\t102.0191834\t59.07076582\n+M102T346\t102.3464433\t346.0070936\n+M102T379_1\t102.3524333\t379.1881277\n+M102T347\t102.3566179\t347.0850151\n+M102T379_2\t102.3614138\t379.0826835\n+M103T51\t102.9564367\t50.74948262\n+M103T46\t102.9884198\t46.2278\n+M103T63\t103.0031848\t63.49270099\n+M103T148\t103.0395372\t148.2422506\n+M104T51_1\t103.9597604\t50.63255535\n+M104T51_2\t104.0347872\t51.31939816\n+M104T148\t104.0428072\t147.740313\n+M105T51\t104.9535299\t50.74814246\n+M105T57\t105.0191111\t57.46362002\n+M107T362\t107.0495737\t362.332354\n+M107T379\t107.0498912\t378.8416154\n+M107T263\t107.060875\t262.6358974\n+M107T345\t107.2813484\t345.3913702\n+M107T348\t107.2909167\t347.9773439\n+M108T420\t107.9322436\t419.8390472\n+M108T351\t107.9313962\t351.096323\n+M108T345\t107.9419116\t344.9645132\n+M108T419\t107.9432612\t418.5393982\n+M108T445\t107.949038\t444.9854269\n+M108T353\t107.9508898\t353.3438568\n+M108T56\t107.9932855\t55.569508\n+M108T334\t108.0214297\t334.3792229\n+M108T378\t108.0533735\t378.3337151'..b'119837\t348.2890749\n+M542T379_2\t541.7153624\t379.3989045\n+M542T348_2\t541.7200327\t347.6050823\n+M542T379_3\t541.7266593\t379.0405178\n+M542T345_3\t541.7358424\t345.0263616\n+M542T445\t542.267967\t445.0611625\n+M542T423\t542.2686381\t422.9212554\n+M542T531\t542.3032864\t531.0855869\n+M543T445\t543.2646211\t444.9450009\n+M543T406\t543.2795212\t406.3674015\n+M544T406\t544.2843813\t406.1535906\n+M545T387\t545.1403512\t386.7240759\n+M549T46\t548.8521775\t46.0274\n+M549T318\t549.1292389\t318.4035367\n+M550T419\t550.2293019\t419.3655221\n+M551T533\t551.2796505\t533.1980703\n+M552T308\t552.1358633\t307.5416282\n+M553T500\t553.2277358\t500.3765495\n+M553T558\t553.295706\t558.3515775\n+M555T439\t555.2816168\t438.5621628\n+M567T382\t567.1717137\t382.2424906\n+M567T500\t567.3173003\t499.7459701\n+M568T382\t568.1756244\t382.1447614\n+M571T335\t571.1120762\t334.6272213\n+M572T389\t572.2518773\t389.1738063\n+M583T357\t583.1590994\t357.2319399\n+M584T346_1\t584.0520932\t345.543254\n+M584T385_1\t584.051922\t385.152162\n+M584T345\t584.0681335\t345.1574408\n+M584T346_3\t584.1075222\t346.2689552\n+M584T348\t584.1268204\t348.216428\n+M584T382_1\t584.1320549\t382.4189953\n+M584T349\t584.1361443\t348.5388305\n+M584T385_2\t584.1437252\t385.4190279\n+M584T350\t584.1455059\t350.2048128\n+M584T347\t584.1727528\t347.3309562\n+M584T379\t584.1707071\t379.1586916\n+M589T415\t589.2402452\t414.7013218\n+M600T412\t600.2847066\t411.942279\n+M601T412\t601.2863317\t411.7217703\n+M605T364\t605.235761\t364.2831244\n+M606T385\t606.230721\t385.0551694\n+M613T489\t613.3597047\t488.6467656\n+M645T346\t644.6009746\t346.4165106\n+M645T345_1\t644.614729\t345.4809555\n+M645T345_2\t644.6271911\t345.0035123\n+M645T385\t644.6411207\t384.558869\n+M645T377\t644.6681799\t376.6597746\n+M645T340\t644.6692701\t339.9882676\n+M645T380_1\t644.6808203\t380.2547607\n+M645T348\t644.6907364\t348.2601186\n+M645T379\t644.6910003\t378.9088877\n+M645T380_2\t644.7017349\t380.262116\n+M645T347\t644.7011359\t347.4563434\n+M655T384\t654.7815778\t383.5116155\n+M655T346_1\t654.7875594\t346.1565999\n+M655T346_2\t654.8071594\t345.8639233\n+M655T347\t654.8696875\t346.6909513\n+M655T362\t654.8818385\t361.9402628\n+M655T349_2\t654.8964561\t348.7160211\n+M655T382\t654.8973722\t382.1923428\n+M655T350\t654.9070269\t350.0995684\n+M655T378\t654.9165305\t378.4444242\n+M661T346\t660.6580288\t345.5840924\n+M661T345\t660.6717624\t344.7805137\n+M661T380_1\t660.6793022\t379.6141126\n+M661T344\t660.6833319\t344.1125548\n+M661T381\t660.6890753\t381.3718139\n+M661T378\t660.698554\t377.7439624\n+M661T347\t660.7024073\t346.9587055\n+M661T379_2\t660.7086232\t378.5116474\n+M661T348_1\t660.7167111\t348.0522195\n+M661T384\t660.7277541\t383.7279892\n+M661T348_2\t660.7237684\t347.7953921\n+M661T64\t660.7282381\t63.9614\n+M661T492\t660.7295192\t492.4464404\n+M661T380_2\t660.7372286\t380.2055844\n+M661T348_3\t660.7411348\t348.4172551\n+M663T496\t663.358254\t495.9995234\n+M664T496\t664.3634922\t495.9656876\n+M665T496\t665.3661014\t495.8250413\n+M675T348\t674.5219245\t347.7732246\n+M691T414\t691.3192375\t413.8259391\n+M739T383\t739.1928352\t383.1075855\n+M739T345\t739.2068735\t345.4818557\n+M739T349\t739.2884463\t348.982097\n+M739T378\t739.2973274\t378.4734957\n+M739T384\t739.311926\t384.1400865\n+M739T350\t739.3219605\t349.5145495\n+M739T385\t739.3255628\t384.6345722\n+M739T415\t739.3302297\t415.4869624\n+M739T381_2\t739.340512\t381.3000948\n+M841T345_1\t841.0622734\t344.9885569\n+M841T360\t841.1058016\t360.2602957\n+M841T348_1\t841.1379379\t347.5290888\n+M841T348_2\t841.1458351\t347.7075958\n+M841T354\t841.1617513\t354.0608329\n+M841T351\t841.1762763\t351.1275027\n+M841T392\t841.1814747\t391.6130259\n+M841T380\t841.2057727\t379.9193309\n+M963T345\t962.9569465\t345.0073295\n+M963T380_1\t962.992191\t379.8706059\n+M963T347_1\t962.9892578\t347.3122238\n+M963T352\t963.0062228\t352.3150208\n+M963T386_1\t963.0174904\t385.8095085\n+M963T382\t963.0394044\t382.4916897\n+M963T348\t963.0528811\t347.8196414\n+M963T347_2\t963.0671308\t347.4335229\n+M963T380_2\t963.0751572\t379.8360573\n+M963T420\t963.0864512\t419.9155059\n+M965T346\t965.4865561\t345.8640232\n+M966T345_1\t965.5367206\t345.0036723\n+M966T384\t965.5657655\t384.1268666\n+M966T359\t965.6006151\t359.1538348\n+M966T350\t965.6326619\t349.9224923\n+M966T387\t965.6345904\t387.0076999\n+M966T378\t965.6652467\t377.5522914\n'
b
diff -r 000000000000 -r 71d83d8920bf static/images/Vdk_pdf1.png
b
Binary file static/images/Vdk_pdf1.png has changed
b
diff -r 000000000000 -r 71d83d8920bf static/images/Vdk_pdf2.png
b
Binary file static/images/Vdk_pdf2.png has changed
b
diff -r 000000000000 -r 71d83d8920bf static/images/batch_correction.png
b
Binary file static/images/batch_correction.png has changed
b
diff -r 000000000000 -r 71d83d8920bf static/images/determine_batch_correction.png
b
Binary file static/images/determine_batch_correction.png has changed
b
diff -r 000000000000 -r 71d83d8920bf static/images/pdf_plotsituation.png
b
Binary file static/images/pdf_plotsituation.png has changed
b
diff -r 000000000000 -r 71d83d8920bf test-data/input-batchcorrection-dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input-batchcorrection-dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,114 @@\n+\tQC1_001\tHU_022\tHU_076\tHU_166\tHU_114\tHU_190\tHU_139\tHU_096\tHU_058\tHU_031\tQC1_002\tHU_039\tHU_087\tHU_143\tHU_162\tHU_102\tHU_188\tHU_095\tHU_062\tQC1_003\tHU_063\tHU_011\tHU_074\tHU_122\tHU_142\tHU_030\tHU_187\tHU_167\tHU_113\tQC1_004\tHU_081\tHU_014\tHU_206\tHU_119\tHU_033\tHU_067\tHU_140\tHU_164\tHU_193\tHU_112\tQC1_005\tHU_097\tHU_056\tHU_195\tHU_135\tHU_159\tHU_070\tHU_038\tHU_026\tQC1_006\tHU_098\tHU_115\tHU_137\tHU_019\tHU_073\tHU_168\tHU_191\tHU_040\tHU_046\tQC1_007\tHU_103\tHU_015\tHU_053\tHU_121\tHU_183\tHU_199\tHU_042\tHU_075\tQC1_008\tHU_203\tHU_024\tHU_082\tHU_169\tHU_129\tHU_057\tHU_035\tHU_194\tHU_145\tHU_104\tQC1_009\tHU_177\tHU_025\tHU_080\tHU_117\tHU_136\tHU_197\tHU_036\tHU_054\tHU_085\tQC1_010\tHU_160\tHU_092\tHU_023\tHU_124\tHU_147\tHU_205\tHU_084\tHU_120\tHU_198\tQC1_011\tHU_045\tHU_029\tHU_069\tHU_155\tHU_106\tHU_146\tHU_128\tQC1_012\n+met_001\t34046147\t29268048\t43765299\t44375419\t50601116\t4832613\t40454119\t8126\t19479962\t11235683\t33064844\t75260138\t36891690\t17466250\t74160059\t32122101\t5238560\t30163448\t10216046\t31450577\t17301601\t11549910\t12734389\t54057483\t3488082\t24301846\t2046492\t23004592\t9579482\t30075694\t7571631\t5257922\t60032654\t15725469\t42794552\t12202672\t10427301\t17332850\t2558158\t66102394\t29666404\t34174908\t36717068\t24271602\t36414651\t37145056\t20074559\t1865267\t5837544\t27608715\t38999155\t21669105\t14372963\t36030678\t24509866\t1906953\t15589584\t18219005\t25991397\t25068509\t21518123\t17608775\t6613249\t4124652\t30008362\t7839717\t16104411\t36946332\t23198059\t6151472\t23334545\t18392766\t27331396\t30774819\t18461787\t42246522\t20479189\t28817403\t27674313\t21703591\t17170407\t13809778\t11188751\t14478896\t8256694\t2771227\t47261207\t21462355\t24438964\t19424590\t379608\t17107855\t14512991\t31446516\t24437179\t18499953\t16786178\t1370420\t23336305\t18279598\t9162668\t29590881\t24605602\t13020657\t30919250\t16843645\t42298126\t15320951\n+met_002\t25505104\t13027974\t32763597\t34730095\t33371485\t1895066\t27495574\t59974\t13416309\t7415642\t23483152\t56144021\t29010226\t13269573\t61487618\t21195395\t3379894\t23790609\t4902552\t23924391\t10425200\t5914542\t10652705\t32854120\t835047\t13453508\t1274458\t22515044\t4126230\t22230978\t1786393\t3285537\t42606906\t22882567\t35048135\t9125465\t3968320\t10918248\t2767218\t40862097\t20287479\t21966458\t30969969\t17039420\t20122412\t28288256\t13281775\t1926605\t10855072\t19582666\t28740009\t14276670\t8544427\t28305898\t17921960\t1108003\t15397507\t12237865\t16183896\t17724624\t12764878\t19325552\t5978795\t2327941\t19932606\t3940696\t8131604\t27569944\t16730669\t4383418\t15424544\t10734487\t33257422\t21428567\t10875162\t33291902\t12687175\t13724743\t17750641\t15859004\t7722135\t10212514\t5089001\t10323782\t5299453\t529447\t39682428\t18277950\t17763884\t14171656\t997710\t14321798\t12297861\t15992338\t26897819\t12146700\t13597912\t256757\t14051155\t13070239\t6274244\t20895482\t17767113\t13249946\t20766019\t15026075\t25876196\t11032203\n+met_003\t5892635\t10312094\t7821772\t11024697\t11099724\t211356\t15572436\tNA\t5081385\t1287012\t7083236\t11463946\t10268577\t3466442\t16572946\t7596396\t515301\t5605033\t1166691\t6692258\t5258935\t1120354\t2768153\t17622620\t100138\t5657045\t155546\t3993478\t895432\t6630262\t1160086\t1398006\t20292345\t8345069\t9496638\t2281112\t1622765\t559527\t1169164\t24371841\t6010179\t5988080\t6808771\t4430121\t6994393\t13311751\t5318285\t783176\t353306\t5788416\t6714250\t6043357\t3119950\t4761136\t4840500\t316705\t2576605\t4562242\t7534703\t5546336\t3149195\t2525989\t2463379\t413059\t4398279\t855987\t2243033\t6719671\t4189278\t1103830\t3718953\t5441941\t4324385\t9454992\t5764607\t7703610\t7439304\t5651876\t5810300\t4075671\t5884945\t2071030\t822119\t2324725\t1072516\t75496\t15134893\t4124869\t5293399\t3395800\tNA\t2578641\t5179943\t5878251\t8146783\t4702730\t2191032\t34289\t4192685\t3234808\t2907002\t8592351\t5858938\t1541012\t10652067\t3600540\t11259836\t2932946\n+met_004\t22027726\t28338717\t19767257\t776755\t29237805\t551519\t43361691\t17669\t24178241\t2483160\t22961817\t36696085\t29568489\t12694039\t38098794\t28957490\t4548936\t21546827\t8439927\t23754498\t19390563\t2410036\t15610073\t48462830\t743472\t12281479\t957970\t22957209\t3382722\t23184843\t3152846\t6026857\t29934738\t37430772\t28469408\t6392048\t3956769\t18521915\t6448619\t58495251\t21643123\t15824960\t24311549\t14867509\t14415999\t39238537\t19313537\t4269597\t14077517\t20163043\t27340905\t24'..b'491\t31448100\t34659066\t28767624\t25600071\t15859089\t27835970\t27390922\t41203737\t20498119\t24452585\t19528858\t38827573\t19668360\t36226070\t20834484\t23959078\t24861056\t26613170\t19267218\t29521876\t24702382\t22611875\t27200384\t24013133\t8211817\t19321158\t25053327\t21309585\t26111146\t22752518\t23678180\t14152377\t18368970\t20070120\t25344880\t23708432\t24308059\t21954805\t17310020\t15790465\t18113923\t15887568\t21212232\t24847089\t26846871\t21379272\t16591716\t20216215\t26495026\t9555821\t25623659\t22300532\t19302590\t32540833\t38044859\t18732489\t20874060\t25502870\t19077479\t27777050\t38317810\t11205446\t23184858\t22056757\t19844415\t20832666\t18822607\t22767829\t20416588\t14459562\t18594833\t20083706\t24380208\t11525928\t16313321\t14407791\t17369758\t14005534\t14258891\t13852000\t11087898\t24969299\t15806268\t16899211\t15920144\n+met_110\t935810\t216794\t1250664\t961929\t322675\t358002\t748600\t1860981\t1018669\t502991\t684506\t319659\t372075\t435408\t271584\t134703\t303433\t660710\t497665\t545837\t562326\t294841\t768892\t810960\t1051193\t334380\t415293\t274518\t1024104\t541427\t301845\t328083\t257992\t599182\t440881\t228402\t425882\t556153\t473391\t796559\t433075\t637036\t502610\t252290\t878377\t318451\t806407\t240703\t431264\t364408\t432337\t490946\t495207\t557849\t481367\t240800\t239131\t552620\t296097\t325675\t299775\t538890\t129963\t202343\t159717\t524611\t659238\t837602\t401479\t347983\t286154\t405225\t113652\t522101\t168009\t185467\t508620\t217008\t189382\t300949\t181027\t293385\t593884\t707190\t86552\t667494\t119244\t290894\t850008\t307178\t409093\t223301\t101862\t205697\t38427\t209271\t69666\t182736\t247482\t273165\t123847\t387771\t325480\t44799\t104296\t295313\t155240\t212170\n+met_111\t1043674\t783394\t569047\t2884257\t2457038\t2025231\t2245847\tNA\t576988\t636282\t1109803\t511108\t1986572\t950755\t453817\t673562\t345902\t1199314\t673490\t1088285\t1650159\t548818\t673318\t1350162\t1955525\t740092\t273505\t467277\t2262955\t1064977\t2870714\t199436\t422478\t991340\t2525718\t798722\t179006\t619100\t874665\t3040034\t996244\t329299\t679032\t733260\t2162571\t528686\t219519\t138708\t740267\t940086\t736191\t703043\t1639741\t433247\t2081907\t705395\t1089016\t1249615\t789518\t854281\t424305\t719392\t258294\t813349\t666412\t1123188\t524519\t910137\t742428\t1482493\t1050502\t1019270\t846205\t398868\t409318\t832274\t122817\t1372087\t902737\t753444\t1261485\t1138611\t1159395\t680881\t111575\t2005973\t748730\t797783\t815843\t601216\t897182\t1159520\t207899\t606512\t1051255\t493530\t299954\t651714\t315358\t558515\t255169\t338669\t832857\t218229\t649477\t415127\t1274096\t494555\n+met_112\t6419071\t2797128\t4299074\t11909792\t6115103\t3096009\t8035572\tNA\t3259089\t6395447\t5049944\t4099603\t7256757\t5080926\t3738872\t2566634\t1719671\t4297409\t5324570\t4873112\t7648125\t1910687\t5439846\t4340784\t7283405\t3178504\t1547866\t3074074\t6191537\t4916409\t8943211\t1784458\t4200543\t4136622\t7786416\t4378240\t2608290\t2992852\t4462941\t9689440\t4286272\t2686538\t2745539\t4160961\t7108278\t2547671\t2212921\t992136\t3451416\t4253840\t4661221\t2464180\t4009317\t3451266\t9045261\t2681403\t3260592\t5840008\t2611730\t4002414\t3128586\t4061269\t875155\t2993219\t4222945\t4810052\t3599437\t6386359\t4087475\t5853004\t2845191\t5015241\t5255266\t2977940\t4272008\t7251435\t3019276\t3081894\t2290972\t3841186\t3298124\t3942297\t7512978\t3936963\t796120\t7537291\t3841541\t4596420\t5044950\t3496643\t2341361\t6304734\t1369143\t4345921\t3364143\t3282371\t2017426\t2744678\t5320910\t3371583\t1340912\t2186105\t3792760\t2150395\t4931386\t2886649\t3159267\t2835997\n+met_113\t1351348\t1546452\t704498\t1178543\t1910776\t2419982\t1730728\tNA\t1518760\t1292032\t1333917\t1256258\t974162\t519797\t2540508\t976266\t328769\t1916054\t1273384\t1345103\t2028673\t740657\t1759018\t2037601\t1797824\t1183570\t281005\t210403\t2013482\t1157284\t2890251\t473682\t1397064\t922962\t1608440\t785419\t836119\t552727\t996652\t1314640\t1080507\t941223\t1069492\t492963\t1146686\t413720\t1146636\t106708\t428730\t1153669\t682704\t1685395\t1027646\t673104\t762161\t230163\t984144\t741438\t962147\t954327\t887638\t721180\t215275\t364352\t353548\t991113\t1975188\t1308883\t919371\t525484\t489779\t945717\t86415\t409383\t910262\t1155717\t1527056\t1552890\t374555\t863254\t831837\t632228\t1534291\t1054678\t104907\t1181832\t570191\t1181392\t710672\t765250\t157618\t799343\t352504\t730991\t12561534\t1127759\t317084\t828816\t772629\t761105\t256288\t491981\t517417\t208846\t2334220\t563581\t849860\t654635\n'
b
diff -r 000000000000 -r 71d83d8920bf test-data/input-batchcorrection-sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input-batchcorrection-sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,109 @@
+ injectionOrder sampleType batch
+QC1_001 1 pool b1
+HU_022 2 sample b1
+HU_076 3 sample b1
+HU_166 4 sample b1
+HU_114 5 sample b1
+HU_190 6 sample b1
+HU_139 7 sample b1
+HU_096 8 sample b1
+HU_058 9 sample b1
+HU_031 10 sample b1
+QC1_002 11 pool b1
+HU_039 12 sample b1
+HU_087 13 sample b1
+HU_143 14 sample b1
+HU_162 15 sample b1
+HU_102 16 sample b1
+HU_188 17 sample b1
+HU_095 18 sample b1
+HU_062 19 sample b1
+QC1_003 20 pool b1
+HU_063 21 sample b1
+HU_011 22 sample b1
+HU_074 23 sample b1
+HU_122 24 sample b1
+HU_142 25 sample b1
+HU_030 26 sample b1
+HU_187 27 sample b1
+HU_167 28 sample b1
+HU_113 29 sample b1
+QC1_004 30 pool b1
+HU_081 31 sample b1
+HU_014 32 sample b1
+HU_206 33 sample b1
+HU_119 34 sample b1
+HU_033 35 sample b1
+HU_067 36 sample b1
+HU_140 37 sample b1
+HU_164 38 sample b1
+HU_193 39 sample b1
+HU_112 40 sample b1
+QC1_005 41 pool b1
+HU_097 42 sample b1
+HU_056 43 sample b1
+HU_195 44 sample b1
+HU_135 45 sample b1
+HU_159 46 sample b1
+HU_070 47 sample b1
+HU_038 48 sample b1
+HU_026 49 sample b1
+QC1_006 50 pool b1
+HU_098 51 sample b1
+HU_115 52 sample b1
+HU_137 53 sample b1
+HU_019 54 sample b1
+HU_073 55 sample b1
+HU_168 56 sample b1
+HU_191 57 sample b1
+HU_040 58 sample b1
+HU_046 59 sample b1
+QC1_007 60 pool b1
+HU_103 61 sample b1
+HU_015 62 sample b1
+HU_053 63 sample b1
+HU_121 64 sample b1
+HU_183 65 sample b1
+HU_199 66 sample b1
+HU_042 67 sample b1
+HU_075 68 sample b1
+QC1_008 69 pool b1
+HU_203 70 sample b1
+HU_024 71 sample b1
+HU_082 72 sample b1
+HU_169 73 sample b1
+HU_129 74 sample b1
+HU_057 75 sample b1
+HU_035 76 sample b1
+HU_194 77 sample b1
+HU_145 78 sample b1
+HU_104 79 sample b1
+QC1_009 80 pool b1
+HU_177 81 sample b1
+HU_025 82 sample b1
+HU_080 83 sample b1
+HU_117 84 sample b1
+HU_136 85 sample b1
+HU_197 86 sample b1
+HU_036 87 sample b1
+HU_054 88 sample b1
+HU_085 89 sample b1
+QC1_010 90 pool b1
+HU_160 91 sample b1
+HU_092 92 sample b1
+HU_023 93 sample b1
+HU_124 94 sample b1
+HU_147 95 sample b1
+HU_205 96 sample b1
+HU_084 97 sample b1
+HU_120 98 sample b1
+HU_198 99 sample b1
+QC1_011 100 pool b1
+HU_045 101 sample b1
+HU_029 102 sample b1
+HU_069 103 sample b1
+HU_155 104 sample b1
+HU_106 105 sample b1
+HU_146 106 sample b1
+HU_128 107 sample b1
+QC1_012 108 pool b1
b
diff -r 000000000000 -r 71d83d8920bf test-data/input-batchcorrection-variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input-batchcorrection-variableMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,114 @@
+ number MSI_level
+met_001 1 1
+met_002 2 1
+met_003 3 1
+met_004 4 1
+met_005 5 2
+met_006 6 1
+met_007 7 1
+met_008 8 1
+met_009 9 1
+met_010 10 1
+met_011 11 2
+met_012 12 1
+met_013 13 1
+met_014 14 1
+met_015 15 1
+met_016 16 1
+met_017 17 2
+met_018 18 1
+met_019 19 1
+met_020 20 1
+met_021 21 1
+met_022 22 2
+met_023 23 1
+met_024 24 2
+met_025 25 2
+met_026 26 1
+met_027 27 1
+met_028 28 1
+met_029 29 1
+met_030 30 2
+met_031 31 1
+met_032 32 2
+met_033 33 1
+met_034 34 1
+met_035 35 2
+met_036 36 1
+met_037 37 2
+met_038 38 2
+met_039 39 2
+met_040 40 2
+met_041 41 1
+met_042 42 1
+met_043 43 2
+met_044 44 2
+met_045 45 1
+met_046 46 1
+met_047 47 2
+met_048 48 1
+met_049 49 1
+met_050 50 1
+met_051 51 2
+met_052 52 2
+met_053 53 1
+met_054 54 2
+met_055 55 2
+met_056 56 2
+met_057 57 2
+met_058 58 1
+met_059 59 2
+met_060 60 2
+met_061 61 2
+met_062 62 2
+met_063 63 2
+met_064 64 1
+met_065 65 1
+met_066 66 2
+met_067 67 2
+met_068 68 2
+met_069 69 1
+met_070 70 2
+met_071 71 2
+met_072 72 2
+met_073 73 1
+met_074 74 1
+met_075 75 1
+met_076 76 2
+met_077 77 2
+met_078 78 2
+met_079 79 2
+met_080 80 2
+met_081 81 2
+met_082 82 1
+met_083 83 1
+met_084 84 1
+met_085 85 1
+met_086 86 1
+met_087 87 1
+met_088 88 2
+met_089 89 2
+met_090 90 1
+met_091 91 1
+met_092 92 1
+met_093 93 2
+met_094 94 2
+met_095 95 2
+met_096 96 1
+met_097 97 1
+met_098 98 2
+met_099 99 2
+met_100 100 2
+met_101 101 1
+met_102 102 1
+met_103 103 1
+met_104 104 1
+met_105 105 2
+met_106 106 1
+met_107 107 2
+met_108 108 2
+met_109 109 2
+met_110 110 1
+met_111 111 2
+met_112 112 2
+met_113 113 1
b
diff -r 000000000000 -r 71d83d8920bf test-data/input-determinebc-dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input-determinebc-dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,11 @@\n+""\t"QC1_001"\t"HU_neg_017"\t"HU_neg_018"\t"HU_neg_020"\t"HU_neg_021"\t"HU_neg_027"\t"HU_neg_028"\t"HU_neg_032"\t"HU_neg_034"\t"QC1_002"\t"HU_neg_037"\t"HU_neg_041"\t"HU_neg_043"\t"HU_neg_044"\t"HU_neg_047"\t"HU_neg_048"\t"QC1_003"\t"HU_neg_049"\t"HU_neg_050"\t"HU_neg_051"\t"HU_neg_052"\t"HU_neg_055"\t"HU_neg_059"\t"HU_neg_060"\t"HU_neg_061"\t"QC1_004"\t"HU_neg_064"\t"HU_neg_065"\t"HU_neg_066"\t"HU_neg_068"\t"HU_neg_071"\t"HU_neg_072"\t"HU_neg_077"\t"HU_neg_078"\t"QC1_005"\t"HU_neg_079"\t"HU_neg_083"\t"HU_neg_086"\t"HU_neg_088"\t"HU_neg_089"\t"HU_neg_090"\t"HU_neg_091"\t"HU_neg_093"\t"HU_neg_094"\t"QC1_006"\t"HU_neg_099"\t"HU_neg_100"\t"HU_neg_101"\t"HU_neg_105"\t"HU_neg_107"\t"HU_neg_108"\t"HU_neg_109"\t"HU_neg_110"\t"HU_neg_111"\t"QC1_007"\t"HU_neg_116"\t"HU_neg_118"\t"HU_neg_123"\t"HU_neg_125"\t"HU_neg_126"\t"HU_neg_127"\t"QC1_008"\t"HU_neg_130"\t"HU_neg_131"\t"HU_neg_132"\t"HU_neg_133"\t"HU_neg_134"\t"HU_neg_138"\t"QC1_009"\t"HU_neg_144"\t"HU_neg_148"\t"HU_neg_149"\t"HU_neg_150"\t"QC1_010"\t"HU_neg_152"\t"HU_neg_154"\t"HU_neg_156"\t"HU_neg_157"\t"HU_neg_158"\t"HU_neg_163"\t"HU_neg_170"\t"HU_neg_171"\t"QC1_011"\t"HU_neg_172"\t"HU_neg_173"\t"HU_neg_174"\t"HU_neg_175"\t"HU_neg_178"\t"HU_neg_179"\t"HU_neg_180"\t"HU_neg_181"\t"HU_neg_182"\t"QC1_012"\t"HU_neg_184"\t"HU_neg_185"\t"HU_neg_186"\t"HU_neg_189"\t"HU_neg_192"\t"HU_neg_196"\t"QC1_013"\t"HU_neg_200"\t"HU_neg_201"\t"HU_neg_202"\t"HU_neg_204"\t"HU_neg_207"\t"HU_neg_208"\t"HU_neg_209"\t"QC1_014"\t"QC1_001_b2"\t"HU_neg_022_b2"\t"HU_neg_076_b2"\t"HU_neg_166_b2"\t"HU_neg_114_b2"\t"HU_neg_190_b2"\t"HU_neg_139_b2"\t"HU_neg_096_b2"\t"HU_neg_058_b2"\t"HU_neg_031_b2"\t"QC1_002_b2"\t"HU_neg_039_b2"\t"HU_neg_087_b2"\t"HU_neg_143_b2"\t"HU_neg_162_b2"\t"HU_neg_102_b2"\t"HU_neg_188_b2"\t"HU_neg_095_b2"\t"HU_neg_062_b2"\t"QC1_003_b2"\t"HU_neg_063_b2"\t"HU_neg_011_b2"\t"HU_neg_074_b2"\t"HU_neg_122_b2"\t"HU_neg_142_b2"\t"HU_neg_030_b2"\t"HU_neg_187_b2"\t"HU_neg_167_b2"\t"HU_neg_113_b2"\t"QC1_004_b2"\t"HU_neg_081_b2"\t"HU_neg_014_b2"\t"HU_neg_206_b2"\t"HU_neg_119_b2"\t"HU_neg_033_b2"\t"HU_neg_067_b2"\t"HU_neg_140_b2"\t"HU_neg_164_b2"\t"HU_neg_193_b2"\t"HU_neg_112_b2"\t"QC1_005_b2"\t"HU_neg_097_b2"\t"HU_neg_056_b2"\t"HU_neg_195_b2"\t"HU_neg_135_b2"\t"HU_neg_159_b2"\t"HU_neg_070_b2"\t"HU_neg_038_b2"\t"HU_neg_026_b2"\t"QC1_006_b2"\t"HU_neg_098_b2"\t"HU_neg_115_b2"\t"HU_neg_137_b2"\t"HU_neg_019_b2"\t"HU_neg_073_b2"\t"HU_neg_168_b2"\t"HU_neg_191_b2"\t"HU_neg_040_b2"\t"HU_neg_046_b2"\t"QC1_007_b2"\t"HU_neg_103_b2"\t"HU_neg_015_b2"\t"HU_neg_053_b2"\t"HU_neg_121_b2"\t"HU_neg_183_b2"\t"HU_neg_199_b2"\t"HU_neg_042_b2"\t"HU_neg_075_b2"\t"QC1_008_b2"\t"HU_neg_203_b2"\t"HU_neg_024_b2"\t"HU_neg_082_b2"\t"HU_neg_169_b2"\t"HU_neg_129_b2"\t"HU_neg_057_b2"\t"HU_neg_035_b2"\t"HU_neg_194_b2"\t"HU_neg_145_b2"\t"HU_neg_104_b2"\t"QC1_009_b2"\t"HU_neg_177_b2"\t"HU_neg_025_b2"\t"HU_neg_080_b2"\t"HU_neg_117_b2"\t"HU_neg_136_b2"\t"HU_neg_197_b2"\t"HU_neg_036_b2"\t"HU_neg_054_b2"\t"HU_neg_085_b2"\t"QC1_010_b2"\t"HU_neg_160_b2"\t"HU_neg_092_b2"\t"HU_neg_023_b2"\t"HU_neg_124_b2"\t"HU_neg_147_b2"\t"HU_neg_205_b2"\t"HU_neg_084_b2"\t"HU_neg_120_b2"\t"HU_neg_198_b2"\t"QC1_011_b2"\t"HU_neg_045_b2"\t"HU_neg_029_b2"\t"HU_neg_069_b2"\t"HU_neg_155_b2"\t"HU_neg_106_b2"\t"HU_neg_146_b2"\t"HU_neg_128_b2"\t"QC1_012_b2"\n+"M53T345"\t42779.3721121841\t15074.1968224961\t27606.1785823935\t19852.1617880405\t52602.4518881409\t0\t79597.5040896563\t17656.125836332\t14442.9490502211\t138869.981260119\t32761.0927210332\t0\t122734.450361837\t0\t0\t166910.294593527\t156294.989437752\t202048.894588891\t109383.253873075\t0\t62456.6025907225\t39365.5200417267\t111628.134234755\t119125.737447368\t33089.1407089231\t101475.563434966\t0\t50574.1059385567\t97324.7117260035\t45957.8534136242\t0\t81739.3213397075\t68762.047406909\t58300.6616291019\t77304.0740671995\t39891.7167254028\t70113.9653518234\t324095.722803516\t133731.673403656\t75174.3515363374\t55077.1297019528\t97614.4270171876\t16451.936108592\t3356.88223480915\t129051.012407321\t19318.4607431544\t66489.3976696218\t0\t34952.655496657\t104405.718527173\t0\t0\t11376.4990687903\t201363.458875403\t53038.6002706044\t15623.3191735135\t15307.3858104395\t173125.271502381\t39311.9643483841\t42201.3471976341\t125605.094512501\t16850.0458863669\t77027.7156161'..b'4010.315983861\t5266.79917625168\t0\t7597.51546438219\t51561.6956682535\t37548.6933920918\t0\t33291.0445651875\t49732.0512893425\t3822.41876047632\n+"M65T347"\t0\t0\t0\t0\t22816.2146517542\t6711.4124020715\t0\t0\t0\t0\t0\t0\t0\t6827.16107890486\t5776.21918873859\t0\t0\t0\t0\t0\t0\t0\t0\t9192.7543566501\t0\t0\t0\t0\t0\t11298.3924632847\t3768.99515936009\t0\t0\t0\t11753.3843655266\t0\t39505.3248865409\t44269.6919677473\t0\t0\t8826.74729244849\t10724.0333629916\t0\t17517.5709635939\t11418.0855632288\t0\t0\t0\t22145.5919207218\t0\t0\t0\t0\t0\t8079.46865409031\t0\t0\t0\t0\t6648.72096684431\t0\t2736.8090995068\t0\t0\t24725.7135475714\t8079.18710674447\t11010.0936521117\t20035.7811451175\t17369.2800203013\t8357.40711287974\t0\t20195.0508866401\t0\t12493.3412654959\t0\t0\t0\t4612.63714368351\t0\t0\t9892.86309519511\t5619.55058184312\t0\t0\t5350.68060947637\t0\t8636.14255369592\t12850.5108369864\t1648.13392309397\t0\t6903.2091290772\t6011.07903621243\t0\t0\t0\t0\t4625.58362641909\t0\t6200.98290708415\t6014.03938294187\t6673.54666289923\t0\t0\t8770.13891015641\t0\t0\t0\t0\t13287.4583016197\t0\t0\t22979.0834304854\t0\t19493.3858666909\t0\t0\t0\t10183.3393261695\t0\t0\t10960.7706933713\t0\t0\t0\t0\t4119.21194052429\t0\t0\t11040.7493627059\t11212.1058784467\t0\t0\t0\t10079.3953926199\t0\t0\t5919.1069032068\t0\t0\t0\t36253.8846315991\t0\t6331.23425109825\t0\t39727.4700232424\t0\t0\t0\t0\t6404.36785176058\t8828.6867106941\t0\t0\t0\t17464.96634648\t5347.18878889966\t0\t0\t14161.958406247\t7787.6740345106\t0\t0\t10396.7619642628\t10480.0108960802\t15261.2586441881\t0\t0\t4622.68216378012\t0\t0\t0\t5637.51438290188\t0\t19864.0390382923\t8282.52477467977\t17547.9604567919\t0\t0\t0\t0\t0\t8175.36014323213\t0\t10010.4282380581\t0\t0\t0\t0\t29289.3981093544\t0\t0\t21938.3547210825\t0\t20620.3964855394\t0\t0\t0\t12054.7259115614\t0\t3847.01547151388\t0\t0\t0\t5867.66570966062\t5614.02871387193\t0\t0\t8784.04484503412\t5913.52931213673\t9033.61167449966\t11708.6283333598\t0\t0\t18934.8222750162\t0\t14570.4486964372\n+"M65T379"\t0\t0\t0\t0\t18699.5794174405\t0\t2518.8810360068\t0\t0\t7346.10484006272\t0\t0\t0\t0\t0\t2470.25453581087\t9947.04420971702\t3727.7546298617\t7415.56127904845\t3217.50908801231\t21723.2320507327\t0\t0\t54557.3026358469\t11820.4173518051\t31986.0163825779\t1642.95258799276\t0\t18058.5180549033\t10417.6940535011\t0\t27389.1744837152\t13242.1345892031\t0\t15946.2061533074\t0\t13272.6449825391\t34668.3809916985\t16045.2929844237\t15099.3153334144\t6138.67594324735\t14683.3954276462\t0\t9796.42030421765\t0\t0\t0\t0\t0\t25867.1142815881\t0\t0\t1391.13497465257\t0\t0\t0\t0\t24641.6704402189\t0\t0\t0\t0\t9297.80015848825\t18070.6035643595\t0\t0\t6616.13548755258\t20316.8794653808\t7129.36783672944\t0\t8673.01284702543\t0\t4290.09257045895\t1582.15801675308\t0\t0\t1375.71943038973\t0\t0\t1896.82958767271\t0\t0\t17119.8648570023\t0\t0\t0\t6053.88065373166\t4856.12325233303\t0\t9228.1298970727\t0\t1497.05100389418\t2577.74015395784\t0\t0\t0\t6352.48554609922\t0\t11077.865918902\t0\t0\t5596.45496171871\t0\t7117.24643520608\t10798.3158879205\t0\t0\t0\t9461.31604121372\t14199.3585021418\t0\t22420.6026273989\t13036.3674821417\t0\t0\t0\t0\t16338.431612293\t30128.5398162769\t9268.29237998942\t9426.72129038915\t0\t0\t0\t0\t13773.1060226101\t0\t19126.9575814141\t0\t0\t7973.90375953146\t14163.9195082871\t6058.59567913602\t5526.79166264928\t0\t0\t7703.56911077945\t0\t0\t6189.10864971328\t33452.5550298605\t0\t6472.6360666787\t6023.2717943611\t8489.09107955321\t6859.08927536239\t32033.355711207\t68858.3715859043\t0\t11889.5270702665\t10525.6542232235\t5127.7071579\t10223.4945537111\t24424.4591921982\t0\t0\t12102.9343357168\t16053.0465809994\t0\t0\t0\t34820.9455640214\t27132.2013814453\t11818.1286274253\t10032.3132256405\t5218.37212003157\t0\t15667.2971715828\t0\t0\t8287.57520813908\t0\t10726.6628530429\t5392.63789126053\t5977.04799694555\t13938.1183625378\t0\t2821.31995040749\t5911.38388778861\t0\t6540.1917804101\t8082.82735107367\t3951.17455307886\t4063.12730191024\t0\t10168.3310458211\t5889.51019295818\t0\t0\t4971.41734007462\t5243.43228768982\t5066.80476566118\t2773.24200769425\t0\t0\t4801.75130714306\t8928.70455995294\t6895.73126790376\t7824.00410561761\t5110.91012145999\t0\t15920.9256301352\t3715.17058814941\t6549.86367446174\t4400.19406611943\t0\t0\t3969.50604962136\t9284.6508917653\t11279.048542144\t4710.85200800878\t27828.3469400129\t14305.0627750295\t0\t31646.2973611278\t0\n'
b
diff -r 000000000000 -r 71d83d8920bf test-data/input-determinebc-sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input-determinebc-sampleMetadata.tsv Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,217 @@
+sampleMetadata sampleType injectionOrder batch
+QC1_001 pool 14 ne1
+HU_neg_017 sample 17 ne1
+HU_neg_018 sample 18 ne1
+HU_neg_020 sample 19 ne1
+HU_neg_021 sample 20 ne1
+HU_neg_027 sample 22 ne1
+HU_neg_028 sample 23 ne1
+HU_neg_032 sample 25 ne1
+HU_neg_034 sample 26 ne1
+QC1_002 pool 27 ne1
+HU_neg_037 sample 32 ne1
+HU_neg_041 sample 34 ne1
+HU_neg_043 sample 36 ne1
+HU_neg_044 sample 37 ne1
+HU_neg_047 sample 38 ne1
+HU_neg_048 sample 39 ne1
+QC1_003 pool 40 ne1
+HU_neg_049 sample 43 ne1
+HU_neg_050 sample 44 ne1
+HU_neg_051 sample 45 ne1
+HU_neg_052 sample 46 ne1
+HU_neg_055 sample 48 ne1
+HU_neg_059 sample 50 ne1
+HU_neg_060 sample 51 ne1
+HU_neg_061 sample 52 ne1
+QC1_004 pool 53 ne1
+HU_neg_064 sample 57 ne1
+HU_neg_065 sample 58 ne1
+HU_neg_066 sample 59 ne1
+HU_neg_068 sample 60 ne1
+HU_neg_071 sample 61 ne1
+HU_neg_072 sample 62 ne1
+HU_neg_077 sample 64 ne1
+HU_neg_078 sample 65 ne1
+QC1_005 pool 66 ne1
+HU_neg_079 sample 69 ne1
+HU_neg_083 sample 70 ne1
+HU_neg_086 sample 72 ne1
+HU_neg_088 sample 73 ne1
+HU_neg_089 sample 74 ne1
+HU_neg_090 sample 75 ne1
+HU_neg_091 sample 76 ne1
+HU_neg_093 sample 77 ne1
+HU_neg_094 sample 78 ne1
+QC1_006 pool 79 ne1
+HU_neg_099 sample 83 ne1
+HU_neg_100 sample 84 ne1
+HU_neg_101 sample 85 ne1
+HU_neg_105 sample 86 ne1
+HU_neg_107 sample 87 ne1
+HU_neg_108 sample 88 ne1
+HU_neg_109 sample 89 ne1
+HU_neg_110 sample 90 ne1
+HU_neg_111 sample 91 ne1
+QC1_007 pool 92 ne1
+HU_neg_116 sample 96 ne1
+HU_neg_118 sample 98 ne1
+HU_neg_123 sample 100 ne1
+HU_neg_125 sample 102 ne1
+HU_neg_126 sample 103 ne1
+HU_neg_127 sample 104 ne1
+QC1_008 pool 105 ne1
+HU_neg_130 sample 109 ne1
+HU_neg_131 sample 110 ne1
+HU_neg_132 sample 111 ne1
+HU_neg_133 sample 112 ne1
+HU_neg_134 sample 113 ne1
+HU_neg_138 sample 117 ne1
+QC1_009 pool 118 ne1
+HU_neg_144 sample 124 ne1
+HU_neg_148 sample 128 ne1
+HU_neg_149 sample 129 ne1
+HU_neg_150 sample 130 ne1
+QC1_010 pool 131 ne1
+HU_neg_152 sample 134 ne1
+HU_neg_154 sample 135 ne1
+HU_neg_156 sample 136 ne1
+HU_neg_157 sample 137 ne1
+HU_neg_158 sample 138 ne1
+HU_neg_163 sample 140 ne1
+HU_neg_170 sample 142 ne1
+HU_neg_171 sample 143 ne1
+QC1_011 pool 144 ne1
+HU_neg_172 sample 147 ne1
+HU_neg_173 sample 148 ne1
+HU_neg_174 sample 149 ne1
+HU_neg_175 sample 150 ne1
+HU_neg_178 sample 152 ne1
+HU_neg_179 sample 153 ne1
+HU_neg_180 sample 154 ne1
+HU_neg_181 sample 155 ne1
+HU_neg_182 sample 156 ne1
+QC1_012 pool 157 ne1
+HU_neg_184 sample 160 ne1
+HU_neg_185 sample 161 ne1
+HU_neg_186 sample 162 ne1
+HU_neg_189 sample 164 ne1
+HU_neg_192 sample 165 ne1
+HU_neg_196 sample 167 ne1
+QC1_013 pool 171 ne1
+HU_neg_200 sample 174 ne1
+HU_neg_201 sample 175 ne1
+HU_neg_202 sample 176 ne1
+HU_neg_204 sample 177 ne1
+HU_neg_207 sample 179 ne1
+HU_neg_208 sample 180 ne1
+HU_neg_209 sample 181 ne1
+QC1_014 pool 185 ne1
+QC1_001_b2 pool 14 ne2
+HU_neg_022_b2 sample 17 ne2
+HU_neg_076_b2 sample 18 ne2
+HU_neg_166_b2 sample 19 ne2
+HU_neg_114_b2 sample 20 ne2
+HU_neg_190_b2 sample 21 ne2
+HU_neg_139_b2 sample 23 ne2
+HU_neg_096_b2 sample 24 ne2
+HU_neg_058_b2 sample 25 ne2
+HU_neg_031_b2 sample 26 ne2
+QC1_002_b2 pool 27 ne2
+HU_neg_039_b2 sample 30 ne2
+HU_neg_087_b2 sample 32 ne2
+HU_neg_143_b2 sample 33 ne2
+HU_neg_162_b2 sample 34 ne2
+HU_neg_102_b2 sample 35 ne2
+HU_neg_188_b2 sample 37 ne2
+HU_neg_095_b2 sample 38 ne2
+HU_neg_062_b2 sample 39 ne2
+QC1_003_b2 pool 40 ne2
+HU_neg_063_b2 sample 43 ne2
+HU_neg_011_b2 sample 44 ne2
+HU_neg_074_b2 sample 45 ne2
+HU_neg_122_b2 sample 46 ne2
+HU_neg_142_b2 sample 47 ne2
+HU_neg_030_b2 sample 48 ne2
+HU_neg_187_b2 sample 50 ne2
+HU_neg_167_b2 sample 51 ne2
+HU_neg_113_b2 sample 52 ne2
+QC1_004_b2 pool 53 ne2
+HU_neg_081_b2 sample 56 ne2
+HU_neg_014_b2 sample 57 ne2
+HU_neg_206_b2 sample 58 ne2
+HU_neg_119_b2 sample 59 ne2
+HU_neg_033_b2 sample 60 ne2
+HU_neg_067_b2 sample 61 ne2
+HU_neg_140_b2 sample 62 ne2
+HU_neg_164_b2 sample 63 ne2
+HU_neg_193_b2 sample 64 ne2
+HU_neg_112_b2 sample 65 ne2
+QC1_005_b2 pool 66 ne2
+HU_neg_097_b2 sample 69 ne2
+HU_neg_056_b2 sample 70 ne2
+HU_neg_195_b2 sample 71 ne2
+HU_neg_135_b2 sample 72 ne2
+HU_neg_159_b2 sample 73 ne2
+HU_neg_070_b2 sample 76 ne2
+HU_neg_038_b2 sample 77 ne2
+HU_neg_026_b2 sample 78 ne2
+QC1_006_b2 pool 79 ne2
+HU_neg_098_b2 sample 82 ne2
+HU_neg_115_b2 sample 83 ne2
+HU_neg_137_b2 sample 85 ne2
+HU_neg_019_b2 sample 86 ne2
+HU_neg_073_b2 sample 87 ne2
+HU_neg_168_b2 sample 88 ne2
+HU_neg_191_b2 sample 89 ne2
+HU_neg_040_b2 sample 90 ne2
+HU_neg_046_b2 sample 91 ne2
+QC1_007_b2 pool 92 ne2
+HU_neg_103_b2 sample 95 ne2
+HU_neg_015_b2 sample 96 ne2
+HU_neg_053_b2 sample 97 ne2
+HU_neg_121_b2 sample 99 ne2
+HU_neg_183_b2 sample 101 ne2
+HU_neg_199_b2 sample 102 ne2
+HU_neg_042_b2 sample 103 ne2
+HU_neg_075_b2 sample 104 ne2
+QC1_008_b2 pool 105 ne2
+HU_neg_203_b2 sample 108 ne2
+HU_neg_024_b2 sample 109 ne2
+HU_neg_082_b2 sample 110 ne2
+HU_neg_169_b2 sample 111 ne2
+HU_neg_129_b2 sample 112 ne2
+HU_neg_057_b2 sample 113 ne2
+HU_neg_035_b2 sample 114 ne2
+HU_neg_194_b2 sample 115 ne2
+HU_neg_145_b2 sample 116 ne2
+HU_neg_104_b2 sample 117 ne2
+QC1_009_b2 pool 118 ne2
+HU_neg_177_b2 sample 121 ne2
+HU_neg_025_b2 sample 123 ne2
+HU_neg_080_b2 sample 124 ne2
+HU_neg_117_b2 sample 125 ne2
+HU_neg_136_b2 sample 126 ne2
+HU_neg_197_b2 sample 127 ne2
+HU_neg_036_b2 sample 128 ne2
+HU_neg_054_b2 sample 129 ne2
+HU_neg_085_b2 sample 130 ne2
+QC1_010_b2 pool 131 ne2
+HU_neg_160_b2 sample 134 ne2
+HU_neg_092_b2 sample 136 ne2
+HU_neg_023_b2 sample 137 ne2
+HU_neg_124_b2 sample 138 ne2
+HU_neg_147_b2 sample 139 ne2
+HU_neg_205_b2 sample 140 ne2
+HU_neg_084_b2 sample 141 ne2
+HU_neg_120_b2 sample 142 ne2
+HU_neg_198_b2 sample 143 ne2
+QC1_011_b2 pool 144 ne2
+HU_neg_045_b2 sample 148 ne2
+HU_neg_029_b2 sample 149 ne2
+HU_neg_069_b2 sample 150 ne2
+HU_neg_155_b2 sample 151 ne2
+HU_neg_106_b2 sample 154 ne2
+HU_neg_146_b2 sample 155 ne2
+HU_neg_128_b2 sample 156 ne2
+QC1_012_b2 pool 157 ne2
b
diff -r 000000000000 -r 71d83d8920bf test-data/output-batchcorrection-dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output-batchcorrection-dataMatrix.tsv Tue Aug 09 06:47:41 2016 -0400
b
b'@@ -0,0 +1,114 @@\n+dataMatrix\tQC1_001\tHU_022\tHU_076\tHU_166\tHU_114\tHU_190\tHU_139\tHU_096\tHU_058\tHU_031\tQC1_002\tHU_039\tHU_087\tHU_143\tHU_162\tHU_102\tHU_188\tHU_095\tHU_062\tQC1_003\tHU_063\tHU_011\tHU_074\tHU_122\tHU_142\tHU_030\tHU_187\tHU_167\tHU_113\tQC1_004\tHU_081\tHU_014\tHU_206\tHU_119\tHU_033\tHU_067\tHU_140\tHU_164\tHU_193\tHU_112\tQC1_005\tHU_097\tHU_056\tHU_195\tHU_135\tHU_159\tHU_070\tHU_038\tHU_026\tQC1_006\tHU_098\tHU_115\tHU_137\tHU_019\tHU_073\tHU_168\tHU_191\tHU_040\tHU_046\tQC1_007\tHU_103\tHU_015\tHU_053\tHU_121\tHU_183\tHU_199\tHU_042\tHU_075\tQC1_008\tHU_203\tHU_024\tHU_082\tHU_169\tHU_129\tHU_057\tHU_035\tHU_194\tHU_145\tHU_104\tQC1_009\tHU_177\tHU_025\tHU_080\tHU_117\tHU_136\tHU_197\tHU_036\tHU_054\tHU_085\tQC1_010\tHU_160\tHU_092\tHU_023\tHU_124\tHU_147\tHU_205\tHU_084\tHU_120\tHU_198\tQC1_011\tHU_045\tHU_029\tHU_069\tHU_155\tHU_106\tHU_146\tHU_128\tQC1_012\n+met_001\t25803075.7934692\t22245824.2847269\t33362554.2191462\t33928934.4345858\t38807014.0133696\t3717738.65900104\t31219859.2933296\t6291.31363707351\t15131230.5632725\t8756547.00256203\t25856701.6650235\t59056979.1889069\t29050997.1320749\t13803382.5181896\t58821588.2685604\t25572860.8589489\t4186241.20057895\t24196855.2209286\t8227264.66573771\t25428773.6793063\t14045498.2763384\t9414858.01334612\t10423851.438681\t44437723.8111921\t2879783.59900579\t20152143.5369082\t1704640.52100938\t19249095.9866807\t8052735.84029288\t25401278.6667381\t6425412.11717836\t4483638.76404864\t51444905.2526968\t13543480.6520335\t37044229.888368\t10617590.3611776\t9120431.09064855\t15241202.9006152\t2261599.30730485\t58759423.0611775\t26517342.9796032\t30719184.4007157\t33192502.7071917\t22068493.5017958\t33303157.4776968\t34172633.7472131\t18579133.8342916\t1736830.6196864\t5469159.08340882\t26028583.3459301\t37001411.617135\t20692573.3989206\t13816252.639442\t34870261.9550916\t23892218.629954\t1872945.84405521\t15426635.7603488\t18162831.6252458\t26102769.1872127\t25361346.9657174\t21929943.0837876\t18078624.5109582\t6840325.5118984\t4298370.91012195\t31509926.1754072\t8295287.27846444\t17172834.9582154\t39707893.629551\t25130983.0149321\t6717913.82352372\t25692029.3204722\t20419104.2428675\t30597753.5063953\t34746369.1892372\t21024347.449302\t48531513.7571104\t23734467.4540775\t33698127.9888684\t32655993.753639\t25846652.7556179\t20639166.0088837\t16756757.7249078\t13706617.4203876\t17909520.861204\t10313589.4233512\t3496125.9541859\t60226584.6603481\t27630414.5917129\t31789128.6314396\t25532528.4031233\t504295.340317393\t22972884.1487623\t19702043.0659849\t43164491.123306\t33921240.1948793\t25973242.5446075\t23840326.3610582\t1969203.08687009\t33932726.7881634\t26901619.9379972\t13650110.0854526\t44632793.1211613\t37583231.5063693\t20143805.8172678\t48458875.6355475\t26748923.8912103\t68078552.6187057\t24997128.5325153\n+met_002\t18733622.4121993\t9610714.57965993\t24275813.6999091\t25847057.3745696\t24947283.7601687\t1423097.122946\t20742232.7047708\t45452.5705507721\t10215310.6474844\t5672975.2543946\t18050231.7934152\t43362560.6525127\t22514809.2661231\t10349051.5414914\t48192375.6131067\t16695513.6708099\t2675773.81516617\t18930420.3286806\t3921078.03495049\t19234141.2742445\t8425289.97232181\t4805183.87633365\t8700758.02537088\t26978338.4524019\t689420.717332801\t11168038.570606\t1063787.26606082\t18897743.6167054\t3482719.94279234\t18869997.188431\t1524961.04944888\t2820831.69737027\t36792629.0197586\t19875448.8680594\t30621776.9377938\t8020404.73929573\t3508706.85006505\t9712180.2063126\t2476600.44425196\t36796698.0155182\t18383172.8975158\t20030292.2095366\t28420783.034872\t15738173.1376331\t18707849.3261424\t26475198.0402705\t12514954.7774325\t1827949.32969507\t10372154.4272829\t18847233.3554353\t27866491.9445067\t13948235.1453217\t8412641.28884851\t28087583.1927401\t17915114.1791026\t1115150.68457987\t15600658.6295136\t12481472.3346767\t16615464.9590619\t18318989.4193656\t13282366.2522553\t20247449.1816865\t6307817.92544131\t2473501.72891451\t21331736.790259\t4248183.31283758\t8831209.30602942\t30167422.2374754\t18446675.1074117\t4870390.45834935\t17272393.7800738\t12115844.3854106\t37838671.3549049\t24578647.3453827\t12576530.043839\t38821007.8916729\t14918987.221712\t16276773.2164009\t21233018.154724\t19136021.9919222\t9400183.580'..b'95409\t1054180.33235713\t1090979.33590343\t813748.203006604\t1229309.49062481\t1608619.81571132\t292076.848877472\t863039.358844594\t1515390.49822307\t720835.420170901\t443982.812394315\t977783.054388112\t479678.805085766\t861454.511172265\t399179.581453245\t537468.992122009\t1341168.53297045\t356665.05278084\t1077581.84947797\t699378.392150834\t2180156.83550866\t859740.908081678\n+met_112\t4538260.07332924\t1997603.63759386\t3101105.23740388\t8676705.07693322\t4499120.50413992\t2300186.26663146\t6028064.84593985\tNA\t2491991.86068611\t4936389.92875914\t3934368.63868677\t3223602.52806592\t5758560.31329564\t4068603.841081\t3020876.08310117\t2092201.98947378\t1414128.60450223\t3564589.34919401\t4454519.51899205\t4111395.21282403\t6506628.04141497\t1638924.06694788\t4704057.12477128\t3783706.68101197\t6398699.60280182\t2814042.19687001\t1380804.4721669\t2762753.71246615\t5605197.20586148\t4482681.39654663\t8211280.3603205\t1649600.0418054\t3908924.69185977\t3874350.9274596\t7338556.35476537\t4151528.10101192\t2487779.1011633\t2870763.03704328\t4304219.62588264\t9393649.7874239\t4176141.32094111\t2629914.41305345\t2699719.51441013\t4108774.30717426\t7046808.49106602\t2534899.22779241\t2209294.01128173\t993612.490501395\t3466629.03422472\t4284484.51427465\t4707978.58556783\t2496536.33382371\t4076646.32542001\t3524390.53123507\t9275598.64644259\t2759480.08076153\t3366878.58611063\t6050319.56436356\t2714865.54936974\t4174949.54971015\t3275325.72458992\t4267918.90420684\t923327.926460122\t3170959.29947981\t4492717.85645683\t5139744.91372233\t3863471.57733796\t6886498.45100012\t4428439.83785168\t6371944.02729372\t3112777.74911802\t5514644.81005529\t5808375.07378356\t3308682.79888993\t4771946.46729538\t8144361.80783535\t3409974.53680361\t3500477.92909192\t2617203.28223743\t4414062.2820156\t3812798.14081105\t4585421.2045072\t8793172.67675604\t4637139.66088434\t943790.950209665\t8994466.91015319\t4615134.45758878\t5559998.73571828\t6145353.55124427\t4289798.20115878\t2893421.75793062\t7849317.9231938\t1717519.10857095\t5494016.27783925\t4286547.30565284\t4216165.66988365\t2612752.98298915\t3584586.08196358\t7009045.08682862\t4480360.79775925\t1797914.42775286\t2958118.63205771\t5180419.78048592\t2965412.74263722\t6867343.34574981\t4060369.23068331\t4489646.44698815\t4072790.12794517\n+met_113\t1008565.5752504\t1158567.63903145\t529830.796502162\t889814.888535702\t1448388.21917358\t1841757.04389807\t1322567.71170675\tNA\t1170273.11749264\t999795.60192758\t1036645.09275775\t980543.484756615\t763711.435143932\t409322.220596871\t2009596.78032114\t775776.680204633\t262459.955623623\t1536763.6397872\t1026146.72109141\t1089130.8837249\t1650573.81412147\t605567.758060381\t1445318.28337213\t1682617.78861332\t1492151.26331285\t987383.80646001\t235646.175796624\t177370.54091637\t1706438.13091351\t986114.199693531\t2476280.35702388\t408095.520330724\t1210422.14154099\t804240.996639918\t1409699.96479546\t692439.380275386\t741562.342086506\t493209.987837817\t894850.612050541\t1187806.75778047\t982531.920495763\t861473.583014974\t985392.332655452\t457279.162538855\t1071029.24363867\t389141.615930624\t1086237.1583117\t101822.549704857\t412116.995986363\t1117205.58522017\t666034.618948003\t1656278.0882703\t1017055.12392107\t670681.845781125\t764619.55232811\t232557.596158996\t1001461.99426945\t759811.792469226\t992902.332619325\t991708.040046475\t928839.397680866\t759923.801127517\t228428.464322441\t389332.254437437\t380456.756714177\t1074125.13525503\t2155924.49102891\t1438928.10254248\t1018035.38268366\t586120.199558703\t550305.983321682\t1070444.71972962\t98540.2137253375\t470324.959918036\t1053661.68418953\t1347955.77809265\t1794698.05572542\t1839129.91193994\t447039.267881417\t1038365.31754997\t1008450.35781633\t772534.824283954\t1889746.64026194\t1309455.69768566\t131302.851803826\t1491241.59783436\t725369.21239059\t1515316.3946072\t919122.079000583\t997990.2905651\t207287.048524534\t1060150.0355142\t471509.506822373\t986177.685439062\t17093346.8989243\t1547984.63462982\t439051.348344737\t1157749.50227074\t1088849.75286227\t1082199.05099702\t367690.017886928\t712227.420096786\t755882.247545083\t307899.905156455\t3473142.11220125\t846374.452146134\t1288272.54990407\t1001712.70994295\n'
b
diff -r 000000000000 -r 71d83d8920bf test-data/output-determinebc-preNormSummary.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output-determinebc-preNormSummary.txt Tue Aug 09 06:47:41 2016 -0400
b
@@ -0,0 +1,11 @@
+labion batch.1.linear batch.1.loess batch.1.lowess batch.2.linear batch.2.loess batch.2.lowess
+M53T345 0 0 0 0 0 0
+M58T69 0 0 0 0 0 0
+M59T246 0 0 0 5 0 0
+M59T62 0 0 0 3 3 3
+M59T270 0 0 0 0 0 0
+M62T56 0 0 0 0 0 0
+M64T348 0 0 0 0 0 0
+M64T379 0 0 0 0 0 0
+M65T347 5 0 0 5 0 0
+M65T379 0 0 0 0 0 0