changeset 0:51e4aa55ea04 draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/rawtools commit f57f55a2cb399c5cc8fdd63128970e5f875ca48e
author galaxyp
date Fri, 05 Apr 2019 04:16:26 -0400
parents
children
files README.rst RawFileReaderLicense.md rawtools.xml test-data/really_small.raw test-data/really_small.raw_Matrix.txt test-data/really_small.raw_Ms_BP_chromatogram.txt
diffstat 6 files changed, 467 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst	Fri Apr 05 04:16:26 2019 -0400
@@ -0,0 +1,34 @@
+Raw Tools
+=======================
+
+- Home: <https://github.com/kevinkovalchik/RawTools/>
+- Galaxy Tool Shed: <http://toolshed.g2.bx.psu.edu/view/galaxyp/rawtools>
+- Tools ID: `rawtools`
+
+
+Description
+-----------
+
+RawTools is an open-source and freely available package designed to perform scan data parsing and quantification, and quality control analysis of Thermo Orbitrap raw mass spectrometer files.
+RawTools is written in C# and uses the Thermo RawFileReader library.
+
+General Requirements
+--------------------
+
+This tool requires .NET 4.6.2 or greater or Mono 5.0 or greater to work.
+
+
+License
+-------
+
+Raw Tools is a free open-source project, following an Apache License 2.0.
+
+
+Authors
+-------
+
+Authors and contributors:
+
+* Kevin Kovalchik <kovalchk@chem.ubc.ca>
+* Christopher Hughes <chughes@bcgsc.ca>
+* Carlos Horro Marcos <carlos.horro@uib.no>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RawFileReaderLicense.md	Fri Apr 05 04:16:26 2019 -0400
@@ -0,0 +1,51 @@
+**SOFTWARE LICENSE AGREEMENT (&quot;License&quot;) FOR RawFileReader**
+
+These License terms are an agreement between you and Thermo Finnigan LLC (&quot;Licensor&quot;). They apply to Licensor&#39;s MSFileReader software program (&quot;Software&quot;), which includes documentation and any media on which you received it. These terms also apply to any updates or supplements for this Software, unless other terms accompany those items, in which case those terms apply. **If you use this Software, you accept this License. If you do not accept this License, you are prohibited from using this software.  If you comply with these License terms, you have the rights set forth below.**
+
+1. Rights Granted:
+
+1.1. You may install and use this Software on any of your computing devices.
+
+1.2. You may distribute this Software to others, but only in combination with other software components and/or programs that you provide and subject to the distribution requirements and restrictions below.
+
+2.  Use Restrictions:
+
+2.1. You may not decompile, disassemble, reverse engineer, use reflection or modify this Software.
+
+3. Distribution Requirements:
+
+If you distribute this Software to others, you agree to:
+
+3.1. Indemnify, defend and hold harmless the Licensor from any claims, including attorneys&#39; fees, related to the distribution or use of this Software;
+
+3.2. Display the following text in your software&#39;s &quot;About&quot; box: &quot; **RawFileReader reading tool. Copyright © 2016 by Thermo Fisher Scientific, Inc. All rights reserved**.&quot;;
+
+3.3. Require your end users to agree to a license agreement that prohibits them from redistributing this Software to others.
+
+4.  Distribution Restrictions:
+
+4.1. You may not use the Licensor&#39;s trademarks in a way that suggests your software components and/or programs are provided by or are endorsed by the Licensor; and
+
+4.2. You may not commercially exploit this Software or products that incorporate this Software without the prior written consent of Licensor. Commercial exploitation includes, but is not limited to, charging a purchase price, license fee, maintenance fee, or subscription fee; or licensing, transferring or redistributing the Software in exchange for consideration of any kind.
+
+4.3. Your rights to this Software do not include any license, right, power or authority to subject this Software in whole or in part to any of the terms of an Excluded License. &quot;Excluded License&quot; means any license that requires as a condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software be (a) disclosed or distributed in source code form; or (b) licensed for the purpose of making derivative works.  Without limiting the foregoing obligation, you are specifically prohibited from distributing this Software with any software that is subject to the General Public License (GPL) or similar license in a manner that would create a combined work.
+
+5.  Additional Terms Applicable to Software:
+
+5.1. This Software is licensed, not sold. This License only gives you some rights to use this Software; the Licensor reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use this Software only as expressly permitted in this License.
+
+5.2. Licensor has no obligation to fix, update, supplement or support this Software.
+
+5.3. This Software is not designed, manufactured or intended for any use requiring fail-safe performance in which the failure of this Software could lead to death, serious personal injury or severe physical and environmental damage (&quot;High Risk Activities&quot;), such as the operation of aircraft, medical or nuclear facilities. You agree not to use, or license the use of, this Software in connection with any High Risk Activities.
+
+5.4. Your rights under this License terminate automatically if you breach this License in any way. Termination of this License will not affect any of your obligations or liabilities arising prior to termination. The following sections of this License shall survive termination: 2.1, 3.1, 3.2, 3.3, 4.1, 4.2, 4.3, 5.1, 5.2, 5.3, 5.5, 5.6, 5.7, 5.8, and 5.9.
+
+5.5. This Software is subject to United States export laws and regulations. You agree to comply with all domestic and international export laws and regulations that apply to this Software. These laws include restrictions on destinations, end users and end use.
+
+5.6. This License shall be construed and controlled by the laws of the State of California, U.S.A., without regard to conflicts of law. You consent to the jurisdiction of the state and federal courts situated in the State of California in any action arising under this License. The application of the U.N. Convention on Contracts for the International Sale of Goods to this License is hereby expressly excluded. If any provision of this License shall be deemed unenforceable or contrary to law, the rest of this License shall remain in full effect and interpreted in an enforceable manner that most nearly captures the intent of the original language.
+
+5.7. THIS SOFTWARE IS LICENSED &quot;AS IS&quot;. YOU BEAR ALL RISKS OF USING IT. LICENSOR GIVES NO AND DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES, REPRESENTATIONS OR GUARANTEES.  YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS LICENSE CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, LICENSOR EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+5.8. LICENSOR&#39;S TOTAL LIABILITY TO YOU FOR DIRECT DAMAGES ARISING UNDER THIS LICENSE IS LIMITED TO U.S. $1.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES, EVEN IF LICENSOR IS EXPRESSLY MADE AWARE OF THE POSSIBILITY THEREOF OR IS NEGLIGENT. THIS LIMITATION APPLIES TO ANYTHING RELATED TO THIS SOFTWARE, SERVICES, CONTENT (INCLUDING CODE) ON THIRD PARTY INTERNET SITES, OR THIRD PARTY PROGRAMS, AND CLAIMS FOR BREACH OF CONTRACT, BREACH OF WARRANTY, GUARANTEE  OR CONDITION, STRICT LIABILITY, NEGLIGENCE, OR OTHER TORT TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+
+5.9. Use, duplication or disclosure of this Software by the U.S. Government is subject to the restricted rights applicable to commercial computer software (under FAR 52.227019 and DFARS 252.227-7013 or parallel regulations). The manufacturer for this purpose is Thermo Finnigan LLC, 355 River Oaks Parkway, San Jose, California 95134, U.S.A.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rawtools.xml	Fri Apr 05 04:16:26 2019 -0400
@@ -0,0 +1,279 @@
+<tool id="rawtools" name="Raw Tools" version="@RAWTOOLS_VERSION@.@TOOL_SUBVERSION@" profile="16.04">
+    <description>
+        Perform scan data parsing, quantification and quality control analysis of Thermo Orbitrap raw mass spectrometer files.
+    </description>
+    <macros>
+       <token name="@RAWTOOLS_VERSION@">1.4.2</token>
+       <token name="@TOOL_SUBVERSION@">0</token>
+       <xml name="input_fasta">
+         <param format="fasta" name="input_database" type="data" label="Protein Database"
+             help="Select FASTA database from history"/>
+       </xml>
+    </macros>
+    <requirements>
+        <requirement type="package" version="@RAWTOOLS_VERSION@">rawtools</requirement>
+    </requirements>
+    <command detect_errors="exit_code">
+<![CDATA[
+        #from datetime import datetime
+        #import json
+        #import os
+        #import re
+        #set $exp_str = "Galaxy_Experiment_%s" % datetime.now().strftime("%Y%m%d%H%M%s")
+        #set $samp_str = "Sample_%s" % datetime.now().strftime("%Y%m%d%H%M%s")
+        #set $temp_stderr = "rawtools_stderr"
+        #set $bin_dir = "bin"
+
+        mkdir output &&
+        cwd=`pwd` &&
+        ## TODO: To remove this patch when dropping support for Galaxy 17_09, adding profile="18.01" to the tool.
+        export HOME=\$cwd  &&
+
+        mkdir raws_folder &&
+        #for $input_raw in $input_raws:
+            #set $input_name = re.sub('[^\w\-\.]', '_',$input_raw.element_identifier.split('/')[-1].replace(".raw", "") + ".raw")
+            ln -s -f '${input_raw}' './raws_folder/${input_name}' &&
+        #end for
+
+        #####################
+        ## Raw Tools ##
+        #####################
+        (rawtools.sh
+
+            ## PARSING AND QUANTIFICATION OPTIONS
+
+            ## If any processing option is enabled in parsing & quantification, "parse" command is mandatory
+            #if $pq_options.pq_conditional.matrix_select  == "yes" or $pq_options.chromatogram_conditional.chromatogram_select == "yes" or $pq_options.mgf_conditional.mgf_select  == "yes" or  $pq_options.metrics_boolean  == "yes":
+                parse
+            #end if
+            --directory ./raws_folder
+
+            ## Generates Matrix file
+            #if $pq_options.pq_conditional.matrix_select == "yes":
+                --parse
+            #end if
+
+            ## Generates quantification information
+            #if $pq_options.pq_conditional.matrix_select == "yes" and $pq_options.pq_conditional.q_conditional.q_select == "yes" :
+                --quant
+                --labelingreagent ${pq_options.pq_conditional.q_conditional.q_labeling_reagent}
+            #end if
+
+            ## Unlabeled quant
+            #if $pq_options.pq_conditional.matrix_select == "yes" and $pq_options.pq_conditional.unlabeledquant_boolean  == "yes":
+                --unlabeledquant
+            #end if
+
+            ## Generates Mgf file
+            #if $pq_options.mgf_conditional.mgf_select == "yes":
+                --writemgf
+                --masscutoff ${pq_options.mgf_conditional.mgf_masscutoff}
+            ## DEPRECATED    --intensitycutoff ${pq_options.mgf_conditional.mgf_intensitycutoff}
+                #if $pq_options.mgf_conditional.mgf_refinement == "yes":
+                    -R
+                #end if
+            #end if
+
+            ## Generates chromatogram file
+            #if $pq_options.chromatogram_conditional.chromatogram_select == "yes":
+                --chro ${pq_options.chromatogram_conditional.chromatogram_type}${pq_options.chromatogram_conditional.chromatogram_order}
+            #end if
+
+            ## Generates metrics file
+            #if $pq_options.metrics_boolean  == "yes":
+                --metrics
+            #end if
+
+            --out \$cwd/output
+
+        2>> $temp_stderr) &&
+
+        cat $temp_stderr 2>&1;
+]]>
+    </command>
+    <inputs>
+        <param format="thermo.raw" name="input_raws" type="data" label="Raw file" multiple="true"
+            help="Select the raw file from history"/>
+        <param name="license_agreement" type="boolean" label="Do you agree to the vendor licenses?" help="This tool uses a proprietary vendor library; to run it you must agree to the vendor license. Read it at https://github.com/kevinkovalchik/RawTools/blob/master/RawFileReaderLicense">
+            <validator type="expression" message="You must agree to the vendor license to run RawTools.">True == value</validator>
+        </param>
+        <section name="pq_options" expanded="true" title="Parsing and Quantification">
+            <conditional name="pq_conditional">
+                <param name="matrix_select" type="select"
+                    label="Create Matrix file"
+                    help="Parses raw file meta and scan data and creates a tab-delimited text file.">
+                    <option value="yes" selected="True">Yes</option>
+                    <option value="no" >No</option>
+                </param>
+                <when value="yes">
+                    <conditional name="q_conditional">
+                        <param name="q_select" type="select"
+                          label="Quantification"
+                          help="Also quantifies reporter ions and write results to output matrix.">
+                            <option value="yes" >Yes</option>
+                            <option value="no" selected="True">No</option>
+                        </param>
+                        <when value="yes">
+                            <param name="q_labeling_reagent" label="Labeling reagent" type="select"
+                              help="Reagents used to label peptides.">
+                                <option value="TMT0" selected="True">TMT0</option>
+                                <option value="TMT2" >TMT2</option>
+                                <option value="TMT6" >TMT6</option>
+                                <option value="TMT10" >TMT10</option>
+                                <option value="TMT11" >TMT11</option>
+                                <option value="iTRAQ4" >iTRAQ4</option>
+                                <option value="iTRAQ8" >iTRAQ8</option>
+                            </param>
+                        </when>
+                        <when value="no" />
+                    </conditional>
+                    <param name="unlabeledquant_boolean" label="Unlabeled quant" type="boolean" truevalue="yes" falsevalue="no"
+                      help="Calculate areas of precursor peaks and writes them to the matrix file as ParentPeakArea column."/>
+                </when>
+                <when value="no" />
+            </conditional>
+
+            <conditional name="mgf_conditional">
+                <param name="mgf_select" type="select" label="Creates a mgf file"
+                  help="Creates a standard MGF file.">
+                    <option value="yes" >Yes</option>
+                    <option value="no" selected="True">No</option>
+                </param>
+                <when value="yes">
+                    <param name="mgf_masscutoff" label="Mass cutoff" value="0" type="float"
+                      help="Specify a mass cutoff to be applied when generating MGF files. May be of use if removal of reporter ions is desired prior to searching of MS2 spectra."/>
+                    <!--<param name="mgf_intensitycutoff" label="Intensity cutoff" value="0" type="float"
+                      help="Relative intensity cutoff for ions included in a MGF file. The value is relative to the highest intensity ion found in a given scan."/>
+                    -->
+                    <param name="mgf_refinement" label="Precursor mass and charge refinement" type="boolean" truevalue="yes" falsevalue="no" checked="false"
+                      help="Refine precursor charge and monoisotopic mass assignments. Highly recommended if monoisotopic precursor selection was turned off in the instrument method (or peptide match on a QE instrument)."/>
+
+                </when>
+                <when value="no" />
+            </conditional>
+            <conditional name="chromatogram_conditional">
+                <param name="chromatogram_select" type="select"
+                    label="Create chromatogram"
+                    help="Creates a text file of chromatographic data for investigation or plotting.">
+                    <option value="yes" >Yes</option>
+                    <option value="no" selected="True">No</option>
+                </param>
+                <when value="yes">
+                    <param name="chromatogram_type" label="Chromatogram type" type="select" help="MS Level">
+                        <option value="1" selected="True">MS1</option>
+                        <option value="2" >MS2</option>
+                        <option value="3" >MS3</option>
+                    </param>
+                    <param name="chromatogram_order" label="Chromatogram order" type="select" help="MS Order">
+                        <option value="T" >TIC</option>
+                        <option value="B" >Base peak</option>
+                        <option value="TB" selected="True">TIC and base peak</option>
+                    </param>
+                </when>
+                <when value="no" />
+            </conditional>
+            <param name="metrics_boolean" label="Create metrics" type="boolean" truevalue="yes" falsevalue="no"
+              help="Creates a text file containing general metrics about the Ms run." />
+
+        </section>
+
+        <!-- TODO: QUALITY CONTROL
+        <section name="quality_control_options" expanded="false" title="Quality control">
+
+        </section>
+        -->
+
+    </inputs>
+    <outputs>
+        <!-- Matrix -->
+
+        <collection name="output_matrix" type="list" label="${tool.name} - ${on_string}: Matrix">
+            <filter>pq_options['pq_conditional']['matrix_select'] == "yes"</filter>
+            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.raw_Matrix.txt" ext="txt" directory="output"/>
+        </collection>
+
+        <!-- MGF file -->
+
+        <collection name="output_mgf" type="list" label="${tool.name} - ${on_string}: MGF">
+            <filter>pq_options['mgf_conditional']['mgf_select'] == "yes"</filter>
+            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.mgf" ext="mgf" directory="output"/>
+        </collection>
+
+        <!-- Chromatogram file -->
+
+        <collection name="output_chromatogram" type="list" label="${tool.name} - ${on_string}: Chromatogram" >
+            <filter>pq_options['chromatogram_conditional']['chromatogram_select'] == "yes"</filter>
+            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.raw_Ms_BP_chromatogram.txt" ext="txt" directory="output"/>
+        </collection>
+
+        <!-- Metrics file -->
+
+        <collection name="output_metrics" type="list" label="${tool.name} - ${on_string}: Metrics" >
+            <filter>pq_options['metrics_boolean'] is True</filter>
+            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.raw_Metrics.txt" ext="txt" directory="output"/>
+        </collection>
+    </outputs>
+    <tests>
+
+        <!-- Test Matrix -->
+        <test>
+            <param name="input_raws" value="really_small.raw" ftype="thermo.raw"/>
+            <param name="license_agreement" value="true" />
+            <param name="pq_conditional|matrix_select" value="yes"/>
+            <output_collection name="output_matrix" type="list">
+                <element name="really_small" file="really_small.raw_Matrix.txt" ftype="txt" compare="sim_size" delta="3000"/>
+            </output_collection>
+        </test>
+
+        <!-- Test mgf conversion -->
+        <test>
+            <param name="input_raws" value="really_small.raw" ftype="thermo.raw"/>
+            <param name="license_agreement" value="true" />
+            <param name="pq_conditional|matrix_select" value="no"/>
+            <param name="mgf_conditional|mgf_select" value="yes"/>
+            <param name="mgf_conditional|mgf_refinement" value="yes"/>
+            <output_collection name="output_mgf" type="list">
+                <element name="really_small.raw" ftype="mgf">
+                    <assert_contents>
+                        <has_text text="PEPMASS=675.248779296875"/>
+                        <has_text text="RTINSECONDS=73.863181104"/>
+                        <has_text text="SCANS=36"/>
+                        <has_text text="121.31165 920.2368"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+        <!-- Test chromatogram -->
+        <test>
+            <param name="input_raws" value="really_small.raw" ftype="thermo.raw"/>
+            <param name="license_agreement" value="true" />
+            <param name="pq_conditional|matrix_select" value="no"/>
+            <param name="chromatogram_conditional|chromatogram_select" value="yes"/>
+            <output_collection name="output_chromatogram" type="list" >
+                <element name="really_small" file="really_small.raw_Ms_BP_chromatogram.txt" ftype="txt" compare="sim_size" delta="3000"/>
+            </output_collection>
+        </test>
+
+
+    </tests>
+    <help>
+**What it does**
+
+RawTools is an open-source and freely available package designed to perform scan data parsing and quantification, and quality control analysis (to be developed in further versions) of Thermo Orbitrap raw mass spectrometer files.
+
+RawTools is written in C# and uses the Thermo RawFileReader library. RawTools is the replacement for RawQuant Python package.
+
+https://github.com/kevinkovalchik/RawTools
+
+**License**
+
+Raw Tools is a free open-source project, following an Apache License 2.0.
+
+RawFileReader reading tool. Copyright © 2016 by Thermo Fisher Scientific, Inc. All rights reserved.
+Using this software implies the acceptance of RawFileReader license terms.
+
+    </help>
+    <citations>
+        <citation type="doi">doi:10.1021/acs.jproteome.8b00721</citation>
+    </citations>
+</tool>
Binary file test-data/really_small.raw has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/really_small.raw_Matrix.txt	Fri Apr 05 04:16:26 2019 -0400
@@ -0,0 +1,35 @@
+MS2ScanNumber	MS1ScanNumber	MS2RetTime	MS1RetTime	DutyCycle	MS2ScansPerCycle	ParentIonMass	MonoisotopicMass	PrecursorCharge	MS1IsolationInterference	ParentPeakFound	ParentPeakArea	PeakFirstScan	PeakMaxScan	PeakLastScan	BaseLinePeakWidth(s)	PeakParentScanIntensity	PeakMaxIntensity	MS2IonInjectionTime	MS1IonInjectionTime	HCDEnergy	MS2MedianIntensity	MS1MedianIntensity	
+36	34	1.2310530184	1.21863295253333	0.601650768000002	1	675.248779296875	675.248779296875	2	0	True	167.717466421987	30	34	44	0.121015541333333	3464.98901367188	3464.98901367188	86	120	40	1330.77886962891	1135.81408691406	
+38	35	1.24093018346667	1.22866046533333	0.593574847999996	1	407.919311523438	407.919311523438	3	0	True	36.2006497039203	32	35	39	0.0506705653333333	1348.14978027344	1348.14978027344	86	120	40	1343.35278320313	951.714965820313	
+48	46	1.33196873146667	1.31970900238333	0.592013759999994	2	436.341217041016	436.341217041016	2	0	True	1082.61783603274	42	60	67	0.217495987983333	3982.28930664063	19447.125	86	120	40	1301.47985839844	921.997100830078	
+49	46	1.33642793225	1.31970900238333	0.592013759999994	2	594.222717285156	594.222717285156	2	0	True	131.013345814101	43	46	54	0.0902635735999999	3639.35815429688	3639.35815429688	86	120	40	1255.63757324219	921.997100830078	
+62	60	1.45236555733333	1.43995167306667	0.602380144000012	1	511.47119140625	511.47119140625	2	0.313092879575264	True	138.022276786599	54	56	64	0.0904783039999999	2269.76416015625	2872.71044921875	86	120	40	1285.55865478516	1170.86712646484	
+68	66	1.4983504792	1.4887905816	0.516015246999992	11	834.349731445313	834.349731445313	2	0.152321847039335	True	9688.28734193986	61	67	99	0.12373304425	165249.6875	249470.953125	86	34.1016540527344	40	1337.48834228516	6412.71826171875	
+69	66	1.50282997865	1.4887905816	0.516015246999992	11	741.7568359375	741.7568359375	2	0.186260233486757	True	2232.35290315363	64	67	99	0.10306691385	43713.94921875	62608.94140625	86	34.1016540527344	40	1332.08862304688	6412.71826171875	
+70	66	1.50483067066667	1.4887905816	0.516015246999992	11	899.80419921875	899.80419921875	2	0.0537189100881663	True	2320.47534656949	64	67	99	0.10306691385	42020.53515625	83972	86	34.1016540527344	40	1367.63269042969	6412.71826171875	
+71	66	1.50699280718333	1.4887905816	0.516015246999992	11	667.705932617188	667.705932617188	2	0	True	2478.42168358434	61	67	99	0.12373304425	35641.6484375	41392.7421875	86	34.1016540527344	40	1254.48181152344	6412.71826171875	
+72	66	1.50899925493333	1.4887905816	0.516015246999992	11	860.806823730469	860.806823730469	2	0.357151331019734	True	1451.13977365665	64	67	99	0.10306691385	25926.53515625	37201.15234375	86	34.1016540527344	40	1309.75073242188	6412.71826171875	
+73	66	1.511003096	1.4887905816	0.516015246999992	11	905.804077148438	905.804077148438	2	0	True	1395.46635280824	64	67	99	0.10306691385	17921.455078125	38916.6640625	86	34.1016540527344	40	1302.65740966797	6412.71826171875	
+74	66	1.51300506773333	1.4887905816	0.516015246999992	11	792.2470703125	791.74609375	2	0.295448830908965	True	425.228195233922	64	66	99	0.10306691385	13780.6220703125	13780.6220703125	86	34.1016540527344	40	1288.56372070313	6412.71826171875	
+75	66	1.51500509493333	1.4887905816	0.516015246999992	11	1024.85485839844	1024.85485839844	2	0	True	556.733335157725	64	67	99	0.10306691385	11009.3212890625	11795.53515625	86	34.1016540527344	40	1246.94152832031	6412.71826171875	
+76	66	1.51700745598333	1.4887905816	0.516015246999992	11	661.706604003906	661.706604003906	2	0	True	394.203943054077	64	67	88	0.0765694671833335	7985.2841796875	9838.6416015625	86	34.1016540527344	40	1316.61547851563	6412.71826171875	
+77	66	1.5190053808	1.4887905816	0.516015246999992	11	1088.44177246094	1088.44177246094	2	0.22474582581506	True	316.999697451277	64	66	88	0.0765694671833335	7755.69775390625	7755.69775390625	86	34.1016540527344	40	1326.67431640625	6412.71826171875	
+78	66	1.52100711706667	1.4887905816	0.516015246999992	11	915.798645019531	915.798645019531	2	0	True	293.95539980201	64	66	88	0.0765694671833335	6917.3798828125	6917.3798828125	86	34.1016540527344	40	1291.67785644531	6412.71826171875	
+80	67	1.52696687973333	1.49739083571667	1.63205286400001	8	1018.85278320313	1018.85278320313	2	0.191640391413484	True	934.594295392788	64	67	99	0.10306691385	34559.5078125	34559.5078125	86	35.1560096740723	40	1323.0673828125	6120.11328125	
+81	67	1.53145857598333	1.49739083571667	1.63205286400001	8	786.755065917969	786.755065917969	2	0.316236984883022	True	1427.05961907578	64	67	99	0.10306691385	28161.083984375	28161.083984375	86	35.1560096740723	40	1338.42041015625	6120.11328125	
+82	67	1.5334716952	1.49739083571667	1.63205286400001	8	965.25830078125	965.25830078125	2	0.572289728642442	True	496.14911144035	64	67	88	0.0765694671833335	14463.2158203125	14463.2158203125	86	35.1560096740723	40	1244.39306640625	6120.11328125	
+83	67	1.53563380453333	1.49739083571667	1.63205286400001	8	853.323913574219	853.323913574219	2	0.344547243539955	True	415.494255284281	64	67	99	0.10306691385	12064.44921875	12064.44921875	86	35.1560096740723	40	1302.53588867188	6120.11328125	
+84	67	1.53763214906667	1.49739083571667	1.63205286400001	8	1138.40502929688	1137.90148925781	2	0.256311328373033	True	364.877152624554	64	67	88	0.0765694671833335	9067.5078125	9067.5078125	86	35.1560096740723	40	1234.92993164063	6120.11328125	
+85	67	1.53963829013333	1.49739083571667	1.63205286400001	8	887.763977050781	887.264953613281	2	0.342325773289751	True	230.406654281466	65	67	99	0.0930251434499998	8386.7626953125	8386.7626953125	86	35.1560096740723	40	1284.14343261719	6120.11328125	
+86	67	1.54164051733333	1.49739083571667	1.63205286400001	8	804.249145507813	803.748107910156	2	0.201592510544554	True	199.843735647692	65	67	99	0.0930251434499998	5836.18212890625	5836.18212890625	86	35.1560096740723	40	1238.42327880859	6120.11328125	
+87	67	1.54364050051667	1.49739083571667	1.63205286400001	8	1056.93298339844	1056.93298339844	2	0	True	220.318513921373	64	67	88	0.0765694671833335	5765.79150390625	5765.79150390625	86	35.1560096740723	40	1291.79992675781	6120.11328125	
+89	79	1.54960209518333	1.52459171678333	1.358113376	10	623.21337890625	623.21337890625	2	0.149552464744801	True	2499.39940259559	61	67	100	0.13475671225	40646.50390625	52922.7265625	86	120	40	1293.16198730469	2110.99169921875	
+90	79	1.55406474585	1.52459171678333	1.358113376	10	694.163146972656	694.163146972656	2	0.12255195722894	True	619.487263031698	64	79	99	0.10306691385	10614.72265625	10614.72265625	86	120	40	1258.60925292969	2110.99169921875	
+91	79	1.55606278211667	1.52459171678333	1.358113376	10	678.697814941406	678.697814941406	2	0.209305981234198	True	549.517619021874	64	67	99	0.10306691385	8538.9453125	8557.6689453125	86	120	40	1286.85278320313	2110.99169921875	
+92	79	1.55814877945	1.52459171678333	1.358113376	10	630.706604003906	630.706604003906	2	0.386559801288184	True	649.072184403393	64	67	99	0.10306691385	7491.30908203125	14741.3212890625	86	120	40	1220.27758789063	2110.99169921875	
+93	79	1.56014235438333	1.52459171678333	1.358113376	10	980.359741210938	978.848571777344	2	1	True	511.138853033328	64	67	99	0.10306691385	4646.68115234375	13213.2431640625	86	120	40	1286.24401855469	2110.99169921875	
+94	79	1.56214223465	1.52459171678333	1.358113376	10	686.680358886719	686.680358886719	2	0.545840240263356	True	180.805986614388	65	79	100	0.10404881145	4009.3427734375	4009.3427734375	86	120	40	1247.5947265625	2110.99169921875	
+95	79	1.56416103918333	1.52459171678333	1.358113376	10	805.729125976563	805.729125976563	2	0.365010589911398	True	226.586745959754	65	79	99	0.0930251434499998	3824.5966796875	3824.5966796875	86	120	40	1206.54504394531	2110.99169921875	
+96	79	1.56616103731667	1.52459171678333	1.358113376	10	960.893493652344	960.893493652344	2	0.1909307234168	True	202.343028428898	64	66	99	0.10306691385	2295.9736328125	3778.46899414063	86	120	40	1294.21948242188	2110.99169921875	
+97	79	1.56815896238333	1.52459171678333	1.358113376	10	824.7021484375	824.201416015625	2	0.465125147879269	True	91.6518593101938	66	79	99	0.0849338047833332	2158.19506835938	2158.19506835938	86	120	40	1283.46887207031	2110.99169921875	
+98	79	1.57013829678333	1.52459171678333	1.358113376	10	1072.44873046875	1072.44873046875	2	0	True	1139.79236859805	64	67	99	0.10306691385	1594.3525390625	46071.47265625	86	120	40	1343.15966796875	2110.99169921875	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/really_small.raw_Ms_BP_chromatogram.txt	Fri Apr 05 04:16:26 2019 -0400
@@ -0,0 +1,68 @@
+RetentionTime	Intensity
+0.89012589865	70424.4453125
+0.900221537066667	43581.56640625
+0.9100631456	36189.62109375
+0.919923499733333	80402.6640625
+0.930017091733333	7351.78759765625
+0.939863016533333	26657.404296875
+0.949712762933333	56096.26953125
+0.959729349866667	27086.078125
+0.969662583466667	19528.15625
+0.9796812808	61581.19921875
+0.989727160533333	81736.828125
+0.9998289248	32915.4140625
+1.00966218	27084.865234375
+1.01952249493333	15145.7265625
+1.02952865333333	44113.359375
+1.03946188506667	43779.6640625
+1.04931593173333	60325.5625
+1.05932834	40868.9765625
+1.06925323813333	20006.193359375
+1.07926137998333	37677.6953125
+1.089284284	14483.6708984375
+1.09936748238333	9640.0419921875
+1.10938205706667	18692.513671875
+1.1192320672	68367.0625
+1.12925260746667	79986.0390625
+1.1391858344	23875.185546875
+1.14903364506667	8841.4697265625
+1.15888152186667	36995.28125
+1.1687939064	12944.7939453125
+1.17882296533333	12285.0517578125
+1.18884371866667	15632.9111328125
+1.1989272952	29951.84765625
+1.20878522853333	29406.24609375
+1.21863295253333	90770.40625
+1.22866046533333	44973.32421875
+1.23855337946667	24537.724609375
+1.24959786053333	38378.23046875
+1.25994727706667	64326.21484375
+1.26985948158333	61519.15625
+1.27989484773333	48447.40625
+1.28991559493333	4981.7685546875
+1.29983850666667	24010.84375
+1.3096882712	41144.33984375
+1.31970900238333	85588.8984375
+1.32957589838333	38952.93359375
+1.33999603013333	96739.28125
+1.35037742933333	74771.09375
+1.36023153413333	40585.83984375
+1.37015649386667	113374.8828125
+1.38017916853333	84225.609375
+1.39019163545	27672.724609375
+1.40012481893333	153310.375
+1.40998103838333	123278.6328125
+1.41999132958333	78768.1953125
+1.42992453013333	83976.5625
+1.43995167306667	231040.046875
+1.44999134213333	1098570.625
+1.46004625733333	3295294
+1.47065747253333	5527336
+1.48069924293333	17924452
+1.4887905816	16887438
+1.49739083571667	18132246
+1.52459171678333	9375929
+1.54722693971667	3632126
+1.57372438638333	82251.9609375
+1.58474805438333	163374.328125
+1.5947900096	84607.90625