Repository 'nmr_bucketing'
hg clone https://toolshed.g2.bx.psu.edu/repos/marie-tremblay-metatoul/nmr_bucketing

Changeset 12:4d5c06b46c2f (2017-08-10)
Previous changeset 11:ed40bbda7959 (2017-05-05)
Commit message:
Uploaded
modified:
nmr_bucketing/NmrBucketing_script.R
nmr_bucketing/NmrBucketing_wrapper.R
nmr_bucketing/NmrBucketing_xml.xml
nmr_bucketing/README.rst
nmr_bucketing/test-data/MTBLS1_bucketedData.tabular
nmr_bucketing/test-data/MTBLS1_variableMetadata.tabular
added:
nmr_bucketing/.Rhistory
removed:
nmr_bucketing/planemo_test.sh
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/NmrBucketing_script.R
--- a/nmr_bucketing/NmrBucketing_script.R Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/NmrBucketing_script.R Thu Aug 10 05:21:09 2017 -0400
b
@@ -251,8 +251,13 @@
   rownames(variableMetadata) <- rownames(bucketedSpectra)
   colnames(variableMetadata) <- "VariableOrder"
 
-
-  return(list(bucketedSpectra,sampleMetadata,variableMetadata,ppm)) # ,truncatedSpectrum_matrice
+  if (fileType=="zip")
+  {
+    return(list(bucketedSpectra,sampleMetadata,variableMetadata,ppm))
+  } else 
+  {
+    return(list(bucketedSpectra,variableMetadata,ppm))
+  }
 }
 
 
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/NmrBucketing_wrapper.R
--- a/nmr_bucketing/NmrBucketing_wrapper.R Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/NmrBucketing_wrapper.R Thu Aug 10 05:21:09 2017 -0400
[
@@ -39,7 +39,7 @@
 ## Libraries laoding
 ##------------------------------
 # For parseCommandArgs function
-library(batch) 
+library(batch)
 # For cumtrapz function
 library(pracma)
 
@@ -81,14 +81,7 @@
  zipfile= argLs[["zipfile"]]
  directory=unzip(zipfile, list=F)
  directory=paste(getwd(),strsplit(directory[1],"/")[[1]][2],sep="/")
-} else if (!is.null(argLs[["library"]])){
- fileType="zip"
- 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)
- }
+    sampleMetadataOut <- argLs[["sampleOut"]]
 } else if (!is.null(argLs[["tsvfile"]])){
  fileType="tsv"
  directory <- read.table(argLs[["tsvfile"]],check.names=FALSE,header=TRUE,sep="\t")
@@ -114,11 +107,19 @@
 nomGraphe <- argLs[["graphOut"]]
 dataMatrixOut <- argLs[["dataMatrixOut"]]
 logFile <- argLs[["logOut"]]
-if (fileType=="zip")
-{
-  sampleMetadataOut <- argLs[["sampleOut"]]
-  variableMetadataOut <- argLs[["variableOut"]]
+variableMetadataOut <- argLs[["variableOut"]]
+
+## Checking R packages
+##--------------------
+sink(logFile)
+cat("\t PACKAGE INFO \n")
+pkgs=c("batch","pracma")
+for(pkg in pkgs) {
+    suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
+    cat(pkg,"\t",as.character(packageVersion(pkg)),"\n",sep="")
 }
+cat("\n")
+
 
 ## Checking arguments
 ##-------------------
@@ -126,18 +127,25 @@
 
 if(length(error.stock) > 1)
   stop(error.stock)
-  
-  
+
+
 ## Computation
 ##------------
-outputs <- NmrBucketing(fileType=fileType, fileName=directory, leftBorder=leftBorder, rightBorder=rightBorder, bucketSize=bucketSize, 
- exclusionZones=exclusionZones, exclusionZonesBorders=exclusionZonesBorders, graph=graphique, nomFichier=nomGraphe, 
+outputs <- NmrBucketing(fileType=fileType, fileName=directory, leftBorder=leftBorder, rightBorder=rightBorder, bucketSize=bucketSize,
+ exclusionZones=exclusionZones, exclusionZonesBorders=exclusionZonesBorders, graph=graphique, nomFichier=nomGraphe,
  savLog.txtC=logFile)
 data_bucket <- outputs[[1]]
-data_sample <- outputs[[2]]
-data_variable <- outputs[[3]]
-ppm <- outputs[[4]]
-ppm <- round(ppm,2)
+if (fileType=="zip")
+{
+ data_sample <- outputs[[2]]
+ data_variable <- outputs[[3]]
+ ppm <- outputs[[4]]
+} else
+{
+ data_variable <- outputs[[2]]
+ ppm <- outputs[[3]]
+}
+ppm <- round(ppm,1)
 
 ## Graphical outputs
 ##------------------
@@ -154,20 +162,33 @@
   
   # Graphic Device opening
   pdf(nomGraphe,onefile=TRUE)
-  
+  graphical.zone.length <- length(exclusionZonesBorders)  
   if (graphique == "Overlay")
   {
     # Global spectral window
     spectra <- data.frame(t(data_bucket))
     drawSpec(spectra,xlab="", ylab="Intensity", main="")
     
+    ## Zoomed spectral window depending on exclusion zone(s)
+    if (nbZones != 0)
+    {
+   n <- length(excludedZone)
+   drawSpec(spectra[,1:which(ppm == round(excludedZone[n],1))[1]],xlab="", ylab="spectra", main="")
 
+   n <- n - 1
+   while (n >= nbZones & nbZones > 1)
+   {
+ drawSpec(spectra[,(which(ppm == round(excludedZone[n],1)[1])):(which(ppm == round(excludedZone[n-1],1)[1]))],xlab="", ylab="spectra", main="")
+ n <- n - 2
+   }
+   drawSpec(spectra[,(which(ppm == round(excludedZone[1])[1],1)):ncol(spectra)],xlab="", ylab="spectra", main="")
+    }
   }
   else
   {
     for (i in 1:ncol(data_bucket))
     {
-##       par(mfrow=c((nbZones+2),1))
+      par(mfrow=c((graphical.zone.length+2),1))
       n <- length(excludedZone)
       spectra <- t(data_bucket[,i])
    names(spectra) <- rownames(data_bucket)
@@ -181,10 +202,54 @@
    xPos = c(0:nAxisPos) * tempVal
    axis(1, at = xPos, labels = rownames(data_bucket)[xPos + startP])
      
-
-    }
+      ## Zoomed spectral window depending on exclusion zone(s)
+   for (g in 1:graphical.zone.length)
+   {
+ spectra <- t(data_bucket[,i])
+ names(spectra) <- rownames(data_bucket)
+ if (g==1)
+ {
+ plot(1:length(spectra[1:(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1])]), 
+  spectra[1:(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1])], type='l', xlab="", ylab="Intensity", main="", xaxt = "n")
+ xPos <- 1
+ nAxisPos <- 4
+ startP <- length(nAxisPos) 
+ endP <- length(1:(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1]))
+ GraphRange <- c(startP:endP)
+ tempVal = trunc(length(GraphRange)/nAxisPos)
+ xPos = c(0:nAxisPos) * tempVal
+ axis(1, at = xPos, labels = rownames(data_bucket)[xPos + startP])
+ } else 
+ {
+ plot(1:length(spectra[(which(ppm == round(exclusionZonesBorders[[g-1]][2],1))[1]):(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1])]), 
+  spectra[(which(ppm == round(exclusionZonesBorders[[g-1]][2],1))[1]):(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1])], 
+  type='l', xlab="", ylab="Intensity", main="", xaxt = "n")
+ xPos <- 1
+ nAxisPos <- 4
+ startP <- length(nAxisPos) 
+ endP <- length(spectra[(which(ppm == round(exclusionZonesBorders[[g-1]][2],1))[1]):(which(ppm == round(exclusionZonesBorders[[g]][1],1))[1])])
+ GraphRange <- c(startP:endP)
+ tempVal = trunc(length(GraphRange)/nAxisPos)
+ xPos = c(0:nAxisPos) * tempVal
+ noms <- rownames(data_bucket)[xPos + which(ppm == round(exclusionZonesBorders[[g-1]][2],1))[1]]
+ axis(1, at = xPos, labels = noms)
+ }
+   }
+ plot(1:length(spectra[(which(ppm == round(exclusionZonesBorders[[g]][2],1))[1]):nrow(data_bucket)]), 
+  spectra[(which(ppm == round(exclusionZonesBorders[[g]][2],1))[1]):nrow(data_bucket)], type='l', xlab="", ylab="Intensity", main="", xaxt = "n")
+ xPos <- 1
+ nAxisPos <- 4
+ startP <- length(nAxisPos) 
+ endP <- length((which(ppm == round(exclusionZonesBorders[[g]][2],1))[1]):nrow(data_bucket))
+ GraphRange <- c(startP:endP)
+ tempVal = trunc(length(GraphRange)/nAxisPos)
+ xPos = c(0:nAxisPos) * tempVal
+ noms <- c(rownames(data_bucket)[xPos[-5] + which(ppm == round(exclusionZonesBorders[[g]][2],1))[1]], rownames(data_bucket)[which(ppm == rightBorder)[1]])
+ print(noms)
+ axis(1, at = xPos, labels = noms)
+ }
   }
-  dev.off()
+    invisible(dev.off())
 }
 
 ## Saving
@@ -193,25 +258,22 @@
 data_bucket <- cbind(rownames(data_bucket),data_bucket)
 colnames(data_bucket) <- c("Bucket",colnames(data_bucket)[-1])
 write.table(data_bucket,file=argLs$dataMatrixOut,quote=FALSE,row.names=FALSE,sep="\t")
+  # Sample
 if (fileType=="zip")
 {
-  # Sample
-  data_sample <- cbind(rownames(data_sample),data_sample)
-  colnames(data_sample) <- c("Sample",colnames(data_sample)[-1])
-  write.table(data_sample,file=argLs$sampleOut,quote=FALSE,row.names=FALSE,sep="\t")
-    # Variable
-  data_variable <- cbind(rownames(data_variable),data_variable)
-  colnames(data_variable) <- c("Bucket",colnames(data_variable)[-1])
-  write.table(data_variable,file=argLs$variableOut,quote=FALSE,row.names=FALSE,sep="\t")
+ data_sample <- cbind(rownames(data_sample),data_sample)
+ colnames(data_sample) <- c("Sample",colnames(data_sample)[-1])
+ write.table(data_sample,file=argLs$sampleOut,quote=FALSE,row.names=FALSE,sep="\t")
 }
+  # Variable
+data_variable <- cbind(rownames(data_variable),data_variable)
+colnames(data_variable) <- c("Bucket",colnames(data_variable)[-1])
+write.table(data_variable,file=argLs$variableOut,quote=FALSE,row.names=FALSE,sep="\t")
+
 
 ## Ending
 ##---------------------
-
 cat("\nEnd of 'NMR bucketing' Galaxy module call: ", as.character(Sys.time()), sep = "")
-
-## sink(NULL)
-
+sink()
 options(stringsAsFactors = strAsFacL)
-
 rm(list = ls())
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/NmrBucketing_xml.xml
--- a/nmr_bucketing/NmrBucketing_xml.xml Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/NmrBucketing_xml.xml Thu Aug 10 05:21:09 2017 -0400
b
@@ -1,4 +1,4 @@
-<tool id="NmrBucketing" name="NMR_Bucketing" version="1.0.3">
+<tool id="NmrBucketing" name="NMR_Bucketing" version="2.0.3">
 
     <description> Bucketing and integration of NMR Bruker raw data</description>
 
@@ -20,7 +20,6 @@
             zipfile '$inputs.zip_file'
         #end if
 
-
         ## Bucket width
         bucket_width $bucket_width
 
@@ -28,10 +27,6 @@
         left_border $left_border
         right_border $right_border
 
-
-        ## Spectra representation
-        graphType $graphType
-
         ## Exclusion zone
         zone_exclusion_choices.choice ${zone_exclusion_choices.choice}
         #if str($zone_exclusion_choices.choice) == 'yes':
@@ -41,12 +36,15 @@
             #end for
         #end if
 
+        ## Spectra representation
+        graphType $graphType
+
         ## Outputs
-        logOut log.log
+        logOut $logOut
         dataMatrixOut '$dataMatrixOut'
         sampleOut '$sampleOut'
         variableOut '$variableOut'
-        graphOut '$graphOut'; cat log.log
+        graphOut '$graphOut'
     </command>
 
     <inputs>
@@ -92,6 +90,7 @@
     </inputs>
 
     <outputs>
+ <data format="txt" name="logOut" label="${tool.name}_log" />
         <data format="tabular" name="sampleOut" label="${tool.name}_sampleMetadata" />
         <data format="tabular" name="variableOut" label="${tool.name}_variableMetadata" />
         <data format="tabular" name="dataMatrixOut" label="${tool.name}_bucketedData" />
@@ -270,6 +269,13 @@
 
 Changelog/News
 --------------
+**Version 2.0.3 - 10/08/2017**
+
+- BUG CORRECTION: “zoomed” representations: x-axis labels + sampleMetadata output: empty
+
+**Version 2.0.2 - 21/04/2017**
+
+- IMPROVEMENT: Add “zoomed” representations of bucketed spectra, depending on exclusion zone borders
 
 **Version 1.0.3 - 24/10/2016**
 
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/README.rst
--- a/nmr_bucketing/README.rst Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/README.rst Thu Aug 10 05:21:09 2017 -0400
b
@@ -2,6 +2,10 @@
 Changelog/News
 --------------
 
+**Version 2.0.2 - 21/04/2017**
+
+- IMPROVEMENT: Add “zoomed” representations of bucketed spectra, depending on exclusion zone borders
+
 **Version 1.0.3 - 24/10/2016**
 
 - ENHANCEMENT: add possibility of bucketing processed files (upstream tools)
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/planemo_test.sh
--- a/nmr_bucketing/planemo_test.sh Fri May 05 07:08:14 2017 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,12 +0,0 @@
-planemo conda_init
-planemo conda_install .
-planemo test --install_galaxy --conda_dependency_resolution --galaxy_branch "dev"
-
-#All 1 test(s) executed passed.
-#nmr_bucketing[0]: passed
-
-
-planemo shed_test -t testtoolshed --install_galaxy --galaxy_branch "dev"
-
-#All 1 test(s) executed passed.
-#testtoolshed.g2.bx.psu.edu/repos/marie-tremblay-metatoul/nmr_bucketing/NmrBucketing/1.0.1[0]: passed
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/test-data/MTBLS1_bucketedData.tabular
--- a/nmr_bucketing/test-data/MTBLS1_bucketedData.tabular Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/test-data/MTBLS1_bucketedData.tabular Thu Aug 10 05:21:09 2017 -0400
b
b'@@ -329,6 +329,182 @@\n B6.026\t0.000159319062283075\t0.000446721409572097\t0.000382633919227815\t0.000126942645667836\t0.000166313059734916\t8.94758281061922e-05\t0.000385838304457983\t2.87763377558405e-05\t0.000360994039934173\t0.000144325493649279\t0.000361987046197092\t0.000483733340109536\t0.000297916109701254\t0.00053237165368555\t0.000472963510270079\t0.000780680118728634\t0.00048247577268934\t0.000479026836151301\t0.000622055982981826\t0.000302910238854912\t0.000343759407196818\t0.000314304432305254\t0.000481969249797228\r\n B6.016\t0.000205982599932515\t0.00039803027868312\t0.000331140965056563\t0.000138075073133353\t0.000217185180911849\t0.000104037016792196\t0.000398311763845808\t1.16037245322327e-05\t0.000447143055443722\t0.000159497854969022\t0.000371762570375265\t0.000465691083996931\t0.000299910086232853\t0.00061280087605037\t0.000557513875257174\t0.000980090773824587\t0.000530141243540867\t0.00053568835872767\t0.000630570161986447\t0.000290758769268749\t0.000305567744411625\t0.000346585584205536\t0.000473120994151219\r\n B6.006\t0.000232459376259715\t0.000461718129259159\t0.000334235417600277\t0.00015417147012816\t0.000280538916555807\t0.000127453841913459\t0.000463489454263623\t3.55521723100418e-06\t0.000435178821173875\t0.000127193955611512\t0.00043096911173487\t0.00053027228506661\t0.000342325570632658\t0.000677227900457431\t0.000567599655082813\t0.000894296306076175\t0.000436863790820561\t0.000531758256112441\t0.000705485193834934\t0.000315880862281865\t0.000312791778660212\t0.000497797035112305\t0.000491336230689585\r\n+B5.995\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.986\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.976\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.966\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.955\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.946\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.936\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.926\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.915\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.906\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.896\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.886\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.875\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.865\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.856\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.846\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.835\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.825\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.816\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.806\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.795\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.785\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.776\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.766\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.755\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.745\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.736\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.726\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.715\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.705\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.696\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.686\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.675\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.665\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.656\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.645\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.635\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.625\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.616\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.605\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.595\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.585\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.576\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.565\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.555\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B5.545\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t'..b'\t0\t0\t0\t0\r\n+B3.655\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.645\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.635\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.626\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.615\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.605\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.595\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.586\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.575\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.565\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.555\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.546\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.535\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.525\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.515\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.506\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.495\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.485\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.475\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.466\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.455\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.445\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.435\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.426\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.415\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.405\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.395\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.386\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.375\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.365\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.355\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.346\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.335\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.325\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.315\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.306\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.295\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.285\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.275\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.266\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.255\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.245\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.235\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.226\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.215\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.206\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n+B3.196\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\r\n B3.186\t0.00201144349061277\t0.00511672037422703\t0.00674372379556355\t0.00151261394154303\t0.00277381893931782\t0.00364368121419522\t0.00597854377479009\t0.00126422902619491\t0.00228330556912456\t0.000592834720808707\t0.00409756948177746\t0.00858495065383133\t0.00555645039812487\t0.00531570118698859\t0.00261400429832047\t0.00434695027640667\t0.00522282836963602\t0.0056577622741263\t0.00637764246269668\t0.00747538063145599\t0.0077928119950562\t0.00601279982707526\t0.00511387337977165\r\n B3.175\t0.00271933639260247\t0.00444723479769846\t0.00545010249625092\t0.00155169299393345\t0.00314947135138621\t0.00322658452372139\t0.00652060628475486\t0.000964652386371574\t0.0024960825999393\t0.000426190059370256\t0.00466079876301094\t0.00535515067839509\t0.00334321604691847\t0.00672375535131703\t0.00288327435749545\t0.0037110204500203\t0.00573264560272066\t0.00564868279892462\t0.0114159294554811\t0.00740880297991976\t0.00854867898860106\t0.00483235702158968\t0.00564666831502778\r\n B3.166\t0.0033738157127105\t0.00908146849391229\t0.00656013183500732\t0.00112337476520255\t0.00297405204131381\t0.00472234315951998\t0.00662671866565088\t0.00085232375651865\t0.00380943225185647\t0.000339194817058512\t0.00626504143039219\t0.00742313954850819\t0.00533575611465142\t0.00570474608592227\t0.00321374617495607\t0.00827938408720738\t0.00566144772521832\t0.00495277906541919\t0.0128711668738587\t0.00723306673585474\t0.00869104188775517\t0.00605036300415423\t0.00540113831614767\r\n'
b
diff -r ed40bbda7959 -r 4d5c06b46c2f nmr_bucketing/test-data/MTBLS1_variableMetadata.tabular
--- a/nmr_bucketing/test-data/MTBLS1_variableMetadata.tabular Fri May 05 07:08:14 2017 -0400
+++ b/nmr_bucketing/test-data/MTBLS1_variableMetadata.tabular Thu Aug 10 05:21:09 2017 -0400
b
b'@@ -329,267 +329,523 @@\n B6.026\t328\r\n B6.016\t329\r\n B6.006\t330\r\n-B4.236\t331\r\n-B4.226\t332\r\n-B4.216\t333\r\n-B4.205\t334\r\n-B4.196\t335\r\n-B4.186\t336\r\n-B4.176\t337\r\n-B4.165\t338\r\n-B4.155\t339\r\n-B4.146\t340\r\n-B4.136\t341\r\n-B4.125\t342\r\n-B4.115\t343\r\n-B4.106\t344\r\n-B4.096\t345\r\n-B4.085\t346\r\n-B4.075\t347\r\n-B4.066\t348\r\n-B4.056\t349\r\n-B4.045\t350\r\n-B4.035\t351\r\n-B4.026\t352\r\n-B4.015\t353\r\n-B4.005\t354\r\n-B3.995\t355\r\n-B3.186\t356\r\n-B3.175\t357\r\n-B3.166\t358\r\n-B3.156\t359\r\n-B3.146\t360\r\n-B3.135\t361\r\n-B3.126\t362\r\n-B3.116\t363\r\n-B3.106\t364\r\n-B3.095\t365\r\n-B3.086\t366\r\n-B3.076\t367\r\n-B3.066\t368\r\n-B3.055\t369\r\n-B3.046\t370\r\n-B3.036\t371\r\n-B3.026\t372\r\n-B3.015\t373\r\n-B3.006\t374\r\n-B2.996\t375\r\n-B2.986\t376\r\n-B2.975\t377\r\n-B2.966\t378\r\n-B2.956\t379\r\n-B2.946\t380\r\n-B2.935\t381\r\n-B2.926\t382\r\n-B2.916\t383\r\n-B2.906\t384\r\n-B2.895\t385\r\n-B2.886\t386\r\n-B2.876\t387\r\n-B2.866\t388\r\n-B2.855\t389\r\n-B2.846\t390\r\n-B2.836\t391\r\n-B2.826\t392\r\n-B2.815\t393\r\n-B2.806\t394\r\n-B2.796\t395\r\n-B2.786\t396\r\n-B2.775\t397\r\n-B2.766\t398\r\n-B2.756\t399\r\n-B2.746\t400\r\n-B2.735\t401\r\n-B2.726\t402\r\n-B2.716\t403\r\n-B2.706\t404\r\n-B2.695\t405\r\n-B2.686\t406\r\n-B2.676\t407\r\n-B2.666\t408\r\n-B2.655\t409\r\n-B2.646\t410\r\n-B2.636\t411\r\n-B2.626\t412\r\n-B2.615\t413\r\n-B2.606\t414\r\n-B2.596\t415\r\n-B2.586\t416\r\n-B2.575\t417\r\n-B2.566\t418\r\n-B2.556\t419\r\n-B2.546\t420\r\n-B2.535\t421\r\n-B2.526\t422\r\n-B2.516\t423\r\n-B2.506\t424\r\n-B2.495\t425\r\n-B2.486\t426\r\n-B2.476\t427\r\n-B2.466\t428\r\n-B2.455\t429\r\n-B2.446\t430\r\n-B2.436\t431\r\n-B2.426\t432\r\n-B2.415\t433\r\n-B2.406\t434\r\n-B2.396\t435\r\n-B2.385\t436\r\n-B2.375\t437\r\n-B2.365\t438\r\n-B2.356\t439\r\n-B2.345\t440\r\n-B2.335\t441\r\n-B2.325\t442\r\n-B2.316\t443\r\n-B2.305\t444\r\n-B2.295\t445\r\n-B2.285\t446\r\n-B2.276\t447\r\n-B2.265\t448\r\n-B2.255\t449\r\n-B2.245\t450\r\n-B2.236\t451\r\n-B2.225\t452\r\n-B2.215\t453\r\n-B2.205\t454\r\n-B2.196\t455\r\n-B2.185\t456\r\n-B2.175\t457\r\n-B2.165\t458\r\n-B2.156\t459\r\n-B2.145\t460\r\n-B2.135\t461\r\n-B2.126\t462\r\n-B2.116\t463\r\n-B2.105\t464\r\n-B2.095\t465\r\n-B2.086\t466\r\n-B2.076\t467\r\n-B2.065\t468\r\n-B2.055\t469\r\n-B2.045\t470\r\n-B2.036\t471\r\n-B2.025\t472\r\n-B2.015\t473\r\n-B2.005\t474\r\n-B1.994\t475\r\n-B1.985\t476\r\n-B1.974\t477\r\n-B1.964\t478\r\n-B1.954\t479\r\n-B1.945\t480\r\n-B1.934\t481\r\n-B1.924\t482\r\n-B1.914\t483\r\n-B1.905\t484\r\n-B1.894\t485\r\n-B1.884\t486\r\n-B1.874\t487\r\n-B1.865\t488\r\n-B1.854\t489\r\n-B1.844\t490\r\n-B1.834\t491\r\n-B1.825\t492\r\n-B1.814\t493\r\n-B1.804\t494\r\n-B1.794\t495\r\n-B1.785\t496\r\n-B1.774\t497\r\n-B1.764\t498\r\n-B1.754\t499\r\n-B1.743\t500\r\n-B1.734\t501\r\n-B1.723\t502\r\n-B1.713\t503\r\n-B1.703\t504\r\n-B1.694\t505\r\n-B1.683\t506\r\n-B1.673\t507\r\n-B1.663\t508\r\n-B1.654\t509\r\n-B1.643\t510\r\n-B1.633\t511\r\n-B1.623\t512\r\n-B1.612\t513\r\n-B1.603\t514\r\n-B1.592\t515\r\n-B1.582\t516\r\n-B1.572\t517\r\n-B1.563\t518\r\n-B1.552\t519\r\n-B1.542\t520\r\n-B1.532\t521\r\n-B1.523\t522\r\n-B1.512\t523\r\n-B1.502\t524\r\n-B1.491\t525\r\n-B1.482\t526\r\n-B1.472\t527\r\n-B1.461\t528\r\n-B1.451\t529\r\n-B1.442\t530\r\n-B1.432\t531\r\n-B1.421\t532\r\n-B1.411\t533\r\n-B1.401\t534\r\n-B1.392\t535\r\n-B1.381\t536\r\n-B1.371\t537\r\n-B1.36\t538\r\n-B1.351\t539\r\n-B1.341\t540\r\n-B1.33\t541\r\n-B1.32\t542\r\n-B1.31\t543\r\n-B1.301\t544\r\n-B1.29\t545\r\n-B1.28\t546\r\n-B1.27\t547\r\n-B1.261\t548\r\n-B1.25\t549\r\n-B1.239\t550\r\n-B1.229\t551\r\n-B1.22\t552\r\n-B1.21\t553\r\n-B1.199\t554\r\n-B1.189\t555\r\n-B1.18\t556\r\n-B1.17\t557\r\n-B1.159\t558\r\n-B1.149\t559\r\n-B1.139\t560\r\n-B1.129\t561\r\n-B1.119\t562\r\n-B1.108\t563\r\n-B1.098\t564\r\n-B1.089\t565\r\n-B1.079\t566\r\n-B1.068\t567\r\n-B1.058\t568\r\n-B1.048\t569\r\n-B1.039\t570\r\n-B1.028\t571\r\n-B1.018\t572\r\n-B1.008\t573\r\n-B0.998\t574\r\n-B0.988\t575\r\n-B0.977\t576\r\n-B0.967\t577\r\n-B0.958\t578\r\n-B0.948\t579\r\n-B0.937\t580\r\n-B0.926\t581\r\n-B0.916\t582\r\n-B0.907\t583\r\n-B0.897\t584\r\n-B0.886\t585\r\n-B0.876\t586\r\n-B0.866\t587\r\n-B0.857\t588\r\n-B0.846\t589\r\n-B0.836\t590\r\n-B0.826\t591\r\n-B0.816\t592\r\n-B0.806\t593\r\n-B0.8\t594\r\n+B5.995\t331\r\n+B5.986\t332\r\n+B5.976\t333\r\n+B5.966\t334\r\n+B5.955\t335\r\n+B5.946\t336\r\n+B5.936\t337\r\n+B5.926\t338\r\n+B5.915\t339\r\n+B5.906\t340\r\n+B5.896\t341\r\n+B5.886\t342\r\n+B5.875\t343\r\n+B5.865\t344\r\n+B5.856\t345\r\n+B5.846\t346\r\n+B5.835\t347\r\n+B5.825\t348\r\n+B5.816\t349\r\n+B5.806\t350\r\n+B5.795\t351\r\n+B5.785\t352\r\n+B5.776\t353\r\n+B5.766\t354\r\n+B5.755\t355\r\n+B5.745\t356\r\n+B5.736\t357\r\n+B5.726\t358\r\n+B5.715\t359\r\n+B5.705\t360\r\n+B5.696\t361\r\n+B5.686\t362\r\n+B5.675\t363\r\n+B5.665\t364\r\n+B5.656\t365\r\n+B5.645\t366\r\n+B5.635\t367\r\n+B5.625\t368\r\n+B5.616\t369\r\n+B5.605\t370'..b'885\t542\r\n+B3.876\t543\r\n+B3.866\t544\r\n+B3.855\t545\r\n+B3.845\t546\r\n+B3.836\t547\r\n+B3.826\t548\r\n+B3.815\t549\r\n+B3.805\t550\r\n+B3.796\t551\r\n+B3.786\t552\r\n+B3.775\t553\r\n+B3.765\t554\r\n+B3.756\t555\r\n+B3.746\t556\r\n+B3.735\t557\r\n+B3.725\t558\r\n+B3.716\t559\r\n+B3.706\t560\r\n+B3.695\t561\r\n+B3.685\t562\r\n+B3.675\t563\r\n+B3.666\t564\r\n+B3.655\t565\r\n+B3.645\t566\r\n+B3.635\t567\r\n+B3.626\t568\r\n+B3.615\t569\r\n+B3.605\t570\r\n+B3.595\t571\r\n+B3.586\t572\r\n+B3.575\t573\r\n+B3.565\t574\r\n+B3.555\t575\r\n+B3.546\t576\r\n+B3.535\t577\r\n+B3.525\t578\r\n+B3.515\t579\r\n+B3.506\t580\r\n+B3.495\t581\r\n+B3.485\t582\r\n+B3.475\t583\r\n+B3.466\t584\r\n+B3.455\t585\r\n+B3.445\t586\r\n+B3.435\t587\r\n+B3.426\t588\r\n+B3.415\t589\r\n+B3.405\t590\r\n+B3.395\t591\r\n+B3.386\t592\r\n+B3.375\t593\r\n+B3.365\t594\r\n+B3.355\t595\r\n+B3.346\t596\r\n+B3.335\t597\r\n+B3.325\t598\r\n+B3.315\t599\r\n+B3.306\t600\r\n+B3.295\t601\r\n+B3.285\t602\r\n+B3.275\t603\r\n+B3.266\t604\r\n+B3.255\t605\r\n+B3.245\t606\r\n+B3.235\t607\r\n+B3.226\t608\r\n+B3.215\t609\r\n+B3.206\t610\r\n+B3.196\t611\r\n+B3.186\t612\r\n+B3.175\t613\r\n+B3.166\t614\r\n+B3.156\t615\r\n+B3.146\t616\r\n+B3.135\t617\r\n+B3.126\t618\r\n+B3.116\t619\r\n+B3.106\t620\r\n+B3.095\t621\r\n+B3.086\t622\r\n+B3.076\t623\r\n+B3.066\t624\r\n+B3.055\t625\r\n+B3.046\t626\r\n+B3.036\t627\r\n+B3.026\t628\r\n+B3.015\t629\r\n+B3.006\t630\r\n+B2.996\t631\r\n+B2.986\t632\r\n+B2.975\t633\r\n+B2.966\t634\r\n+B2.956\t635\r\n+B2.946\t636\r\n+B2.935\t637\r\n+B2.926\t638\r\n+B2.916\t639\r\n+B2.906\t640\r\n+B2.895\t641\r\n+B2.886\t642\r\n+B2.876\t643\r\n+B2.866\t644\r\n+B2.855\t645\r\n+B2.846\t646\r\n+B2.836\t647\r\n+B2.826\t648\r\n+B2.815\t649\r\n+B2.806\t650\r\n+B2.796\t651\r\n+B2.786\t652\r\n+B2.775\t653\r\n+B2.766\t654\r\n+B2.756\t655\r\n+B2.746\t656\r\n+B2.735\t657\r\n+B2.726\t658\r\n+B2.716\t659\r\n+B2.706\t660\r\n+B2.695\t661\r\n+B2.686\t662\r\n+B2.676\t663\r\n+B2.666\t664\r\n+B2.655\t665\r\n+B2.646\t666\r\n+B2.636\t667\r\n+B2.626\t668\r\n+B2.615\t669\r\n+B2.606\t670\r\n+B2.596\t671\r\n+B2.586\t672\r\n+B2.575\t673\r\n+B2.566\t674\r\n+B2.556\t675\r\n+B2.546\t676\r\n+B2.535\t677\r\n+B2.526\t678\r\n+B2.516\t679\r\n+B2.506\t680\r\n+B2.495\t681\r\n+B2.486\t682\r\n+B2.476\t683\r\n+B2.466\t684\r\n+B2.455\t685\r\n+B2.446\t686\r\n+B2.436\t687\r\n+B2.426\t688\r\n+B2.415\t689\r\n+B2.406\t690\r\n+B2.396\t691\r\n+B2.385\t692\r\n+B2.375\t693\r\n+B2.365\t694\r\n+B2.356\t695\r\n+B2.345\t696\r\n+B2.335\t697\r\n+B2.325\t698\r\n+B2.316\t699\r\n+B2.305\t700\r\n+B2.295\t701\r\n+B2.285\t702\r\n+B2.276\t703\r\n+B2.265\t704\r\n+B2.255\t705\r\n+B2.245\t706\r\n+B2.236\t707\r\n+B2.225\t708\r\n+B2.215\t709\r\n+B2.205\t710\r\n+B2.196\t711\r\n+B2.185\t712\r\n+B2.175\t713\r\n+B2.165\t714\r\n+B2.156\t715\r\n+B2.145\t716\r\n+B2.135\t717\r\n+B2.126\t718\r\n+B2.116\t719\r\n+B2.105\t720\r\n+B2.095\t721\r\n+B2.086\t722\r\n+B2.076\t723\r\n+B2.065\t724\r\n+B2.055\t725\r\n+B2.045\t726\r\n+B2.036\t727\r\n+B2.025\t728\r\n+B2.015\t729\r\n+B2.005\t730\r\n+B1.994\t731\r\n+B1.985\t732\r\n+B1.974\t733\r\n+B1.964\t734\r\n+B1.954\t735\r\n+B1.945\t736\r\n+B1.934\t737\r\n+B1.924\t738\r\n+B1.914\t739\r\n+B1.905\t740\r\n+B1.894\t741\r\n+B1.884\t742\r\n+B1.874\t743\r\n+B1.865\t744\r\n+B1.854\t745\r\n+B1.844\t746\r\n+B1.834\t747\r\n+B1.825\t748\r\n+B1.814\t749\r\n+B1.804\t750\r\n+B1.794\t751\r\n+B1.785\t752\r\n+B1.774\t753\r\n+B1.764\t754\r\n+B1.754\t755\r\n+B1.743\t756\r\n+B1.734\t757\r\n+B1.723\t758\r\n+B1.713\t759\r\n+B1.703\t760\r\n+B1.694\t761\r\n+B1.683\t762\r\n+B1.673\t763\r\n+B1.663\t764\r\n+B1.654\t765\r\n+B1.643\t766\r\n+B1.633\t767\r\n+B1.623\t768\r\n+B1.612\t769\r\n+B1.603\t770\r\n+B1.592\t771\r\n+B1.582\t772\r\n+B1.572\t773\r\n+B1.563\t774\r\n+B1.552\t775\r\n+B1.542\t776\r\n+B1.532\t777\r\n+B1.523\t778\r\n+B1.512\t779\r\n+B1.502\t780\r\n+B1.491\t781\r\n+B1.482\t782\r\n+B1.472\t783\r\n+B1.461\t784\r\n+B1.451\t785\r\n+B1.442\t786\r\n+B1.432\t787\r\n+B1.421\t788\r\n+B1.411\t789\r\n+B1.401\t790\r\n+B1.392\t791\r\n+B1.381\t792\r\n+B1.371\t793\r\n+B1.36\t794\r\n+B1.351\t795\r\n+B1.341\t796\r\n+B1.33\t797\r\n+B1.32\t798\r\n+B1.31\t799\r\n+B1.301\t800\r\n+B1.29\t801\r\n+B1.28\t802\r\n+B1.27\t803\r\n+B1.261\t804\r\n+B1.25\t805\r\n+B1.239\t806\r\n+B1.229\t807\r\n+B1.22\t808\r\n+B1.21\t809\r\n+B1.199\t810\r\n+B1.189\t811\r\n+B1.18\t812\r\n+B1.17\t813\r\n+B1.159\t814\r\n+B1.149\t815\r\n+B1.139\t816\r\n+B1.129\t817\r\n+B1.119\t818\r\n+B1.108\t819\r\n+B1.098\t820\r\n+B1.089\t821\r\n+B1.079\t822\r\n+B1.068\t823\r\n+B1.058\t824\r\n+B1.048\t825\r\n+B1.039\t826\r\n+B1.028\t827\r\n+B1.018\t828\r\n+B1.008\t829\r\n+B0.998\t830\r\n+B0.988\t831\r\n+B0.977\t832\r\n+B0.967\t833\r\n+B0.958\t834\r\n+B0.948\t835\r\n+B0.937\t836\r\n+B0.926\t837\r\n+B0.916\t838\r\n+B0.907\t839\r\n+B0.897\t840\r\n+B0.886\t841\r\n+B0.876\t842\r\n+B0.866\t843\r\n+B0.857\t844\r\n+B0.846\t845\r\n+B0.836\t846\r\n+B0.826\t847\r\n+B0.816\t848\r\n+B0.806\t849\r\n+B0.8\t850\r\n'