Next changeset 1:58eecef626da (2017-03-02) |
Commit message:
planemo upload for repository https://github.com/workflow4metabolomics/nmr_alignment commit 8ddcd37917c778e152d71ff1f0f05a869f8454c2-dirty |
added:
NmrAlignment_script.R NmrAlignment_wrapper.R NmrAlignment_xml.xml static/images/NmrAlignment.png test-data/MTBLS1.zip test-data/MTBLS1_bucketedData.tabular test-data/MTBLS1_sampleMetadata.tabular test-data/MTBLS1_variableMetadata.tabular |
b |
diff -r 000000000000 -r d690c5ad932f NmrAlignment_script.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NmrAlignment_script.R Thu Nov 24 12:11:04 2016 -0500 |
[ |
b'@@ -0,0 +1,440 @@\n+################################################################################################\n+# NMR SPECTRA ALIGNEMENT USING THE CLUPA ALGORITHM (Vu et al. 2013) #\n+# Included in the speaq package #\n+# User : Galaxy #\n+# Original data : -- #\n+# Starting date : 05-10-2016 #\n+# Version 1 : -- #\n+# #\n+# Input files : datra.frame containing spectra to align #\n+################################################################################################\n+\n+\n+################################################################################################\n+# Bruker files reading #\n+# Input parameters #\n+# - directory: name of your folder containing all experimental samples as sub-directories #\n+# - leftBorder: upper boundary: values greater than this value are not used; #\n+# Default value: 10.0 ppm #\n+# - rightBorder: lower boundary: values lower than this value are not used; #\n+# Default value: 10.0 ppm #\n+# - exclusionZones: spectral regions to exclude (water, solvent or contaminant resonance); #\n+# boolean #\n+# - exclusionZonesBorders: upper and lower boudaries of exclusions zones #\n+# Output parameters #\n+# - truncatedSpectrum_matrice: n x p datamatrix #\n+################################################################################################\n+NmrRead <- function(directory, leftBorder= 10.0, rightBorder= 0.5, exclusionZones=FALSE, exclusionZonesBorders=NULL)\n+{\n+ ## Option\n+ ##---------------\n+ strAsFacL <- options()$stringsAsFactors\n+ options(stingsAsFactors=FALSE)\n+ options(warn=-1)\n+ \n+ \n+ ## Constants\n+ ##---------------\n+ topEnvC <- environment()\n+ flgC <- "\\n"\n+ \n+ ## Log file (in case of integration into Galaxy)\n+ ##----------------------------------------------\n+ # if(!is.null(savLog.txtC))\n+ # sink(savLog.txtC, append=TRUE)\n+ \n+ ## Functions definition\n+ ##--------------------- \n+ ## RAW BRUKER FILE READING FUNCTION\n+ NmRBrucker_read <- function(DataDir,SampleSpectrum)\n+ {\n+ \n+ bruker.get_param <- function (ACQ,paramStr)\n+ {\n+ regexpStr <- paste("^...",paramStr,"=",sep="")\n+ as.numeric(gsub("^[^=]+= ","" ,ACQ[which(simplify2array(regexpr(regexpStr,ACQ))>0)]))\n+ }\n+ \n+ ACQFILE <- "acqus"\n+ SPECFILE <- paste(DataDir,"/1r",sep="")\n+ PROCFILE <- paste(DataDir,"/procs",sep="")\n+ \n+ ACQ <- readLines(ACQFILE)\n+ TD <- bruker.get_param(ACQ,"TD")\n+ SW <- bruker.get_param(ACQ,"SW")\n+ SWH <- bruker.get_param(ACQ,"SW_h")\n+ DTYPA <- bruker.get_param(ACQ,"DTYPA")\n+ BYTORDA <- bruker.get_param(ACQ,"BYTORDA")\n+ #ENDIAN=ifelse( BYTORDA==0, "little", "big")\n+ ENDIAN <- "little"\n+ SIZE=ifelse( DTYPA==0, 4, 8)\n+ \n+ PROC <- readLines(PROCFILE)\n+ OFFSET <- bruker.get_param(PROC,"OFFSET")\n+ SI <- bruker.get_param(PROC,"SI")\n+ \n+ to.read=file(SPECFILE,"rb")\n+ maxTDSI=max(TD,SI)\n+ # signal<-rev(readBin(to.read, what="int",s'..b'1, maxshift=maxshift, \n+ verbose)\n+{\n+ ## Peak picking\n+ cat("\\n detect peaks....")\n+ startTime <- proc.time()\n+ peakList <- detectSpecPeaks(X=data, nDivRange=nDivRange, scales=scales, baselineThresh=baselineThresh, \n+ SNR.Th = SNR.Th, verbose=verbose)\n+ endTime <- proc.time()\n+ cat("Peak detection time:",(endTime[3]-startTime[3])/60," minutes")\n+\n+ ## Reference spectrum determination\n+ if (reference == 0)\n+ {\n+ cat("\\n Find the spectrum reference...")\n+ resFindRef<- findRef(peakList)\n+ refInd <- resFindRef$refInd\n+ cat("\\n Order of spectrum for reference \\n")\n+ for (i in 1:length(resFindRef$orderSpec))\n+ {\n+ cat(paste(i, ":",resFindRef$orderSpec[i],sep=""), " ")\n+ if (i %% 10 == 0) \n+ cat("\\n")\n+ }\n+ cat("\\n The reference is: ", refInd)\n+ }\n+ else\n+ {\n+ refInd=reference\n+ }\n+ ## Spectra alignment to the reference\n+ maxshift <- 50\n+ Y <- dohCluster(data, peakList=peakList, refInd=refInd, maxShift=maxShift, acceptLostPeak, verbose)\n+\n+ ## Output \n+ return(Y)\n+}\n+\n+\n+################################################################################################\n+# Principal function #\n+# Input parameters #\n+# - directory: name of your folder containing all experimental samples as sub-directories #\n+# - leftBorder: upper boundary: values greater than this value are not used; #\n+# Default value: 10.0 ppm #\n+# - rightBorder: lower boundary: values lower than this value are not used; #\n+# Default value: 10.0 ppm #\n+# - exclusionZones: spectral regions to exclude (water, solvent or contaminant resonance); #\n+# boolean #\n+# - exclusionZonesBorders: upper and lower boudaries of exclusions zones #\n+# - verbose: printing out process information (boolean) #\n+# - reference: reference spectrum number, if exists #\n+# Default value: 0 (automatic detection #\n+# - nDivRange: size of a single small segment after division of the whole spectrum #\n+# Default value: 64 #\n+# - baselineThresh: removal of all the peaks with intensity lower than this threshold #\n+# Default value: 50000 #\n+# Output parameters: list containing #\n+# - data.read: n x p matrix #\n+# - data.aligned: n x p matrix #\n+################################################################################################\n+nmr.alignment <- function(directory, leftBorder= 10.0, rightBorder= 0.5, exclusionZones=FALSE, \n+ exclusionZonesBorders=NULL, reference=0, nDivRange=64, baselineThresh=50000, maxshift=50, verbose=FALSE)\n+{\n+ data.read <- NmrRead(directory=directory, leftBorder=leftBorder, rightBorder=rightBorder, exclusionZones=exclusionZones, exclusionZonesBorders=exclusionZonesBorders)\n+ rownames(data.read) <- data.read[,1]\n+ data.read <- data.read[,-1]\n+ data.read <- t(data.read)\n+ data.aligned <- cluPA.alignment(data=data.read, reference=reference, nDivRange=nDivRange, \n+ baselineThresh=baselineThresh, maxshift=maxshift, verbose=verbose)\n+\n+ return(list(data.read,data.aligned))\n+}\n+\n' |
b |
diff -r 000000000000 -r d690c5ad932f NmrAlignment_wrapper.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NmrAlignment_wrapper.R Thu Nov 24 12:11:04 2016 -0500 |
[ |
@@ -0,0 +1,176 @@ +#!/usr/local/public/bin/Rscript --vanilla --slave --no-site-file + +## 06102016_NmrAlignment_wrapper.R +## Marie Tremblay-Franco +## marie.tremblay-franco@toulouse.inra.fr + +runExampleL <- FALSE + +##------------------------------ +## Options +##------------------------------ +strAsFacL <- options()$stringsAsFactors +options(stringsAsFactors = FALSE) + + +##------------------------------ +## Libraries loading +##------------------------------ + # ParseCommandArgs function +library(batch) + # Alignment +library(speaq) + + +# R script call +source_local <- function(fname) +{ + argv <- commandArgs(trailingOnly = FALSE) + base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) + source(paste(base_dir, fname, sep="/")) +} +# Function import +source_local("NmrAlignment_script.R") + + +##------------------------------ +## Errors ????????????????????? +##------------------------------ + + +##------------------------------ +## Constants +##------------------------------ +topEnvC <- environment() +flagC <- "\n" + + +##------------------------------ +## Script +##------------------------------ +if(!runExampleL) + argLs <- parseCommandArgs(evaluate=FALSE) + + +## Parameters Loading +##------------------- + # Inputs + ## Library of spectra to align +if (!is.null(argLs[["zipfile"]])){ + zipfile= argLs[["zipfile"]] + directory=unzip(zipfile, list=F) + directory=paste(getwd(),strsplit(directory[1],"/")[[1]][2],sep="/") +} else if (!is.null(argLs[["library"]])){ + directory=argLs[["library"]] + if(!file.exists(directory)){ + error_message=paste("Cannot access the directory :",directory,".Please verify if the directory exists or not.") + print(error_message) + stop(error_message) + } +} + + + ## Spectral width +leftBorder <- argLs[["left_border"]] +rightBorder <- argLs[["right_border"]] + + ##Exclusion zone(s) +exclusionZones <- argLs[["zone_exclusion_choices.choice"]] +exclusionZonesBorders <- NULL +if (!is.null(argLs$zone_exclusion_left)) +{ + for(i in which(names(argLs)=="zone_exclusion_left")) + { + exclusionZonesBorders <- c(exclusionZonesBorders,list(c(argLs[[i]],argLs[[i+1]]))) + } +} + + ## Reference spectrum +reference <- argLs[["reference"]] + + ## Size of a small nDivRange +nDivRange <- argLs[["nDivRange"]] + + ## Intensity threshold for peak removal +baselineThresh <- argLs[["baselineThresh"]] + + + # Outputs +logOut <- argLs[["logOut"]] +alignedSpectra <- argLs[["alignedSpectra"]] +graphOut <- argLs[["graphOut"]] + + +## Checking arguments +##------------------- +error.stock <- "\n" +if(length(error.stock) > 1) + stop(error.stock) + + +## Computation +##------------ +directory.alignement <- nmr.alignment(directory=directory,leftBorder=leftBorder,rightBorder=rightBorder,exclusionZones=exclusionZones, + exclusionZonesBorders=exclusionZonesBorders, reference=reference, nDivRange=nDivRange, + baselineThresh=baselineThresh, maxshift=50, verbose=FALSE) +directory.raw <- directory.alignement[[1]] +directory.aligned <- directory.alignement[[2]] + +## Saving +##------- + # Aligned spectra +t.directory.aligned <- t(directory.aligned) +rownames(t.directory.aligned) <- colnames(directory.aligned) +# colnames(t.directory.aligned) <- c("Bucket",colnames(t.directory.aligned)) +write.table(t.directory.aligned,file=alignedSpectra,row.names=TRUE,quote=FALSE,sep="\t") + + +excludedZone <- NULL +for (c in 1:length(exclusionZonesBorders)) +{ + excludedZone <- c(excludedZone,exclusionZonesBorders[[c]]) + excludedZone <- sort(excludedZone) +} + +## Graphical output: overlay of raw and estimated spectra +pdf(graphOut,onefile=TRUE) +par(mfrow=c(2,1)) + +raw.spectra <- data.frame(directory.raw) +colnames(raw.spectra) <- substr(colnames(raw.spectra),2,7) + +aligned.spectra <- data.frame(directory.aligned) +colnames(aligned.spectra) <- substr(colnames(aligned.spectra),2,7) + +drawSpec(raw.spectra,xlab="", ylab="Raw spectra", main="") +drawSpec(aligned.spectra,xlab="", ylab="Aligned spectra", main="") + +nbZones <- length(excludedZone)/2 +if (nbZones != 0) +{ + n <- length(excludedZone) + drawSpec(raw.spectra[,1:which(round(as.numeric(colnames(raw.spectra)),2) == excludedZone[n])[1]],xlab="", ylab="Raw spectra", main="") + drawSpec(aligned.spectra[,1:which(round(as.numeric(colnames(aligned.spectra)),2) == excludedZone[n])[1]],xlab="", ylab="Aligned spectra", main="") + + n <- n - 1 + while (n >= nbZones & nbZones > 1) + { + drawSpec(raw.spectra[,(which(round(as.numeric(colnames(raw.spectra)),2) == excludedZone[n])[1]):(which(round(as.numeric(colnames(raw.spectra)),2) == excludedZone[n-1])[1])],xlab="", ylab="Raw spectra", main="") + drawSpec(aligned.spectra[,(which(round(as.numeric(colnames(aligned.spectra)),2) == excludedZone[n])[1]):(which(round(as.numeric(colnames(aligned.spectra)),2) == excludedZone[n-1])[1])],xlab="", ylab="Aligned spectra", main="") + n <- n - 2 + } + + drawSpec(raw.spectra[,(which(round(as.numeric(colnames(raw.spectra)),2) == excludedZone[1])[1]):ncol(raw.spectra)],xlab="", ylab="Raw spectra", main="") + drawSpec(aligned.spectra[,(which(round(as.numeric(colnames(aligned.spectra)),2) == excludedZone[1])[1]):ncol(aligned.spectra)],xlab="", ylab="Aligned spectra", main="") +} +drawSpec(raw.spectra[,(which(round(as.numeric(colnames(raw.spectra)),2) == 2.4)[1]):(which(round(as.numeric(colnames(raw.spectra)),2) == 2.8)[1])],xlab="", ylab="Raw spectra", main="") +drawSpec(aligned.spectra[,(which(round(as.numeric(colnames(aligned.spectra)),2) == 2.4)[1]):(which(round(as.numeric(colnames(aligned.spectra)),2) == 2.8)[1])],xlab="", ylab="Aligned spectra", main="") + +dev.off() + + +## Ending +##--------------------- +cat("\nEnd of 'NMR alignment' Galaxy module call: ", as.character(Sys.time()), sep = "") +options(stringsAsFactors = strAsFacL) +rm(list = ls()) |
b |
diff -r 000000000000 -r d690c5ad932f NmrAlignment_xml.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NmrAlignment_xml.xml Thu Nov 24 12:11:04 2016 -0500 |
b |
b'@@ -0,0 +1,258 @@\n+<tool id="NmrAlignment" name="NMR_Alignment" version="2016-10-07">\n+\n+\t <description> Alignment of NMR spectra based on the Cluster-based Peak Alignment (CluPA) algorithm </description>\n+\n+\t <requirements>\n+ <requirement type="package" version="3.1.2">R</requirement>\n+\t <requirement type="package" version="1.1_4">r-batch</requirement>\n+\t <requirement type="package" version="1.2.1">r-speaq</requirement>\n+ \t</requirements>\n+\n+ <stdio>\n+ <exit_code range="1:" level="fatal" />\n+ </stdio>\n+\n+ \t<command>\n+\t\t## Wrapper\n+ Rscript $__tool_directory__/NmrAlignment_wrapper.R\n+\n+\t\t## File input\n+ #if $inputs.input == "lib":\n+ library $__app__.config.user_library_import_dir/$__user_email__/$inputs.library\n+ #elif $inputs.input == "zip_file":\n+ zipfile $inputs.zip_file\n+ #end if\n+\n+\t\t## Spectra borders\n+\t\tleft_border $left_border\n+\t\tright_border $right_border\n+\n+\n+\t\t## Exclusion zone\n+\t\tzone_exclusion_choices.choice ${zone_exclusion_choices.choice}\n+\t\t#if str($zone_exclusion_choices.choice) == \'yes\':\n+\t\t\t#for $i in $zone_exclusion_choices.conditions:\n+\t\t\t\tzone_exclusion_left ${i.zone_exclusion_left}\n+\t\t\t\tzone_exclusion_right ${i.zone_exclusion_right}\n+\t\t\t#end for\n+\t\t#end if\n+\n+\t\t## Reference spectrum\n+\t\treference $reference\n+\n+\t\t## Segment size\n+\t\tnDivRange $nDivRange\n+\n+\t\t## Intensity threshold\n+\t\tbaselineThresh $baselineThresh\n+\n+\t\t## Outputs\n+\t\tlogOut $logOut\n+\t\talignedSpectra $alignedSpectra\n+\t\tgraphOut $graphOut\n+\t </command>\n+\n+ \t<inputs>\n+ <conditional name="inputs">\n+ <param name="input" type="select" label="Choose your inputs method" >\n+ <option value="zip_file" selected="true">Zip file from your history containing your Bruker directories</option>\n+ <option value="lib" >Library directory name</option>\n+ </param>\n+ <when value="zip_file">\n+ <param name="zip_file" type="data" format="no_unzip.zip" label="Zip file" />\n+ </when>\n+ <when value="lib">\n+ <param name="library" type="text" size="40" label="Library directory name" help="The name of your directory containing all your data" >\n+ <validator type="empty_field"/>\n+ </param>\n+ </when>\n+ </conditional>\n+\n+\t\t<param name="left_border" label="Left Border" type="float" value="10.0" size="10" help="Default value is 10 ppm"/>\n+\t\t<param name="right_border" label="Right Border" type="float" value="0.5" size="10" help="Default value is 0.5 ppm"/>\n+\n+\t\t<conditional name="zone_exclusion_choices">\n+\t\t\t<param name="choice" type="select" label="Exclusion zone(s)" help="Choose if you want to exclude particular zone(s)" >\n+\t\t\t\t<option value="yes" > yes </option>\n+\t\t\t\t<option value="no" selected="true"> no </option>\n+\t\t\t</param>\n+\t\t\t<when value="yes">\n+\t\t\t\t<repeat name="conditions" title="exclusion zones">\n+\t\t\t\t\t<param name="zone_exclusion_left" label="Left exclusion zone border" type="float" value="10.0" />\n+\t\t\t\t\t<param name="zone_exclusion_right" label="Right exclusion zone border" type="float" value="10.0" />\n+\t\t\t\t</repeat>\n+\t\t\t</when>\n+ <when value="no" />\n+\t\t</conditional>\n+\n+\t\t<param name="reference" type="integer" value="0" help="Number of the reference spectrum. Default value is 0: automatic determination of the reference spectrum" />\n+\n+\t\t<param name="nDivRange" type="integer" value="64" help="Size of a single small segment after division of spectra. Default value is 64" />\n+\n+\t\t<param name="baselineThresh" type="integer" value="1" help="Threshold to remove all peaks with intensity lower this value. Default value is 1" />\n+\n+\t</inputs>\n+\n+\t<outputs>\n+\t\t<data format="txt" name="logOut" label="${tool.name}_log" />\n+\t\t<data format="tabular" name="alignedSpectra" label="${tool.name}_alignedSpectra" />\n+\t\t<data format="pdf" name="graphOut" label="${tool.name}_graph" />\n+\t</outputs>\n+\n+\t<help>\n+\n+.. class:: infomark\n+\n+**'..b'------------\n+\n+**Upstream tools**\n+\n+========================= ================= =======\n+Name output file format\n+========================= ================= =======\n+NA NA NA\n+========================= ================= =======\n+\n+\n+**Downstream tools**\n+\n++---------------------------+----------------------+--------+\n+| Name | Output file | Format |\n++===========================+======================+========+\n+|NmrBucketing | dataMatrix.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+| | sampleMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+| | variableMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+|NmrNormalization | dataMatrix.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+| | sampleMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+| | variableMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+|Univariate | variableMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+|Multivariate | sampleMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+| | variableMetadata.tsv | Tabular|\n++---------------------------+----------------------+--------+\n+\n+\n+-----------\n+Input files\n+-----------\n+\n++---------------------------+------------+\n+| Parameter : num + label | Format |\n++===========================+============+\n+| 1 : Choose your inputs | zip |\n++---------------------------+------------+\n+\n+**Choose your inputs**\n+\n+ | Zip file (recommended): You can put a zip file containing your inputs: myinputs.zip (containing all your conditions as sub-directories).\n+\n+\n+----------\n+Parameters\n+----------\n+\n+Bucket width\n+\t| size of windows\n+\t|\n+\n+Left limit\n+\t| Upper boundary: values greater than this value are not used in the bucketing. Default value is 10.0 ppm\n+\t|\n+\n+Right limit\n+\t| Lower boundary: values lower than this value are not used in the bucketing. Default value is 0.5 ppm\n+\t|\n+\n+Exclusion zone(s)\n+\t| Spectral regions to exclude, water, solvents, ... resonance\n+\t| If YES: parameters **Lower exclusion zone** and **Upper exclusion zone** are visible,\n+\t| If NO: no zone to exclude\n+\t| Default value is NO\n+\t|\n+\n+Left exclusion zone\n+\t| Upper boundary of exclusion zone\n+\t|\n+\n+Right exclusion zone\n+\t| Lower boundary of exclusion zone\n+\n+| *Notes:*\n+| - these parameters can be used several times using the "Add new exclusion zones" button\n+|\n+\n+Reference spectrum\n+\t| spectrum to which other spectra are aligned\n+\t| Default value is 0: heuristic strategy to find the optimal template developped in the speaq package\n+\t|\n+\n+Segment size\n+\t| Size of a single small segment after division of spectra\n+\t| Default value: 64 (minimal value adviced)\n+\t|\n+\n+Intensity threshold\n+\t| All peaks with an intensity below this threshold are removed\n+\t| Default value: 1\n+\t|\n+\n+\n+------------\n+Output files\n+------------\n+\n+alignedSpectra.tsv\n+\t| tabular output\n+\t| Data matrix with p rows (ppm) and n columns (samples) containing the aligned intensities\n+\t|\n+\n+graphOut.pdf\n+\t| pdf output\n+\t| Graphical chart of raw and aligned data: whole spectral width, "zoomed" zones depending on the exclusion zones, spectral zone between 2.8 and 2.4ppm corresponding to the citric acid\n+\n+\n+---------------------------------------------------\n+\n+---------------\n+Example\n+---------------\n+\n+\n+.. image:: ./static/images/NmrAlignment.png\n+ :width: 500\n+\n+ </help>\n+ <citations>\n+ <citation type="doi">10.1093/bioinformatics/btu813</citation>\n+ </citations>\n+\n+</tool>\n' |
b |
diff -r 000000000000 -r d690c5ad932f static/images/NmrAlignment.png |
b |
Binary file static/images/NmrAlignment.png has changed |
b |
diff -r 000000000000 -r d690c5ad932f test-data/MTBLS1.zip |
b |
Binary file test-data/MTBLS1.zip has changed |
b |
diff -r 000000000000 -r d690c5ad932f test-data/MTBLS1_bucketedData.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/MTBLS1_bucketedData.tabular Thu Nov 24 12:11:04 2016 -0500 |
b |
b'@@ -0,0 +1,595 @@\n+Bucket\tADG10003u_007\tADG10003u_008\tADG10003u_009\tADG10003u_010\tADG10003u_015\tADG10003u_016\tADG10003u_017\tADG10003u_021\tADG10003u_022\tADG10003u_023\tADG10003u_051\tADG10003u_052\tADG10003u_053\tADG10003u_066\tADG10003u_067\tADG10003u_071\tADG10003u_072\tADG10003u_073\tADG10003u_087\tADG10003u_088\tADG10003u_089\tADG10003u_097\tADG10003u_098\n+B9.295\t1.79949423217956e-06\t1.36845276225836e-05\t2.01160697683997e-05\t7.25986492795804e-07\t2.42490464839257e-05\t3.11580892214512e-05\t8.19866824235026e-06\t3.09192259268499e-05\t2.64389193821353e-05\t1.45055826888266e-05\t3.45040700032625e-06\t1.60970199365859e-05\t1.05993065753594e-05\t2.90248760646802e-05\t1.06130409475137e-05\t5.2278556041205e-06\t2.44519080406605e-05\t3.7420635381202e-05\t1.57230624459948e-05\t2.75224138622866e-06\t2.08828714579133e-05\t5.49917968773367e-05\t8.22464110337308e-06\n+B9.286\t0.000183987136571742\t4.73741598311689e-05\t6.48220850387143e-05\t4.08486623139604e-05\t0.000124595459054319\t3.41874426311483e-05\t0.000122371178407348\t3.49547713922308e-05\t0.00015628757744243\t2.37737814473545e-05\t5.13987818577577e-05\t0.000134108924379129\t9.59219627606648e-05\t8.44451844992086e-05\t0.00022720535031565\t9.86157895513715e-05\t1.06199525078497e-05\t3.70983827911379e-05\t3.16119098225048e-05\t5.1709215131723e-06\t2.21703993321988e-05\t1.19479684646357e-05\t8.95607890845055e-06\n+B9.276\t6.1185692617288e-05\t0.00020732837726723\t0.00012538786536446\t2.84181782334477e-05\t2.53083682825459e-05\t2.76930477756038e-05\t9.7914592965261e-05\t1.44908072132008e-05\t7.76504143484867e-05\t2.21918164602678e-05\t0.000443221195814841\t0.00034996670727668\t0.000412632862820386\t0.000146364982064243\t0.000101892447453022\t0.00020898968160112\t0.00018589786110267\t0.000307514987819811\t0.000357112398084273\t0.000316352014982079\t0.00021198645013364\t0.000691068949900525\t0.000221146831632783\n+B9.266\t4.50617404358542e-05\t7.7187909059995e-06\t1.52411037411529e-05\t1.10253427920853e-05\t4.1745051441984e-05\t3.63488304424524e-05\t3.3290398209022e-05\t1.13169550474572e-05\t9.45184418976979e-06\t7.6012521812347e-06\t6.92482995870393e-06\t3.8268420757911e-05\t2.37195119946984e-06\t2.86004474506151e-05\t3.22860579421692e-06\t2.96039906990133e-06\t2.52808779783966e-05\t0.000142090898957934\t1.10312630129144e-05\t3.60677293639806e-06\t2.97265975382987e-05\t6.66305467846902e-06\t1.14495101906091e-05\n+B9.255\t1.15660880406503e-05\t2.14664012391468e-05\t4.60009639329725e-06\t1.25395676678615e-05\t4.17248489153109e-05\t1.46532714803481e-05\t1.00057270405122e-05\t2.75328532847705e-05\t2.74077840472564e-05\t2.41894891121703e-06\t8.0400281246103e-06\t1.59037103857697e-05\t1.00611731499731e-06\t6.71681516896861e-06\t1.36105357122668e-05\t7.11442411954162e-06\t2.21537557041547e-05\t2.87845824558775e-05\t4.03717597605331e-05\t1.42618582461408e-05\t1.84330229833385e-05\t6.39363012853215e-05\t2.18920831381193e-05\n+B9.246\t2.03293920474837e-07\t2.02423815996018e-05\t4.96598896737477e-06\t1.35705313106542e-05\t3.41075710581766e-05\t6.53017072634504e-05\t4.43984949390479e-06\t1.63183767828055e-05\t2.72484433555238e-06\t8.78724169594538e-06\t8.95623692386308e-07\t2.45735590368271e-05\t5.26105502709834e-06\t2.37539064007069e-05\t2.19035721346259e-05\t1.50517785846819e-05\t2.16082826646081e-05\t2.53649297518041e-05\t1.32773972605395e-05\t1.00977058894297e-05\t1.55783781762885e-05\t3.76630403674761e-05\t2.14582962168246e-05\n+B9.236\t3.37742336734625e-05\t1.09466424044581e-05\t1.26844396116922e-05\t1.41040509503652e-05\t8.32806751647478e-06\t6.89331798338183e-05\t1.31306116922384e-05\t2.44043814312157e-05\t2.60353424850613e-06\t1.5498729364209e-05\t1.12441000124573e-05\t1.90904945628191e-05\t4.77289113406423e-06\t2.6783614160707e-05\t1.81281101162131e-05\t2.27290178082349e-05\t2.2060579242685e-05\t2.02102446881195e-05\t2.82836945109232e-05\t2.6769889759727e-05\t3.20529608453921e-05\t1.46895321061598e-05\t2.72459848898296e-05\n+B9.226\t1.02347475703096e-05\t1.61525191983677e-05\t6.32740402153627e-06\t2.17291460045977e-06\t3.58860102752402e-05\t5.32064617047859e-05\t3.88074184844747e-06\t1.41925328605111e-05\t3.61825110992116e-05\t1.56626397248238e-05\t1.48898939857621e-0'..b'7579\t0.0232263392642444\t0.00538943800528357\t0.00514775819006039\t0.00559553789396426\t0.0173520429506117\t0.028324033261543\n+B0.876\t0.00215863677466562\t0.00369895246404019\t0.00360045348807487\t0.00134769212206423\t0.00218354336599731\t0.00245532683379321\t0.00345022433982449\t0.000717888096909645\t0.00170401747506495\t0.000356847987108017\t0.0041628951177036\t0.005088145578844\t0.00284987245949532\t0.00268286392210182\t0.00197915272339639\t0.0164744229799929\t0.00871859567919084\t0.0291624658349522\t0.00450433606743076\t0.00467317787458834\t0.00464469278467577\t0.0176322957897126\t0.0298903125539951\n+B0.866\t0.00150013418482023\t0.00258508360037412\t0.00238111738536749\t0.000983712268869988\t0.00157378746779101\t0.00184741600638927\t0.00259613706860757\t0.000530590445564721\t0.00114218607490948\t0.000297719443003154\t0.00236377135640083\t0.00299039447289031\t0.00169838032153178\t0.00202478720109677\t0.00155237208983581\t0.00506508824735588\t0.00335278099612616\t0.00916049409218431\t0.00304824370929634\t0.0028945285734165\t0.0028543532645478\t0.00397438831823791\t0.00746021084696681\n+B0.857\t0.000986962374512856\t0.00174301185204418\t0.00155459274530862\t0.00059744100374567\t0.000946611593982685\t0.00119641009019251\t0.00173321235334005\t0.000356899004924163\t0.000758730491964375\t0.000160811437925477\t0.00152510957100737\t0.00196835887814581\t0.00101457930295155\t0.00150335976451684\t0.00101420955937978\t0.0033735623219071\t0.00210956426055451\t0.00493276854725743\t0.00178283936255044\t0.00165275426730159\t0.00170372495712446\t0.00248870525573775\t0.0039846322834038\n+B0.846\t0.000839825601114667\t0.0012769784113784\t0.00110091918664795\t0.000413961172391942\t0.000708888771217311\t0.000778154520699405\t0.00111234240481985\t0.000244663266226838\t0.000484525523691875\t7.68758960306947e-05\t0.000909219126236251\t0.00113056799032888\t0.000631562997579227\t0.00107030332221529\t0.000634580995745331\t0.00106135884542878\t0.000970558123349218\t0.00157698752726719\t0.00109118524592164\t0.0010809000005087\t0.00117405624971632\t0.00104182637112804\t0.00136932315987551\n+B0.836\t0.000540291147081289\t0.00110805916107828\t0.000991944918364915\t0.000259305489167024\t0.000414200683547401\t0.000446851710747917\t0.000739324952553648\t0.00014512091218808\t0.000240131270356258\t1.53279187890163e-05\t0.000995779500719967\t0.00117589795062701\t0.000663607401633198\t0.00072607607121414\t0.000348533637762843\t0.000814771690737036\t0.000852228105038011\t0.00106417265964175\t0.00106436355116083\t0.00088998568772594\t0.00115577335390134\t0.000793475313473202\t0.000969704476916626\n+B0.826\t0.000439210376659004\t0.000622025753244184\t0.0005877341421479\t0.000201776175879904\t0.000325527630159852\t0.000344597178120722\t0.000468730496980652\t0.000169188243600758\t0.000244354283493434\t1.80591932027473e-05\t0.000645393534597378\t0.00076364124043746\t0.000411619698520102\t0.000416731585656504\t0.000256480294202034\t0.000524752271786902\t0.000676304092825243\t0.000814916554483356\t0.000597779964300897\t0.000807012376046873\t0.000712066733726576\t0.000508127245813254\t0.000691958647587166\n+B0.816\t0.000394076959769821\t0.000626251816952311\t0.000644546372165628\t0.000163741793970591\t0.000294493619073591\t0.000396363737760121\t0.000520046367222883\t0.00012853568638618\t0.000243131055493038\t1.18743008584546e-05\t0.000604929046893319\t0.000717510278393041\t0.000373029125568352\t0.000391937364448496\t0.000234261393789731\t0.000523235700797077\t0.000619868853421147\t0.000730622691788109\t0.000640770168804395\t0.000676985988978989\t0.000745527871203007\t0.00061791716531139\t0.000781012740687151\n+B0.806\t0.000336785447055572\t0.000470318285990568\t0.000447571911175899\t0.00015477142985862\t0.000254766661248894\t0.000300355488014835\t0.000386815449880438\t0.000128859420585409\t0.000182934749398549\t1.11417886043334e-05\t0.0003939533156056\t0.000417332638774188\t0.000210616293653824\t0.000296880999894829\t0.000120837576055159\t0.00033047173709954\t0.000388172417071423\t0.000450376987152908\t0.000452051328977898\t0.000485123182275246\t0.00047918667429437\t0.000397128925502763\t0.000516124725384787\n+B0.8\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n' |
b |
diff -r 000000000000 -r d690c5ad932f test-data/MTBLS1_sampleMetadata.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/MTBLS1_sampleMetadata.tabular Thu Nov 24 12:11:04 2016 -0500 |
b |
@@ -0,0 +1,24 @@ +Sample SampleOrder +ADG10003u_007 1 +ADG10003u_008 2 +ADG10003u_009 3 +ADG10003u_010 4 +ADG10003u_015 5 +ADG10003u_016 6 +ADG10003u_017 7 +ADG10003u_021 8 +ADG10003u_022 9 +ADG10003u_023 10 +ADG10003u_051 11 +ADG10003u_052 12 +ADG10003u_053 13 +ADG10003u_066 14 +ADG10003u_067 15 +ADG10003u_071 16 +ADG10003u_072 17 +ADG10003u_073 18 +ADG10003u_087 19 +ADG10003u_088 20 +ADG10003u_089 21 +ADG10003u_097 22 +ADG10003u_098 23 |
b |
diff -r 000000000000 -r d690c5ad932f test-data/MTBLS1_variableMetadata.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/MTBLS1_variableMetadata.tabular Thu Nov 24 12:11:04 2016 -0500 |
b |
@@ -0,0 +1,595 @@ +Bucket VariableOrder +B9.295 1 +B9.286 2 +B9.276 3 +B9.266 4 +B9.255 5 +B9.246 6 +B9.236 7 +B9.226 8 +B9.215 9 +B9.206 10 +B9.196 11 +B9.186 12 +B9.175 13 +B9.165 14 +B9.156 15 +B9.146 16 +B9.135 17 +B9.126 18 +B9.116 19 +B9.106 20 +B9.095 21 +B9.085 22 +B9.076 23 +B9.066 24 +B9.055 25 +B9.046 26 +B9.036 27 +B9.026 28 +B9.015 29 +B9.005 30 +B8.996 31 +B8.986 32 +B8.975 33 +B8.966 34 +B8.956 35 +B8.946 36 +B8.935 37 +B8.925 38 +B8.916 39 +B8.905 40 +B8.895 41 +B8.886 42 +B8.876 43 +B8.865 44 +B8.855 45 +B8.845 46 +B8.836 47 +B8.825 48 +B8.815 49 +B8.806 50 +B8.796 51 +B8.785 52 +B8.775 53 +B8.765 54 +B8.756 55 +B8.745 56 +B8.735 57 +B8.726 58 +B8.716 59 +B8.705 60 +B8.695 61 +B8.685 62 +B8.676 63 +B8.665 64 +B8.655 65 +B8.646 66 +B8.636 67 +B8.625 68 +B8.615 69 +B8.605 70 +B8.596 71 +B8.585 72 +B8.575 73 +B8.565 74 +B8.556 75 +B8.545 76 +B8.535 77 +B8.525 78 +B8.516 79 +B8.505 80 +B8.495 81 +B8.485 82 +B8.476 83 +B8.465 84 +B8.455 85 +B8.445 86 +B8.436 87 +B8.425 88 +B8.415 89 +B8.405 90 +B8.396 91 +B8.385 92 +B8.375 93 +B8.365 94 +B8.356 95 +B8.345 96 +B8.335 97 +B8.325 98 +B8.316 99 +B8.305 100 +B8.295 101 +B8.285 102 +B8.276 103 +B8.265 104 +B8.255 105 +B8.245 106 +B8.236 107 +B8.225 108 +B8.215 109 +B8.205 110 +B8.196 111 +B8.185 112 +B8.175 113 +B8.165 114 +B8.156 115 +B8.145 116 +B8.135 117 +B8.125 118 +B8.116 119 +B8.105 120 +B8.096 121 +B8.086 122 +B8.076 123 +B8.065 124 +B8.056 125 +B8.046 126 +B8.036 127 +B8.025 128 +B8.016 129 +B8.006 130 +B7.996 131 +B7.985 132 +B7.976 133 +B7.966 134 +B7.956 135 +B7.945 136 +B7.936 137 +B7.926 138 +B7.916 139 +B7.905 140 +B7.896 141 +B7.886 142 +B7.876 143 +B7.865 144 +B7.856 145 +B7.846 146 +B7.836 147 +B7.825 148 +B7.816 149 +B7.806 150 +B7.796 151 +B7.785 152 +B7.776 153 +B7.766 154 +B7.756 155 +B7.745 156 +B7.736 157 +B7.726 158 +B7.716 159 +B7.705 160 +B7.696 161 +B7.686 162 +B7.676 163 +B7.665 164 +B7.656 165 +B7.646 166 +B7.636 167 +B7.625 168 +B7.616 169 +B7.606 170 +B7.596 171 +B7.585 172 +B7.575 173 +B7.566 174 +B7.556 175 +B7.545 176 +B7.535 177 +B7.526 178 +B7.516 179 +B7.505 180 +B7.495 181 +B7.486 182 +B7.476 183 +B7.465 184 +B7.455 185 +B7.446 186 +B7.436 187 +B7.425 188 +B7.415 189 +B7.406 190 +B7.396 191 +B7.385 192 +B7.375 193 +B7.366 194 +B7.356 195 +B7.345 196 +B7.335 197 +B7.326 198 +B7.316 199 +B7.305 200 +B7.295 201 +B7.286 202 +B7.275 203 +B7.265 204 +B7.255 205 +B7.246 206 +B7.235 207 +B7.225 208 +B7.216 209 +B7.206 210 +B7.195 211 +B7.185 212 +B7.175 213 +B7.166 214 +B7.155 215 +B7.145 216 +B7.136 217 +B7.126 218 +B7.115 219 +B7.105 220 +B7.096 221 +B7.086 222 +B7.075 223 +B7.065 224 +B7.056 225 +B7.046 226 +B7.035 227 +B7.025 228 +B7.016 229 +B7.006 230 +B6.995 231 +B6.985 232 +B6.976 233 +B6.966 234 +B6.955 235 +B6.945 236 +B6.935 237 +B6.926 238 +B6.915 239 +B6.905 240 +B6.895 241 +B6.886 242 +B6.875 243 +B6.865 244 +B6.855 245 +B6.846 246 +B6.835 247 +B6.825 248 +B6.815 249 +B6.806 250 +B6.795 251 +B6.785 252 +B6.775 253 +B6.766 254 +B6.755 255 +B6.745 256 +B6.735 257 +B6.726 258 +B6.715 259 +B6.705 260 +B6.695 261 +B6.686 262 +B6.675 263 +B6.665 264 +B6.655 265 +B6.646 266 +B6.635 267 +B6.625 268 +B6.615 269 +B6.606 270 +B6.595 271 +B6.585 272 +B6.575 273 +B6.566 274 +B6.555 275 +B6.545 276 +B6.535 277 +B6.526 278 +B6.515 279 +B6.505 280 +B6.495 281 +B6.486 282 +B6.475 283 +B6.466 284 +B6.456 285 +B6.446 286 +B6.435 287 +B6.426 288 +B6.416 289 +B6.406 290 +B6.395 291 +B6.386 292 +B6.376 293 +B6.366 294 +B6.355 295 +B6.346 296 +B6.336 297 +B6.326 298 +B6.315 299 +B6.306 300 +B6.296 301 +B6.286 302 +B6.275 303 +B6.266 304 +B6.256 305 +B6.246 306 +B6.235 307 +B6.226 308 +B6.216 309 +B6.206 310 +B6.195 311 +B6.186 312 +B6.176 313 +B6.166 314 +B6.155 315 +B6.146 316 +B6.136 317 +B6.126 318 +B6.115 319 +B6.106 320 +B6.096 321 +B6.086 322 +B6.075 323 +B6.066 324 +B6.056 325 +B6.046 326 +B6.035 327 +B6.026 328 +B6.016 329 +B6.006 330 +B4.236 331 +B4.226 332 +B4.216 333 +B4.205 334 +B4.196 335 +B4.186 336 +B4.176 337 +B4.165 338 +B4.155 339 +B4.146 340 +B4.136 341 +B4.125 342 +B4.115 343 +B4.106 344 +B4.096 345 +B4.085 346 +B4.075 347 +B4.066 348 +B4.056 349 +B4.045 350 +B4.035 351 +B4.026 352 +B4.015 353 +B4.005 354 +B3.995 355 +B3.186 356 +B3.175 357 +B3.166 358 +B3.156 359 +B3.146 360 +B3.135 361 +B3.126 362 +B3.116 363 +B3.106 364 +B3.095 365 +B3.086 366 +B3.076 367 +B3.066 368 +B3.055 369 +B3.046 370 +B3.036 371 +B3.026 372 +B3.015 373 +B3.006 374 +B2.996 375 +B2.986 376 +B2.975 377 +B2.966 378 +B2.956 379 +B2.946 380 +B2.935 381 +B2.926 382 +B2.916 383 +B2.906 384 +B2.895 385 +B2.886 386 +B2.876 387 +B2.866 388 +B2.855 389 +B2.846 390 +B2.836 391 +B2.826 392 +B2.815 393 +B2.806 394 +B2.796 395 +B2.786 396 +B2.775 397 +B2.766 398 +B2.756 399 +B2.746 400 +B2.735 401 +B2.726 402 +B2.716 403 +B2.706 404 +B2.695 405 +B2.686 406 +B2.676 407 +B2.666 408 +B2.655 409 +B2.646 410 +B2.636 411 +B2.626 412 +B2.615 413 +B2.606 414 +B2.596 415 +B2.586 416 +B2.575 417 +B2.566 418 +B2.556 419 +B2.546 420 +B2.535 421 +B2.526 422 +B2.516 423 +B2.506 424 +B2.495 425 +B2.486 426 +B2.476 427 +B2.466 428 +B2.455 429 +B2.446 430 +B2.436 431 +B2.426 432 +B2.415 433 +B2.406 434 +B2.396 435 +B2.385 436 +B2.375 437 +B2.365 438 +B2.356 439 +B2.345 440 +B2.335 441 +B2.325 442 +B2.316 443 +B2.305 444 +B2.295 445 +B2.285 446 +B2.276 447 +B2.265 448 +B2.255 449 +B2.245 450 +B2.236 451 +B2.225 452 +B2.215 453 +B2.205 454 +B2.196 455 +B2.185 456 +B2.175 457 +B2.165 458 +B2.156 459 +B2.145 460 +B2.135 461 +B2.126 462 +B2.116 463 +B2.105 464 +B2.095 465 +B2.086 466 +B2.076 467 +B2.065 468 +B2.055 469 +B2.045 470 +B2.036 471 +B2.025 472 +B2.015 473 +B2.005 474 +B1.994 475 +B1.985 476 +B1.974 477 +B1.964 478 +B1.954 479 +B1.945 480 +B1.934 481 +B1.924 482 +B1.914 483 +B1.905 484 +B1.894 485 +B1.884 486 +B1.874 487 +B1.865 488 +B1.854 489 +B1.844 490 +B1.834 491 +B1.825 492 +B1.814 493 +B1.804 494 +B1.794 495 +B1.785 496 +B1.774 497 +B1.764 498 +B1.754 499 +B1.743 500 +B1.734 501 +B1.723 502 +B1.713 503 +B1.703 504 +B1.694 505 +B1.683 506 +B1.673 507 +B1.663 508 +B1.654 509 +B1.643 510 +B1.633 511 +B1.623 512 +B1.612 513 +B1.603 514 +B1.592 515 +B1.582 516 +B1.572 517 +B1.563 518 +B1.552 519 +B1.542 520 +B1.532 521 +B1.523 522 +B1.512 523 +B1.502 524 +B1.491 525 +B1.482 526 +B1.472 527 +B1.461 528 +B1.451 529 +B1.442 530 +B1.432 531 +B1.421 532 +B1.411 533 +B1.401 534 +B1.392 535 +B1.381 536 +B1.371 537 +B1.36 538 +B1.351 539 +B1.341 540 +B1.33 541 +B1.32 542 +B1.31 543 +B1.301 544 +B1.29 545 +B1.28 546 +B1.27 547 +B1.261 548 +B1.25 549 +B1.239 550 +B1.229 551 +B1.22 552 +B1.21 553 +B1.199 554 +B1.189 555 +B1.18 556 +B1.17 557 +B1.159 558 +B1.149 559 +B1.139 560 +B1.129 561 +B1.119 562 +B1.108 563 +B1.098 564 +B1.089 565 +B1.079 566 +B1.068 567 +B1.058 568 +B1.048 569 +B1.039 570 +B1.028 571 +B1.018 572 +B1.008 573 +B0.998 574 +B0.988 575 +B0.977 576 +B0.967 577 +B0.958 578 +B0.948 579 +B0.937 580 +B0.926 581 +B0.916 582 +B0.907 583 +B0.897 584 +B0.886 585 +B0.876 586 +B0.866 587 +B0.857 588 +B0.846 589 +B0.836 590 +B0.826 591 +B0.816 592 +B0.806 593 +B0.8 594 |