1 Preprocessing DIA data via the instructions at: http://dia-swath-course.ethz.ch/tutorials2017/

2 Generating a high-res (HCD) spectral search library.

This worksheet is in response to Yan’s email:

“Following up to our earlier conversation. Here are some thing I’m hoping you can extract out of the current data: 1. with Briken data, High resolution vs low resolution MSMS for library generation: Generate separate libraries with 0116DDA01 (low resolution) and 0129DDA01 (high resolution), then use the two separate libraries to quantify DIA01-03, 11-13 with corresponding fragment mass accuracy (0.5 Da vs 0.02Da). Basically the DIA data is done with high res. I want to see if high res library data will help.”

This document will attempt to do that with the single low-res DDA data set therefore.

2.0.1 Block 01: Variables

echo "Setting variables for the rest of the script."
search_method="comet"
cleavages="2"
refdb="reference/reference.fasta"
decoy_string="DECOY_"
confidence_cutoff="0.05"
ippp="0.97"
## irtdb="reference/reference.fasta"
dda_method="HCD"
## I am an idiot, I keep typing arbf when I test my output files...
test="Rv1611"
dda_input=$(/bin/ls mzXML/dda_${dda_method}/*.mzXML)
startdir="/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018"
mkdir -p results/pepxml
fdr_result="results/fdr_controlled/fdr_library_${search_method}_${dda_method}.xml"
mkdir -p results/fdr_controlled
ipp_result="results/iprophet/iprophet_${search_method}_${dda_method}.xml"
mkdir -p results/iprophet
mayu_out="results/mayu/mayu_${search_method}_${dda_method}.out"
mkdir -p results/mayu
spectral_basename="results/spectral_libraries/${search_method}_${dda_method}"
spectral_library="${spectral_basename}.splib"
mkdir -p results/spectral_libraries
consensus="results/spectral_consensus/${search_method}_${dda_method}"
mkdir -p results/spectral_consensus
declare -a mz_windows=("8mz" "20mz")
tempdir=$(pwd)/tmp
dscore_cutoff="10"
## Setting variables for the rest of the script.

2.0.2 Block 02: Load software

## It appears that the module command causes runr to die.
module add openms/2.0.0
module add tpp
module add mayu
## Yay modules!

2.1 Move files

The thermo .raw files were moved into directories labeled: raw/dda, raw/dia, and raw/std

2.2 Convert files

For the dda files, the windows ‘RawConverter’ from the TPP was used to convert to mzXML. For the dia files, the windows ‘MSConvertGUI’ was used to convert to mzXML.

In theory, one is supposed to use RawConverter for both, but it crashes. This is a pity, as it has some options for centroided conversion which look to be useful.

2.3 Prepare reference database

I copied the human genpep database to reference/ (AUP00005640.fasta) Upon figuring out the sequences of the ABRF peptides, I added them as abrf.fasta and concatenated the two files into reference.fasta.

2.4 Set up comet

A default configuration for comet was created by running comet -p and editing the resulting file in order to be more similar to the suggestions in the tutorial. The relevant changes and options mentioned in the tutorial are:

  • database_name = $(pwd)/reference/reference.fasta – obviously the configuration file does not support subshells and seems to require full pathnames.
  • decoy_search = 1 – the tutorial actually set this to 0, but I don’t make my own decoy library, so I set it to 1.
  • peptide_mass_tolerance = 20.0 – the tutorial used 30, I think the orbitrap can go lower, I should ask Yan about this.
  • allowed_missed_cleavage = ${CLEAVAGES} – once again the tutorial is more conservative, and it might turn out to be a bad idea to increase this to 2.
  • variable_mod01 = 15.9949 M 0 3 -1 0 0 – I have noticed that a few other modifications are used in Yan’s searches, perhaps I should consider these?
  • fragment_bin_tol = 0.02 – I am reasonably certain this is a strongly machine dependant variable and the orbitrap uses the smaller value while an ABISCIEX uses the higher, but I have been wrong before.
  • use_NL_ions = 1 – the default is 0, I am not sure why.
  • digest_mass_range = 600.0 7000.0 – I increased this range slightly as my conversation with Yan suggested to me that we get some slightly larger peptides.
  • decoy_prefix = ${DECOY} – it is a little easier for my eyes to scan and see the CAPS

Once I was satisfied, I saved it to comet/comet_params.txt

I am using comet here primarily because it is what was used in: Tutorial-1_LibraryGeneration.pdf. With that in mind, as long as the results are in a single pep.xml file for each dda acquisition file, then I am all good I think.

With that in mind, I believe I will do some testing in the near future to see if I can also use mgsf/tandem/etc.

2.4.1 Block 03: comet

## If using the cluster, comet is in module 'comet'
## This is the old CID input.
##export INPUT="2018_0116BrikenDDA01.mzXML"
##export INPUT="2018_0129BrikenDDA01.mzXML"
##export BASE=$(basename ${INPUT} .mzXML)
## Crap in a hat, the new high-res mzXML file has many fewer spectra than the old one
## and includes many fewer hits in comet.
## I will use both and see if that helps.
echo "Starting run of comet using the configuration file:
comet/comet_${dda_method}_params.txt against ${dda_input}."
for input in ${dda_input}
do
    base=$(basename "${dda_input}" .mzXML)
    /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/comet \
        -Pcomet/comet_${dda_method}_params.txt \
        "${input}"
done
## I want to look into using some of the other search engines here.

2.5 Extract alternate hits for comet

Apparently comet can only report the first hit of a bunch when reporting its matches. TPP provides a thing to fix this:

If I read the documentation correctly, this should give me the alternate hits when available.

2.5.1 Block 04

echo "Starting refreshparser to hopefully add back the alternate matches dropped by comet."
for input in $(/bin/ls mzXML/dda_${dda_method}/*.pep.xml)
do
    echo "Refreshparser-ing ${input}."
    RefreshParser \
        "${input}" \
        "${refdb}"
done

2.6 xinteract

This tool is intended to combine the searches for each input file into a single set of controlled FDRs. It works by examining each search output file and creating a distribution of the search scores for each set of targets and decoys. Once it has these distributions, it computes the likelihood that each individual search was correct.

It is worth noting that I installed tpp from the git tree and statically linked as much of it as possible so that it is possible for me to do test runs on my workstation. Hopefully it will run properly as a result, but this is not guaranteed as my workstation runs a recent version of Debian linux, while I compiled tpp on the cluster’s RedHat 7.0 architecture using gcc 6.2.0.

Here are some of the xinteract options (note that xinteract options must not be separated by spaces, unlike most unix-like tools.):

  • -d : pattern used for decoy hits DECOY_ in my case.
  • -OARPd : -O says to use whatever follows for scoring, in this case: ‘Accurate mass binning’, ‘Retention time information’, ‘non-Parametric model’, and ‘decoy hits are reported’.
  • -N : name of the output file.

It turns out xinteract creates multiple output files, I should figure out the others.

2.6.1 Block 05

echo "Invoking xinteract to merge searches, set decoys, and set up fdr."
xinteract \
    -d${decoy_string} \
    -OARPpd \
    -N${fdr_result} \
    "$(/bin/ls "mzXML/dda_${dda_method}/"*.pep.xml)"

grep "${test}" "${fdr_result}" | head
prophet_table <- extract_peprophet_data("comet/pepxml/fdr_library_HCD.xml")
## Extracting spectrum queries.
## Extracting the spectrum_query metadata.
## Extracting the search_result metadata.
## Extracting modification metadata.
## Filling in modification information, this is slow.
## 
  |                                                                       
  |                                                                 |   0%
  |                                                                       
  |                                                                 |   1%
  |                                                                       
  |=                                                                |   1%
  |                                                                       
  |=                                                                |   2%
  |                                                                       
  |==                                                               |   2%
  |                                                                       
  |==                                                               |   3%
  |                                                                       
  |==                                                               |   4%
  |                                                                       
  |===                                                              |   4%
  |                                                                       
  |===                                                              |   5%
  |                                                                       
  |====                                                             |   5%
  |                                                                       
  |====                                                             |   6%
  |                                                                       
  |====                                                             |   7%
  |                                                                       
  |=====                                                            |   7%
  |                                                                       
  |=====                                                            |   8%
  |                                                                       
  |======                                                           |   8%
  |                                                                       
  |======                                                           |   9%
  |                                                                       
  |======                                                           |  10%
  |                                                                       
  |=======                                                          |  10%
  |                                                                       
  |=======                                                          |  11%
  |                                                                       
  |=======                                                          |  12%
  |                                                                       
  |========                                                         |  12%
  |                                                                       
  |========                                                         |  13%
  |                                                                       
  |=========                                                        |  13%
  |                                                                       
  |=========                                                        |  14%
  |                                                                       
  |=========                                                        |  15%
  |                                                                       
  |==========                                                       |  15%
  |                                                                       
  |==========                                                       |  16%
  |                                                                       
  |===========                                                      |  16%
  |                                                                       
  |===========                                                      |  17%
  |                                                                       
  |===========                                                      |  18%
  |                                                                       
  |============                                                     |  18%
  |                                                                       
  |============                                                     |  19%
  |                                                                       
  |=============                                                    |  19%
  |                                                                       
  |=============                                                    |  20%
  |                                                                       
  |=============                                                    |  21%
  |                                                                       
  |==============                                                   |  21%
  |                                                                       
  |==============                                                   |  22%
  |                                                                       
  |===============                                                  |  22%
  |                                                                       
  |===============                                                  |  23%
  |                                                                       
  |===============                                                  |  24%
  |                                                                       
  |================                                                 |  24%
  |                                                                       
  |================                                                 |  25%
  |                                                                       
  |=================                                                |  25%
  |                                                                       
  |=================                                                |  26%
  |                                                                       
  |=================                                                |  27%
  |                                                                       
  |==================                                               |  27%
  |                                                                       
  |==================                                               |  28%
  |                                                                       
  |===================                                              |  28%
  |                                                                       
  |===================                                              |  29%
  |                                                                       
  |===================                                              |  30%
  |                                                                       
  |====================                                             |  30%
  |                                                                       
  |====================                                             |  31%
  |                                                                       
  |====================                                             |  32%
  |                                                                       
  |=====================                                            |  32%
  |                                                                       
  |=====================                                            |  33%
  |                                                                       
  |======================                                           |  33%
  |                                                                       
  |======================                                           |  34%
  |                                                                       
  |======================                                           |  35%
  |                                                                       
  |=======================                                          |  35%
  |                                                                       
  |=======================                                          |  36%
  |                                                                       
  |========================                                         |  36%
  |                                                                       
  |========================                                         |  37%
  |                                                                       
  |========================                                         |  38%
  |                                                                       
  |=========================                                        |  38%
  |                                                                       
  |=========================                                        |  39%
  |                                                                       
  |==========================                                       |  39%
  |                                                                       
  |==========================                                       |  40%
  |                                                                       
  |==========================                                       |  41%
  |                                                                       
  |===========================                                      |  41%
  |                                                                       
  |===========================                                      |  42%
  |                                                                       
  |============================                                     |  42%
  |                                                                       
  |============================                                     |  43%
  |                                                                       
  |============================                                     |  44%
  |                                                                       
  |=============================                                    |  44%
  |                                                                       
  |=============================                                    |  45%
  |                                                                       
  |==============================                                   |  45%
  |                                                                       
  |==============================                                   |  46%
  |                                                                       
  |==============================                                   |  47%
  |                                                                       
  |===============================                                  |  47%
  |                                                                       
  |===============================                                  |  48%
  |                                                                       
  |================================                                 |  48%
  |                                                                       
  |================================                                 |  49%
  |                                                                       
  |================================                                 |  50%
  |                                                                       
  |=================================                                |  50%
  |                                                                       
  |=================================                                |  51%
  |                                                                       
  |=================================                                |  52%
  |                                                                       
  |==================================                               |  52%
  |                                                                       
  |==================================                               |  53%
  |                                                                       
  |===================================                              |  53%
  |                                                                       
  |===================================                              |  54%
  |                                                                       
  |===================================                              |  55%
  |                                                                       
  |====================================                             |  55%
  |                                                                       
  |====================================                             |  56%
  |                                                                       
  |=====================================                            |  56%
  |                                                                       
  |=====================================                            |  57%
  |                                                                       
  |=====================================                            |  58%
  |                                                                       
  |======================================                           |  58%
  |                                                                       
  |======================================                           |  59%
  |                                                                       
  |=======================================                          |  59%
  |                                                                       
  |=======================================                          |  60%
  |                                                                       
  |=======================================                          |  61%
  |                                                                       
  |========================================                         |  61%
  |                                                                       
  |========================================                         |  62%
  |                                                                       
  |=========================================                        |  62%
  |                                                                       
  |=========================================                        |  63%
  |                                                                       
  |=========================================                        |  64%
  |                                                                       
  |==========================================                       |  64%
  |                                                                       
  |==========================================                       |  65%
  |                                                                       
  |===========================================                      |  65%
  |                                                                       
  |===========================================                      |  66%
  |                                                                       
  |===========================================                      |  67%
  |                                                                       
  |============================================                     |  67%
  |                                                                       
  |============================================                     |  68%
  |                                                                       
  |=============================================                    |  68%
  |                                                                       
  |=============================================                    |  69%
  |                                                                       
  |=============================================                    |  70%
  |                                                                       
  |==============================================                   |  70%
  |                                                                       
  |==============================================                   |  71%
  |                                                                       
  |==============================================                   |  72%
  |                                                                       
  |===============================================                  |  72%
  |                                                                       
  |===============================================                  |  73%
  |                                                                       
  |================================================                 |  73%
  |                                                                       
  |================================================                 |  74%
  |                                                                       
  |================================================                 |  75%
  |                                                                       
  |=================================================                |  75%
  |                                                                       
  |=================================================                |  76%
  |                                                                       
  |==================================================               |  76%
  |                                                                       
  |==================================================               |  77%
  |                                                                       
  |==================================================               |  78%
  |                                                                       
  |===================================================              |  78%
  |                                                                       
  |===================================================              |  79%
  |                                                                       
  |====================================================             |  79%
  |                                                                       
  |====================================================             |  80%
  |                                                                       
  |====================================================             |  81%
  |                                                                       
  |=====================================================            |  81%
  |                                                                       
  |=====================================================            |  82%
  |                                                                       
  |======================================================           |  82%
  |                                                                       
  |======================================================           |  83%
  |                                                                       
  |======================================================           |  84%
  |                                                                       
  |=======================================================          |  84%
  |                                                                       
  |=======================================================          |  85%
  |                                                                       
  |========================================================         |  85%
  |                                                                       
  |========================================================         |  86%
  |                                                                       
  |========================================================         |  87%
  |                                                                       
  |=========================================================        |  87%
  |                                                                       
  |=========================================================        |  88%
  |                                                                       
  |==========================================================       |  88%
  |                                                                       
  |==========================================================       |  89%
  |                                                                       
  |==========================================================       |  90%
  |                                                                       
  |===========================================================      |  90%
  |                                                                       
  |===========================================================      |  91%
  |                                                                       
  |===========================================================      |  92%
  |                                                                       
  |============================================================     |  92%
  |                                                                       
  |============================================================     |  93%
  |                                                                       
  |=============================================================    |  93%
  |                                                                       
  |=============================================================    |  94%
  |                                                                       
  |=============================================================    |  95%
  |                                                                       
  |==============================================================   |  95%
  |                                                                       
  |==============================================================   |  96%
  |                                                                       
  |===============================================================  |  96%
  |                                                                       
  |===============================================================  |  97%
  |                                                                       
  |===============================================================  |  98%
  |                                                                       
  |================================================================ |  98%
  |                                                                       
  |================================================================ |  99%
  |                                                                       
  |=================================================================|  99%
  |                                                                       
  |=================================================================| 100%
## Extracting the search_score metadata.
## Extracting the peptideprophet_result probabilities.
## Extracting the search parameters.
summary(prophet_table)
##    protein            decoy           peptide            start_scan   
##  Length:25712       Mode :logical   Length:25712       Min.   :  752  
##  Class :character   FALSE:24742     Class :character   1st Qu.:14042  
##  Mode  :character   TRUE :970       Mode  :character   Median :25587  
##                                                        Mean   :26422  
##                                                        3rd Qu.:38252  
##                                                        Max.   :55070  
##                                                                       
##     end_scan         index       precursor_neutral_mass assumed_charge
##  Min.   :  752   Min.   :    1   Min.   : 670           2:11066       
##  1st Qu.:14042   1st Qu.: 6429   1st Qu.:1340           3:11496       
##  Median :25587   Median :12856   Median :1750           4: 2899       
##  Mean   :26422   Mean   :12856   Mean   :1877           5:  234       
##  3rd Qu.:38252   3rd Qu.:19284   3rd Qu.:2273           6:   17       
##  Max.   :55070   Max.   :25712   Max.   :6133                         
##                                                                       
##  retention_time_sec peptide_prev_aa    peptide_next_aa    num_tot_proteins
##  Min.   : 757       Length:25712       Length:25712       0:  970         
##  1st Qu.:2557       Class :character   Class :character   1:24395         
##  Median :3868       Mode  :character   Mode  :character   2:  258         
##  Mean   :3901                                             3:   27         
##  3rd Qu.:5231                                             4:    6         
##  Max.   :6901                                             5:   56         
##                                                                           
##  num_matched_ions tot_num_ions       matched_ion_ratio
##  13     : 1273    Length:25712       Min.   :0.000    
##  12     : 1217    Class :character   1st Qu.:0.200    
##  11     : 1193    Mode  :character   Median :0.328    
##  10     : 1184                       Mean   :0.356    
##  14     : 1181                       3rd Qu.:0.500    
##  15     : 1050                       Max.   :0.938    
##  (Other):18614                                        
##  calc_neutral_pep_mass    massdiff       num_tol_term num_missed_cleavages
##  Min.   : 669          Min.   :-0.0857   2:25712      0:18860             
##  1st Qu.:1340          1st Qu.: 0.0004                1: 5949             
##  Median :1750          Median : 0.0047                2:  903             
##  Mean   :1876          Mean   : 0.4330                                    
##  3rd Qu.:2273          3rd Qu.: 1.0042                                    
##  Max.   :6132          Max.   : 1.0624                                    
##                                                                           
##  num_matched_peptides     xcorr         deltacn       deltacnstar   
##  Min.   :  2          Min.   :0.04   Min.   :0.001   Min.   :0.000  
##  1st Qu.: 92          1st Qu.:1.73   1st Qu.:0.579   1st Qu.:0.000  
##  Median :130          Median :2.61   Median :0.727   Median :0.000  
##  Mean   :123          Mean   :2.82   Mean   :0.665   Mean   :0.001  
##  3rd Qu.:160          3rd Qu.:3.71   3rd Qu.:0.808   3rd Qu.:0.000  
##  Max.   :314          Max.   :9.92   Max.   :1.000   Max.   :0.820  
##                                                                     
##     spscore         sprank          expect      prophet_probability
##  Min.   :   0   1      :24999   Min.   :  0.0   Min.   :0.0501     
##  1st Qu.: 145   2      :  443   1st Qu.:  0.0   1st Qu.:0.9958     
##  Median : 367   3      :  121   Median :  0.0   Median :1.0000     
##  Mean   : 509   4      :   53   Mean   :  1.9   Mean   :0.9155     
##  3rd Qu.: 720   5      :   33   3rd Qu.:  0.0   3rd Qu.:1.0000     
##  Max.   :4423   6      :   13   Max.   :999.0   Max.   :1.0000     
##                 (Other):   50                                      
##       fval       ntt       nmc           massd          isomassd 
##  Min.   :-1.95   2:25712   0:18860   Min.   :-0.09500   0:14641  
##  1st Qu.: 4.97             1: 6852   1st Qu.:-0.00100   1:11071  
##  Median : 6.91                       Median : 0.00100            
##  Mean   : 6.70                       Mean   : 0.00093            
##  3rd Qu.: 8.95                       3rd Qu.: 0.00300            
##  Max.   :13.37                       Max.   : 0.06500            
##                                                                  
##        RT          RT_score      modified_peptides  variable_mods     
##  Min.   :-658   Min.   :-2.000   Length:25712       Length:25712      
##  1st Qu.:1525   1st Qu.: 0.050   Class :character   Class :character  
##  Median :2004   Median : 0.640   Mode  :character   Mode  :character  
##  Mean   :2114   Mean   : 0.687                                        
##  3rd Qu.:2570   3rd Qu.: 1.222                                        
##  Max.   :7523   Max.   : 6.000                                        
##                                                                       
##  static_mods       
##  Length:25712      
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 
a_plot <- plot_prophet(prophet_table,
                       xaxis="precursor_neutral_mass",
                       yaxis="matched_ion_ratio",
                       xscale=exp(1))
a_plot

## Now make some plots of the results to see if my matches are good/bad/indifferent.
plotly::ggplotly(a_plot)
## We recommend that you use the dev version of ggplot2 with `ggplotly()`
## Install it with: `devtools::install_github('hadley/ggplot2')`

3 Some metrics of the raw data.

I am slowly starting to understand these data structures. Thus I have some available metrics now and would like to use them for Volker’s data.

sample_sheet <- "sample_sheets/all_dia_samples.xlsx"
savefile <- "mzxml_data.rda"

if (file.exists(savefile)) {
  load(savefile)
} else {
  mzxml_data <- sm(extract_mzxml_data(sample_sheet,
                                      file_column="filename",
                                      savefile=savefile))}


intensity_boxplot <- plot_mzxml_boxplot(mzxml_data)
## Adding 2018_0116BrikenDIA01
## Adding 2018_0116BrikenDIA02
## Adding 2018_0116BrikenDIA03
## Adding 2018_0116BrikenDIA11
## Adding 2018_0116BrikenDIA12
## Adding 2018_0116BrikenDIA13
## Adding 2018_0315Briken01
## Adding 2018_0315Briken02
## Adding 2018_0315Briken03
## Adding 2018_0315Briken04
## Adding 2018_0315Briken05
## Adding 2018_0315Briken06
## Adding 2018_0315Briken11
## Adding 2018_0315Briken12
## Adding 2018_0315Briken13
## Adding 2018_0315Briken14
## Adding 2018_0315Briken15
## Adding 2018_0315Briken16
## Adding 2018_0315Briken21
## Adding 2018_0315Briken22
## Adding 2018_0315Briken23
## Adding 2018_0315Briken24
## Adding 2018_0315Briken25
## Adding 2018_0315Briken26
## This data will benefit from being displayed on the log scale.
## If this is not desired, set scale='raw'
## Some entries are 0.  We are on log scale, adding 1 to the data.
## Changed 319383 zero count features.
pp(file="images/mzxml_intensities.png", image=intensity_boxplot)
## Writing the image to: images/mzxml_intensities.png and calling dev.off().

retention_boxplot <- plot_mzxml_boxplot(mzxml_data, table="scans", "peakscount")
## Adding 2018_0116BrikenDIA01
## Adding 2018_0116BrikenDIA02
## Adding 2018_0116BrikenDIA03
## Adding 2018_0116BrikenDIA11
## Adding 2018_0116BrikenDIA12
## Adding 2018_0116BrikenDIA13
## Adding 2018_0315Briken01
## Adding 2018_0315Briken02
## Adding 2018_0315Briken03
## Adding 2018_0315Briken04
## Adding 2018_0315Briken05
## Adding 2018_0315Briken06
## Adding 2018_0315Briken11
## Adding 2018_0315Briken12
## Adding 2018_0315Briken13
## Adding 2018_0315Briken14
## Adding 2018_0315Briken15
## Adding 2018_0315Briken16
## Adding 2018_0315Briken21
## Adding 2018_0315Briken22
## Adding 2018_0315Briken23
## Adding 2018_0315Briken24
## Adding 2018_0315Briken25
## Adding 2018_0315Briken26
## This data will benefit from being displayed on the log scale.
## If this is not desired, set scale='raw'
pp(file="images/mzxml_retention.png", image=retention_boxplot)
## Writing the image to: images/mzxml_retention.png and calling dev.off().

mz_boxplot <- plot_mzxml_boxplot(mzxml_data, table="scans", "basepeakmz")
## Adding 2018_0116BrikenDIA01
## Adding 2018_0116BrikenDIA02
## Adding 2018_0116BrikenDIA03
## Adding 2018_0116BrikenDIA11
## Adding 2018_0116BrikenDIA12
## Adding 2018_0116BrikenDIA13
## Adding 2018_0315Briken01
## Adding 2018_0315Briken02
## Adding 2018_0315Briken03
## Adding 2018_0315Briken04
## Adding 2018_0315Briken05
## Adding 2018_0315Briken06
## Adding 2018_0315Briken11
## Adding 2018_0315Briken12
## Adding 2018_0315Briken13
## Adding 2018_0315Briken14
## Adding 2018_0315Briken15
## Adding 2018_0315Briken16
## Adding 2018_0315Briken21
## Adding 2018_0315Briken22
## Adding 2018_0315Briken23
## Adding 2018_0315Briken24
## Adding 2018_0315Briken25
## Adding 2018_0315Briken26
pp(file="images/mzxml_mzbase.png", image=mz_boxplot)
## Writing the image to: images/mzxml_mzbase.png and calling dev.off().

scanintensity_boxplot <- plot_mzxml_boxplot(mzxml_data, table="scans", "basepeakintensity")
## Adding 2018_0116BrikenDIA01
## Adding 2018_0116BrikenDIA02
## Adding 2018_0116BrikenDIA03
## Adding 2018_0116BrikenDIA11
## Adding 2018_0116BrikenDIA12
## Adding 2018_0116BrikenDIA13
## Adding 2018_0315Briken01
## Adding 2018_0315Briken02
## Adding 2018_0315Briken03
## Adding 2018_0315Briken04
## Adding 2018_0315Briken05
## Adding 2018_0315Briken06
## Adding 2018_0315Briken11
## Adding 2018_0315Briken12
## Adding 2018_0315Briken13
## Adding 2018_0315Briken14
## Adding 2018_0315Briken15
## Adding 2018_0315Briken16
## Adding 2018_0315Briken21
## Adding 2018_0315Briken22
## Adding 2018_0315Briken23
## Adding 2018_0315Briken24
## Adding 2018_0315Briken25
## Adding 2018_0315Briken26
pp(file="images/mzxml_scanintensity.png", image=scanintensity_boxplot)
## Writing the image to: images/mzxml_scanintensity.png and calling dev.off().

intensity_wrt_mz <- plot_intensity_mz(mzxml_data)
## Adding 2018_0116BrikenDIA01
## Adding 2018_0116BrikenDIA02
## Adding 2018_0116BrikenDIA03
## Adding 2018_0116BrikenDIA11
## Adding 2018_0116BrikenDIA12
## Adding 2018_0116BrikenDIA13
## Adding 2018_0315Briken01
## Adding 2018_0315Briken02
## Adding 2018_0315Briken03
## Adding 2018_0315Briken04
## Adding 2018_0315Briken05
## Adding 2018_0315Briken06
## Adding 2018_0315Briken11
## Adding 2018_0315Briken12
## Adding 2018_0315Briken13
## Adding 2018_0315Briken14
## Adding 2018_0315Briken15
## Adding 2018_0315Briken16
## Adding 2018_0315Briken21
## Adding 2018_0315Briken22
## Adding 2018_0315Briken23
## Adding 2018_0315Briken24
## Adding 2018_0315Briken25
## Adding 2018_0315Briken26
pp(file="images/intensity_wrt_mz_dia.png", image=intensity_wrt_mz)
## Writing the image to: images/intensity_wrt_mz_dia.png and calling dev.off().
## Warning in guide_merge.legend(init, x[[i]]): Duplicated override.aes is
## ignored.

## Warning in guide_merge.legend(init, x[[i]]): Duplicated override.aes is
## ignored.

3.1 Combine search results

iProphet is used to combine multiple identifications of the same peptide sequence across spectra, experiments, precursor charge states, and modifications. This is important if one wishes to combine the results from multiple search tools (tandem, msgf, comet, etc). Upon completion, we should receive proper FDR estimates at the sequence level, thus hopefully improving protein identifications.

Its only options appears to be ‘DECOY’ which is the same as the -d option above.

In this particular experiment,I have only 1 result file, but since I do not yet understand these various tools, I will just run this anyhow.

3.1.1 Block 06

echo "Invoking the InterProphetParser to combine multiple identifications of the same peptide."
InterProphetParser \
    DECOY=${decoy_string} \
    "${fdr_result}" \
    "${ipp_result}"
##2>results/interprophetparser.out 1>&2

grep "${test}" "${ipp_result}" | head

3.2 FDR controlling

Mayu provides a set of FDR estimates across multiple DDA runs. This puzzles me a bit, as I thought that was what we used InterProphetParser for. In addition, the mayu perl script needs some love to make it work on any modern system.

Its options of note are:

-A : the output from iprophet above. -C : the sequence database used. -E : our recognition sequence for decoys. -G : The upper limit for the mFDR -H : How many steps are performed to calculate the mFDR rates. -I : How many missed cleavages were used in the database search

3.2.1 Block 07

echo "Invoking mayu to standardize the fdr estimates."
Mayu.pl \
    -A "${ipp_result}" \
    -C "${refdb}" \
    -E "${decoy_string}" \
    -G "${confidence_cutoff}" \
    -H 101 \
    -I "${cleavages}" \
    2>"${mayu_out}" 1>&2
head "${mayu_out}"
## Did it work?
## I need to figure out how to include my generated decoys...
mkdir -p mayu
mayu_prefix=$(date +%Y-%m-%d)
mv "${mayu_prefix}"* results/mayu/

It is worth noting that mayu expects the reversed decoy sequences to be in the peptide library file. This is annoying and will need to be addressed.

In addition, the tutorial at this point requests that one opens the file ending with ’_main_1.*.csv’ in excel and finding the first iProphet probability (protFDR) for which the FDR is less than 1%. Thus, one is requested to open this, find the first protFDR row < 0.01 and find the IP/PP element at that row. Whatever that value is should be used in the next step.

Since I am still figuring stuff out, I set it to 0.95 arbitrarily, but allocated a variable for it.

3.3 Combine search results into spectral library

SpectraST combines all spectra better than a given quality threshold into a spectral library format of one’s choice.

In the first run, normalize the retention times. Ideally, we should spike in specific reference peptides and have a file containing their sequences.

perhaps this should be the reference/abrf.fasta? I am thinking probably yes.

The relevant options are:

  • -cN : output filename
  • -cI : Pre-set acquisition settings, I am assuming we used ICID-QTOF, but this needs to be checked.
  • -cf : Filtering criteria, it uses our decoy string, but I have no clue what is up with the ‘Protein! ~’ portion of the string.
  • -cP : the mayu score mentioned above, I arbitrarily set it to 0.95 for the moment.
  • -c_IRT : The file specifying our ‘landmark peptides’ – I am going to add this back assuming this works.
  • -c_IRR : Use linear regression to normalize the retention times.

According to the tutorial, one is requested to check the correlation coefficient of the linear regression performed by this. Perhaps it is because I did not have the c_IRT file, but I did not find any equations nor R^2 values.

3.3.1 Block 08

echo "Creating initial spectral libraries with spectrast."
echo "If a single input was given, make sure to link it to comet.mzXML."
##cd mzXML/dda_${dda_method}/ && ln -sf "$(basename "${dda_input}")" comet.mzXML && cd ${startdir} || exit
rm -f ${spectral_basename}*
spectrast \
    -cN${spectral_basename} \
    -cI${dda_method} \
    -cf "Protein! ~ ${decoy_string}" \
    -cP0.95 \
    -c_IRR \
    "${ipp_result}"

grep "${test}" "${spectral_basename}.sptxt" | head

3.4 Generate consensus library

Finally, spectrast is used to generate a consensus spectrum for each peptide whichis shared across all runs.

The relevant options are:

  • -cN : output file
  • -cI : The instrument settings as above
  • -cAC : Tell spectrast to generate the consensus spectrum of all replicate spectrafor each peptide ion.

3.4.1 Block 09

echo "Making consensus libraries with spectrast."
spectrast \
    -cN${consensus} \
    -cI${dda_method} \
    -cAC \
    ${spectral_library}

## New file: SpecLib_consensus.splib/sptxt
grep "${test}" ${consensus}.sptxt | head
echo ${consensus}

3.5 Create the final peptide query parameters

This filters the consensus library to select the most representative spectra for each ion. In addition it tries to ensure that the number of spectra per peptide ion is neither too high (if too high then less-intense transitions produce noise which lowers confidence) nor too low. Therefore, one also uses only the b and y ions and most common charge states: 1,2.

This uses msproteomicstools, thus it is in my path. If one is using the cluster it is in one of the python modules, I forget which one I put it in…

The relevant options are:

  • -l : lower and upper mass limits of the fragment ions
  • -s : list of ion types to use
  • -x : ion charge states to use
  • -o : minimum number of ions per peptide/z
  • -n : maximum number of ions per peptide/z
  • -p : maximum error allowed at the annotation of a fragment ion
  • -e : use theoretical mass
  • -d : remove duplicate masses
  • -w : File containing swath window ranges.
  • -k : output file format.
  • -a : output file name.

3.5.1 Block 10

echo "Make sure you have created an acquisition window file _without_ a header."
echo "There should be some which are just bob.txt in the windows/ directory."
echo "Writing spectrast tsv files with spectrast2tsv."
for mz in "${mz_windows[@]}"
do
    echo "Making a consensus library specific for ${mz} windows."
    spectrast2tsv.py \
        -l 350,2000 \
        -s b,y \
        -x 1,2 \
        -o 4 \
        -n 6 \
        -p "${confidence_cutoff}" \
        -d \
        -e \
        -w "windows/acquisition_${mz}.txt" \
        -k openswath \
        -a "${consensus}_${mz}.tsv" \
        "${consensus}.sptxt"
done

grep "${test}" "${consensus}_${mz}.tsv" | head

3.6 Convert to TraML

OpenSWATH uses TraML. It is worth noting that I have a newer version of openms, and the converter program has changed names. It is also stricter and will throw an error if you give a file name ending in .csv but tell it tsv format…

3.7 Block 11

echo "Converting spectral libraries to TraML."
for mz in "${mz_windows[@]}"
do
    rm -f "${consensus}_${mz}.TraML"
    echo "Converting ${consensus}_${mz}"
    TargetedFileConverter \
        -in "${consensus}_${mz}.tsv" \
        -in_type tsv \
        -out "${consensus}_${mz}.TraML" \
        -out_type TraML
done

3.8 Add decoys

pyProphet later will want the decoy-based error rates, but they are not included by default. Use OpenSwathDecoyGenerate to make them.

The relevant options are:

  • -in : the input traml library
  • -out : the output library including decoys
  • -method : Method for creating the decoys
  • -append : Append the decoys!
  • -exclude_similar : drop decoys which are more similar than the given threshold
  • -similarity_threshold : which is specified here.
  • -identity_threshold : Identity threshold for the shuffler.

3.8.1 Block 12

echo "Adding decoys to the spectral libraries."
for mz in "${mz_windows[@]}"
do
    rm -f "${consensus}_${mz}_decoy.TraML"
    echo "Generating decoys for ${consensus}_${mz}"
    OpenSwathDecoyGenerator \
        -in "${consensus}_${mz}.TraML" \
        -out "${consensus}_${mz}_decoy.TraML" \
        -method shuffle \
        -append \
        -exclude_similar \
        -similarity_threshold "${confidence_cutoff}" \
        -identity_threshold 0.7
    grep "${test}" "${consensus}_${mz}_decoy.TraML" | head
done

3.9 Convert back to tsv to look at the result

Once it is converted back to tsv, we can poke at it and see how it looks.

3.9.1 Block 13

echo "Converting decoy-added libraries back to tsv for examination later."
for mz in "${mz_windows[@]}"
do
    rm -f "${consensus}_${mz}_decoy.tsv"
    echo "Converting decoys for ${consensus}_${mz} to tsv."
    TargetedFileConverter \
        -in "${consensus}_${mz}_decoy.TraML" \
        -in_type TraML \
        -out "${consensus}_${mz}_decoy.tsv" \
        -out_type tsv
    echo "Converting decoys for ${consensus}_${mz} to pqp."
    TargetedFileConverter \
        -in "${consensus}_${mz}_decoy.TraML" \
        -in_type TraML \
        -out_type pqp \
        -out "${consensus}_${mz}_decoy.pqp"
    grep "${test}" "${consensus}_${mz}_decoy.tsv" | head
done

3.10 Invoke OpenSwath

We should have have a set of retention time calibration transitions. I don’t currently. They are specified via -tr_irt filename.TraML

OpenSwathWorkflow has a bunch of options and is not fast.

  • -in : Input, either mzML or mzXML
  • -out_tsv : output filename
  • -tr : The dda-based transition library
  • -readOption : either run directly on the input data or cache it to disk to do data-reduction; allowed are ‘normal’, ‘cache’, ‘cachWorkingInMemory’
  • -batchSize : how many chromatograms to process at a time
  • -min_rsq : Minimum allowed R^2 of RT peptide regressions.
  • -min_coverage : Minimum relative amount of RT peptides to keep
  • -Scoring:Scores:use_dia_scores : either true or false
  • -mz_extraction_window : Extraction window used in thomson units, if one wishes to use ppms instead, use the -ppm option.
  • -ppm : Tell it to use ppms for the window
  • -threads : How many cores to use?
  • -min_upper_edge_dist : Minimal distance to the edge to still consider a given transition a precursor ion
  • -extra_rt_extraction_window : Whether or not to output an XIC with a large window to make it possible to visually inspect more of the chromatogram.
  • -rt_extraction_window : Use -1 to look over the whole range, 600 means +/- 300 seconds of the expected elution.
  • -swath_windows_file non-overlapping observational windows.

Here is a unny little peculiarity:

The window iles or this process must begin with ’start
the ones used in the previous step must not. That is very strange and annoying.

3.10.1 Block 14

## I want to figure out the individual steps for this,
## I bet we can make this process clearer
mkdir -p dia_result
mkdir -p tmp
transition_library="${consensus}_${mz}_decoy.pqp"
echo "${transition_library}"
ls -ld "${transition_library}"
for mz in "${mz_windows[@]}"
do
    mkdir -p "results/openswath/${mz}"
    for input in $(/bin/ls "mzXML/dia_${mz}/"*.mzXML)
    do
        name=$(basename "${input}" .mzXML)
        echo "Starting openswath run of ${name} using ${mz} windows."
        OpenSwathWorkflow \
            -force \
            -in "${input}" \
            ## -out_tsv "results/openswath/${mz}/${name}_vs_${dda_method}_dia.tsv" \
            -out_osw "results/openswath/${mz}/${name}_vs_${dda_method}.osw" \
            -swath_windows_file "windows/openswath_${name}.txt" \
            ##-sort-swath-maps \
            -tr ${transition_library} \
            ## -tr_irt iRT_assays.TraML \
            -threads 8 \
            -readOptions workingInMemory \
            -use_ms1_traces \
            -batchSize 1000 \
            -tempDirectory "${tempdir}" \
            -ppm \
            -mz_extraction_window 50 \
            -min_upper_edge_dist 1 \
            -extra_rt_extraction_window 1 \
            -RTNormalization:alignmentMethod linear \
            ## -TransitionGroupPicker:background_subtraction original \
            -rt_extraction_window -1 \
            -out_chrom "results/openswath/mzml/${name}_chromatographs.mzML" \
            -mz_correction_function quadratic_regression_delta_ppm \
            ## -Scoring:TransitionGroupPicker:compute_peak_quality false \
            ## -Scoring:TransitionGroupPicker:min_peak_width 8 \
            -min_rsq 0.9 \
            -min_coverage 0.4
            ## 2>>results/openswath/${name}.log 1>&2
        rm -f tmpopen*
    done
done
## Now lets examine and combine the results!

3.11 Analyze the peaks via pyProphet

Apparently there is another method of doing this.

I am getting tired, so I will leave this as is for the moment.

  • –d_score.cutoff= : Use d-score to filter the data, which is faster.
  • –ignore.invalid_score_columns : Drop NaN and infinity columns.

This command produces some neat pdf reports to look at.

3.11.1 Block 15

echo "Invoking pyprophet on the swath data to get final intensities by protein."
mkdir -p results/pyprophet
for input in $(find results/openswath -name "*_vs_${dda_method}_dia.tsv")
do
    name=$(basename "${input}" .tsv)
    echo "Starting pyprophet run of ${name}.  Hopefully it will write to results/pyprophet, but it might just fail."
    "${HOME}"/.local/bin/pyprophet \
             --target.overwrite \
             --d_score.cutoff=0.5 \
             --ignore.invalid_score_columns \
             "${input}"
    grep "${test}" results/openswath/*/*${dda_method}*_with_dscore.csv | head
done

3.12 Pyprophet changes (for openswath workflows > 2017)

http://openswath.org/en/latest/docs/pyprophet.html

Caveat: This only works with the python3 github repository > 201804.

inputs=$(find results/openswath -name '*.osw')
echo $inputs
${HOME}/.local/bin/pyprophet \
       merge \
       --out=results/pyprophet/merged.osw \
       --subsample_ratio=1 \
       ${inputs}
${HOME}/.local/bin/pyprophet \
       score \
       --in=results/pyprophet/merged.osw \
       --level=ms2 \
       2>results/pyprophet/scoring.err \
       1>results/pyprophet/scoring.out
${HOME}/.local/bin/pyprophet \
       score \
       --in=results/pyprophet/merged.osw \
       --level=ms1 \
       score \
       --in=results/pyprophet/merged.osw \
       --level=ms2 \
       score \
       --in=results/pyprophet/merged.osw \
       --level=transition
${HOME}/.local/bin/pyprophet \
       protein \
       --in=results/pyprophet/merged.osw \
       --context=global \
       protein \
       --in=results/pyprophet/merged.osw \
       --context=run-specific \
       protein \
       --in=results/pyprophet/merged.osw \
       --context=experiment-wide
${HOME}/.local/bin/pyprophet \
       export \
       --in=results/pyprophet/merged.osw \
       --out=results/pyprophet/legacy.tsv

3.13 TRIC integration

TRIC may be used to combine the dscore files into (I think) a single matrix.

  • –in : input files as tsv
  • –out : output file!
  • –file_format : openswath!
  • –method : clustering method; best_overall, best_cluster_score,
  • –global_best_cluster_score, global_best_overall, LocalMST, localMSTALLCluster
  • –max_rt_diff : Maximum difference for aligned features
  • –target_fdr : What FDR to optimize to, if -1 this is turned off.
  • –max_fdr_quality : an extension m-score cutoff.
  • –mst:useRTCorrection : Use an aligned peak group RT to continue threading?
  • –mst:Stdev_multiplier : How many STDevs is a peak group allowed to deviate?
  • –alignment_score : What is the minimum score needed for a feature to be considered across runs?
  • –realign_method : What RT alignment method should be used? (diRT, linear, splineR, splineR_external, splinePy, lowess, nonCVSpline, CVSpline, Earth)
  • –matrix_output_method : What columns to write beyond intensity?
  • –dscore_cutoff : Discard stuff below the given score
  • –frac_selected : Do not write a peak group if it is not found in more than this fraction of the runs.
  • –disable_isotopic_grouping : Disable grouping of variants by peptide group label.
  • –out_matrix : The matrix file containing one peak group per row
  • –out_meta : Output file of meta data.
echo "Invoking feature_alignment.py to get our final matrix of intensities."
mkdir -p results/tric
inputs=$(find  results/openswath -name "*_vs_${dda_method}_dia_with_dscore.csv" | grep -v Briken14)
output="results/tric/aligned_${search_method}_${dda_method}.tsv"
score_cutoff=10
## I am not sure what the optimal alignment_score option should be, but if it is too low
## for any of the data, then feature_alignment will yell 'Warning, zero data!' and throw
## a fatal error 'No data available for alignment x vs y'.
${HOME}/.local/bin/feature_alignment.py \
       ## --in results/openswath/*/*${dda_method}*_dscore_filtered.csv \
       ## --in $(find results/ -name '*_with_dscore_filtered.csv') \
       --in ${inputs} \
       --out "${output}" \
       ## I think this is the input for SWATH2stats.
       --file_format openswath \
       --method LocalMST \
       --max_rt_diff 30 \
       --target_fdr ${confidence_cutoff} \
       --max_fdr_quality ${confidence_cutoff} \
       --mst:useRTCorrection True \
       --mst:Stdev_multiplier 3.0 \
       --alignment_score ${score_cutoff} \
       --realign_method lowess \
       --matrix_output_method full \
       --dscore_cutoff ${dscore_cutoff} \
       --frac_selected 0 \
       --disable_isotopic_grouping \
       --out_matrix results/tric/${dda_method}_outmatrix.tsv \
       --out_meta results/tric/${dda_method}_meta.tsv

4 Checklist of parameters I need to have exactly correct

I would like to suggest that any DDA/DIA run data be accompanied with an excel workbook containing the following:

  1. DDA Sample sheet with 1 row/file containing any batch/condition information.
  2. Important parameters for DDA acquisition:
  • Method used for acquisition: CID, ETD, CID-QTOF, HCD
  • Mass tolerance in ppm
  • Enzyme used for digestion, if the digestions are semi, note that.
  • The number of likely missed cleavages due to odd enzymes or troublesome samples, otherwise assuming 0.
  • expected variable modifications, only note 15.99 M if it is absent. (notably deamidations, as I have noticed them in the sequest searches sometimes)
  • expected digestion range, otherwise I will assume 600-7000
  • If any labels are used for quantification, note them, if any standard peptides are spiked, note them including a column with the full sequence/peptide.
  1. DIA Sample sheet with 1 row/file containing any batch/condition data.
  • If any peptides are spiked in, add their expected quantities here as 1 column/peptide.
  1. Important parameters for DIA acquisition, repeat any of the above when relevant.
  • Extraction window in mz if not the default (30)
  • Add sequences of any spiked peptides here.
  1. DIA observation windows used.
  2. DIA parameter requests.
  • The DIA workflow has many branching points, if specific ones are desired, I would put them here.

5 Actually invoke the above

When working on the above steps, I can either run each command one at a time in a subshell from within my editor, or I can concatenate them into a single script. The following block shows such an invocation and then the resulting output.

./dia_invocation_hcd.sh 2>&1 1>dia_invocation_hcd.out

Before printing the output, lets just make sure I did not change anything important in the script.

diff dia_invocation_cid.sh dia_invocation_hcd.sh
cat dia_invocation_hcd.out
## 41c41
## < dda_method="CID"
## ---
## > dda_method="HCD"
## 97a98
## > 
## 164a166
## > echo ${consensus}
## 229c231
## <     echo "Converting decoys for ${consensus}_${mz}"
## ---
## >     echo "Converting decoys for ${consensus}_${mz} to tsv."
## 234a237,242
## >     echo "Converting decoys for ${consensus}_${mz} to pqp."
## >     TargetedFileConverter \
## >         -in "${consensus}_${mz}_decoy.TraML" \
## >         -in_type TraML \
## >         -out_type pqp \
## >         -out "${consensus}_${mz}_decoy.pqp"
## 242a251,252
## > transition_library="${consensus}_${mz}_decoy.pqp"
## > echo "Checking in, the transition library is: ${transition_library}"
## 253c263,264
## <             -out_tsv "results/openswath/${mz}/${name}_vs_${dda_method}_dia.tsv" \
## ---
## >             ## -out_tsv "results/openswath/${mz}/${name}_vs_${dda_method}_dia.tsv" \
## >             -out_osw "results/openswath/${mz}/${name}_vs_${dda_method}.osw" \
## 256c267
## <             -tr "${consensus}_${mz}_decoy.TraML" \
## ---
## >             -tr "${transition_library}" \
## 275,276c286,287
## <             -min_coverage 0.4 \
## <             2>>results/openswath/${name}.log 1>&2
## ---
## >             -min_coverage 0.4
## >             ##2>>results/openswath/${name}.log 1>&2
## 278d288
## <         sleep 5
## 302c312,316
## < ##inputs=$(find  results/openswath -name "*_vs_${dda_method}_dia_with_dscore.csv")
## ---
## > inputs=$(find  results/openswath -name "*_vs_${dda_method}_dia_with_dscore.csv")
## > score_cutoff=10
## > ## I am not sure what the optimal alignment_score option should be, but if it is too low
## > ## for any of the data, then feature_alignment will yell 'Warning, zero data!' and throw
## > ## a fatal error 'No data available for alignment x vs y'.
## 304c318,320
## <        --in results/openswath/*/*${dda_method}*_dscore_filtered.csv \
## ---
## >        ## --in results/openswath/*/*${dda_method}*_dscore_filtered.csv \
## >        ## --in $(find results/ -name '*_with_dscore_filtered.csv') \
## >        --in ${inputs} \
## 313c329
## <        --alignment_score 0.0001 \
## ---
## >        --alignment_score ${score_cutoff} \
## Setting variables for the rest of the script.
## Loading environment modules.
## CPATH=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/include:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/include:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/include:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/include:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/include:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/include:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/include:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/include; export CPATH;
## LD_RUN_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LD_RUN_PATH;
## INFOPATH=/cbcb/sw/RedHat-7-x86_64/common/info; export INFOPATH;
## MANPATH=/cbcb/sw/RedHat-7-x86_64/common/man:/usr/man:/usr/local/man:/usr/X11R6/man:/usr/share/man; export MANPATH;
## COMMON=/cbcb/sw/RedHat-7-x86_64/common; export COMMON;
## LIBRARY_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LIBRARY_PATH;
## JAVA_HOME=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0; export JAVA_HOME;
## _LMFILES_=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0; export _LMFILES_;
## LOADEDMODULES=sqlite/3.16.2:glib/2.52.1:fribidi/0.19.7:gstreamer/0.10.36:libuv/1.8.0:luadist/5.2.4:efl/1.8.6:qt/4.8.7:comet/2016012:libxml/2.9.4:ncbitoolkit/18.0.0:tandem-mass/20170201:percolator/3.1.2:java/8.0:sirius/3.5.1:openms/2.0.0; export LOADEDMODULES;
## CBCB_LOADED=16; export CBCB_LOADED;
## INFOPATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/info:1; export INFOPATH_modshare;
## MANPATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/man:1:/usr/man:1:/usr/X11R6/man:1:/usr/local/man:1:/usr/share/man:1; export MANPATH_modshare;
## LIBRARY_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LIBRARY_PATH_modshare;
## PKG_CONFIG_PATH=/cbcb/sw/RedHat-7-x86_64/common/pkgconfig; export PKG_CONFIG_PATH;
## PKG_CONFIG_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/pkgconfig:1; export PKG_CONFIG_PATH_modshare;
## VIRTUAL_ENV=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0; export VIRTUAL_ENV;
## OPENMS_DATA_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/share/OpenMs; export OPENMS_DATA_PATH;
## CPATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/include:1; export CPATH_modshare;
## LD_RUN_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LD_RUN_PATH_modshare;
## QTDIR=/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7; export QTDIR;
## _LMFILES__modshare=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:1; export _LMFILES__modshare;
## LOADEDMODULES_modshare=sqlite/3.16.2:1:libxml/2.9.4:1:qt/4.8.7:1:comet/2016012:1:luadist/5.2.4:1:fribidi/0.19.7:1:gstreamer/0.10.36:1:efl/1.8.6:1:sirius/3.5.1:1:glib/2.52.1:1:percolator/3.1.2:1:tandem-mass/20170201:1:libuv/1.8.0:1:ncbitoolkit/18.0.0:1:openms/2.0.0:1:java/8.0:1; export LOADEDMODULES_modshare;
## MODULE_PRE=/cbcb/sw/RedHat-7-x86_64/common/local; export MODULE_PRE;
## PATH=/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/trey/.local/bin:.:/home/trey/biopieces/bin:/home/trey/.local/bin:.:/home/trey/biopieces/bin; export PATH;
## PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:1:/usr/bin:1:/usr/X11R6/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:1:/home/trey/.local/bin:1:/home/trey/bin:1:/usr/local/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:1:/home/trey/biopieces/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:1:/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:1:/home/trey/perl5/bin:1:/usr/bin/X11:1:/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:1:/usr/games/emu/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:1:/usr/local/bio/bin:1:/usr/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:1:/usr/games:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:1:/usr/local/sbin:1:.:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:1:/usr/local/games:1; export PATH_modshare;
## test 0;
## CPATH=/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/include:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/include:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/include:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/include:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/include:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/include:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/include:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/include:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/include:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/include:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/include; export CPATH;
## LD_RUN_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LD_RUN_PATH;
## LIBRARY_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LIBRARY_PATH;
## CBCB_LOADED=19; export CBCB_LOADED;
## LOADEDMODULES=sqlite/3.16.2:glib/2.52.1:fribidi/0.19.7:gstreamer/0.10.36:libuv/1.8.0:luadist/5.2.4:efl/1.8.6:qt/4.8.7:comet/2016012:libxml/2.9.4:ncbitoolkit/18.0.0:tandem-mass/20170201:percolator/3.1.2:java/8.0:sirius/3.5.1:openms/2.0.0:libwebp/0.5.2:gd/2.2.4:tpp/5.1.0; export LOADEDMODULES;
## _LMFILES_=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libwebp/0.5.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gd/2.2.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tpp/5.1.0; export _LMFILES_;
## LIBRARY_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LIBRARY_PATH_modshare;
## LD_RUN_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LD_RUN_PATH_modshare;
## CPATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/include:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/include:1; export CPATH_modshare;
## LOADEDMODULES_modshare=sqlite/3.16.2:1:libxml/2.9.4:1:qt/4.8.7:1:comet/2016012:1:luadist/5.2.4:1:fribidi/0.19.7:1:gstreamer/0.10.36:1:efl/1.8.6:1:sirius/3.5.1:1:glib/2.52.1:1:percolator/3.1.2:1:tpp/5.1.0:1:gd/2.2.4:1:tandem-mass/20170201:1:libuv/1.8.0:1:ncbitoolkit/18.0.0:1:libwebp/0.5.2:1:openms/2.0.0:1:java/8.0:1; export LOADEDMODULES_modshare;
## _LMFILES__modshare=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libwebp/0.5.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gd/2.2.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tpp/5.1.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:1; export _LMFILES__modshare;
## PATH=/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/bin:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/trey/.local/bin:.:/home/trey/biopieces/bin:/home/trey/.local/bin:.:/home/trey/biopieces/bin; export PATH;
## PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:1:/usr/bin:1:/usr/X11R6/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:1:/home/trey/.local/bin:1:/home/trey/bin:1:/usr/local/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:1:/home/trey/biopieces/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/bin:1:/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:1:/home/trey/perl5/bin:1:/usr/bin/X11:1:/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:1:/usr/games/emu/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:1:/usr/local/bio/bin:1:/usr/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:1:/usr/games:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:1:/usr/local/sbin:1:.:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:1:/usr/local/games:1; export PATH_modshare;
## test 0;
## _LMFILES__modshare=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libwebp/0.5.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gd/2.2.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/mayu/git_201801:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tpp/5.1.0:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:1; export _LMFILES__modshare;
## LOADEDMODULES_modshare=sqlite/3.16.2:1:libxml/2.9.4:1:qt/4.8.7:1:comet/2016012:1:luadist/5.2.4:1:fribidi/0.19.7:1:gstreamer/0.10.36:1:efl/1.8.6:1:mayu/git_201801:1:sirius/3.5.1:1:glib/2.52.1:1:percolator/3.1.2:1:tpp/5.1.0:1:gd/2.2.4:1:tandem-mass/20170201:1:libuv/1.8.0:1:ncbitoolkit/18.0.0:1:libwebp/0.5.2:1:openms/2.0.0:1:java/8.0:1; export LOADEDMODULES_modshare;
## LD_RUN_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801/lib:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LD_RUN_PATH;
## LIBRARY_PATH=/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801/lib:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib; export LIBRARY_PATH;
## PATH=/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/bin:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/home/trey/perl5/bin:/home/trey/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/bin:/usr/sbin:/usr/local/bio/bin:/usr/games:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/games/emu/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/trey/.local/bin:.:/home/trey/biopieces/bin:/home/trey/.local/bin:.:/home/trey/biopieces/bin; export PATH;
## _LMFILES_=/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sqlite/3.16.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/glib/2.52.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/fribidi/0.19.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gstreamer/0.10.36:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libuv/1.8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/luadist/5.2.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/efl/1.8.6:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/qt/4.8.7:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/comet/2016012:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libxml/2.9.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/ncbitoolkit/18.0.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tandem-mass/20170201:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/percolator/3.1.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/java/8.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/sirius/3.5.1:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/openms/2.0.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/libwebp/0.5.2:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/gd/2.2.4:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/tpp/5.1.0:/cbcb/sw/RedHat-7-x86_64/common/modules/version/latest/mayu/git_201801; export _LMFILES_;
## LOADEDMODULES=sqlite/3.16.2:glib/2.52.1:fribidi/0.19.7:gstreamer/0.10.36:libuv/1.8.0:luadist/5.2.4:efl/1.8.6:qt/4.8.7:comet/2016012:libxml/2.9.4:ncbitoolkit/18.0.0:tandem-mass/20170201:percolator/3.1.2:java/8.0:sirius/3.5.1:openms/2.0.0:libwebp/0.5.2:gd/2.2.4:tpp/5.1.0:mayu/git_201801; export LOADEDMODULES;
## CBCB_LOADED=20; export CBCB_LOADED;
## LD_RUN_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LD_RUN_PATH_modshare;
## LIBRARY_PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/jre/lib/amd64/server:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libuv/1.8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/lib:1:/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/lib:1; export LIBRARY_PATH_modshare;
## PATH_modshare=/cbcb/sw/RedHat-7-x86_64/common/local/gstreamer/0.10.36/bin:1:/usr/bin:1:/usr/X11R6/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/efl/1.8.6/bin:1:/home/trey/.local/bin:1:/home/trey/bin:1:/usr/local/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sirius/3.5.1/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/glib/2.52.1/bin:1:/home/trey/biopieces/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/percolator/3.1.2/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/gd/2.2.4/bin:1:/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/tandem-mass/20170201/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/ncbitoolkit/18.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/libwebp/0.5.2/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/openms/2.0.0/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/java/8.0/bin:1:/home/trey/perl5/bin:1:/usr/bin/X11:1:/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/sqlite/3.16.2/bin:1:/usr/games/emu/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801:1:/cbcb/sw/RedHat-7-x86_64/common/local/libxml/2.9.4/bin:1:/usr/local/bio/bin:1:/usr/sbin:1:/cbcb/sw/RedHat-7-x86_64/common/local/comet/2016012/bin:1:/cbcb/sw/RedHat-7-x86_64/common/local/qt/4.8.7/bin:1:/usr/games:1:/cbcb/sw/RedHat-7-x86_64/common/local/luadist/5.2.4/bin:1:/usr/local/sbin:1:.:1:/cbcb/sw/RedHat-7-x86_64/common/local/fribidi/0.19.7/bin:1:/usr/local/games:1; export PATH_modshare;
## test 0;
## Starting run of comet using the configuration file:
## comet/comet_HCD_params.txt against mzXML/dda_HCD/2018_0129BrikenDDA01.mzXML.
##  Comet version "2017.01 rev. 1"
## 
##  Search start:  03/29/2018, 04:33:51 PM
##  - Input file: mzXML/dda_HCD/2018_0129BrikenDDA01.mzXML
##    - Load spectra: 10009
##      - Search progress:   1%  2%  3%  4%  5%  7%  8%  9% 10% 12% 13% 14% 15% 16% 17% 19% 20% 21% 22% 23% 24%
##      - Post analysis:  done
##    - Load spectra: 10010
##      - Search progress:  25% 26% 27% 28% 29% 30% 31% 32% 34% 35% 36% 37% 38% 39% 40% 41% 42% 43% 44% 45% 46%
##      - Post analysis:  done
##    - Load spectra: 10005
##      - Search progress:  47% 48% 49% 50% 50% 51% 52% 54% 55% 56% 57% 57% 58% 59% 60% 61% 62% 63% 64% 65% 66%
##      - Post analysis:  done
##    - Load spectra: 10009
##      - Search progress:  67% 68% 69% 70% 70% 71% 72% 74% 75% 76% 77% 77% 78% 79% 80% 81% 82% 83% 84% 85% 86%
##      - Post analysis:  done
##    - Load spectra: 6771
##      - Search progress:  86% 87% 88% 88% 89% 90% 90% 91% 92% 93% 93% 94% 95% 95% 96% 97% 97% 98% 99% 99%100%
##      - Post analysis:  done
##  Search end:    03/29/2018, 04:35:29 PM, 1m:38s
## 
## Starting refreshparser to hopefully add back the alternate matches dropped by comet.
## Refreshparser-ing mzXML/dda_HCD/2018_0129BrikenDDA01.pep.xml.
## 
##   - Searching the tree...
##   - Linking duplicate entries...
##   - Printing results...
## 
## Invoking xinteract to merge searches, set decoys, and set up fdr.
## 
## xinteract (TPP v5.1.0 Syzygy, Build 201711091514-exported (Linux-x86_64))
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/InteractParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'mzXML/dda_HCD/2018_0129BrikenDDA01.pep.xml' -L'7'"
##  file 1: mzXML/dda_HCD/2018_0129BrikenDDA01.pep.xml
##  processed altogether 46804 results
## command completed in 29 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/DatabaseParser 'results/fdr_controlled/fdr_library_comet_HCD.xml'"
## command completed in 1 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/RefreshParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'reference/reference.fasta'"
## 
##   - Searching the tree...
##   - Linking duplicate entries...
##   - Printing results...
## 
## command completed in 12 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/PeptideProphetParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' DECOY=DECOY_ ACCMASS RT NONPARAM DECOYPROBS"
## using Accurate Mass Bins
## using RT
## Using Decoy Label "DECOY_".
## Decoy Probabilities will be reported.
## Using non-parametric distributions
##  (Comet)
## adding ACCMASS mixture distribution
## adding Retention Time mixture distr
## init with Comet trypsin 
## MS Instrument info: Manufacturer: Thermo Scientific, Model: Orbitrap Fusion Lumos, Ionization: UNKNOWN, Analyzer: UNKNOWN, Detector: UNKNOWN
## 
## INFO: Processing standard MixtureModel ... 
## Initialising statistical models ...
## Iterations: .........10.........20.......Estimating Retention Time Model ... please wait ... 
## 
## model complete after 28 iterations
## command completed in 59 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProphetModels.pl -i results/fdr_controlled/fdr_library_comet_HCD.xml -d "DECOY_""
## Analyzing results/fdr_controlled/fdr_library_comet_HCD.xml ...
## Reading Accurate Mass Model model +1 ...
## Reading kernel density RTCalc RT [RT] model +1 ...
## Reading Accurate Mass Model model +2 ...
## Reading kernel density RTCalc RT [RT] model +2 ...
## Reading Accurate Mass Model model +3 ...
## Reading kernel density RTCalc RT [RT] model +3 ...
## Reading Accurate Mass Model model +4 ...
## Reading kernel density RTCalc RT [RT] model +4 ...
## Reading Accurate Mass Model model +5 ...
## Reading kernel density RTCalc RT [RT] model +5 ...
## Reading Accurate Mass Model model +6 ...
## Reading kernel density RTCalc RT [RT] model +6 ...
## Reading Accurate Mass Model model +7 ...
## Reading kernel density RTCalc RT [RT] model +7 ...
## Parsing search results "/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/mzXML/dda_HCD/2018_0129BrikenDDA01 (Comet)"...
##   => Found 25712 hits. (970 decoys, 0 excluded)
##   => Total so far: 25712 hits. (970 decoys, 0 excluded)
## command completed in 3 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/cgi-bin/PepXMLViewer.cgi -I /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml"
## command completed in 2 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProteinProphet 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'results/fdr_controlled/fdr_library_comet_HCD.prot.xml'"
## ProteinProphet (C++) by Insilicos LLC and LabKey Software, after the original Perl by A. Keller (TPP v5.1.0 Syzygy, Build 201711091514-exported (Linux-x86_64))
##  (no FPKM) (using degen pep info)
## Reading in /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml...
## ...read in 0 1+, 10658 2+, 11038 3+, 2799 4+, 230 5+, 17 6+, 0 7+ spectra with min prob 0.05
## 
## Initializing 13948 peptide weights: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
## Calculating protein lengths and molecular weights from database reference/reference.fasta
## .........:.........:.........:.........:.........:.........:.........:.........:.........:.........1000
## .........:.........:.........:.........:.........:.........:.........:.........:.........:.........2000
## .........:.........:.........:.........:.........:.........:.........:.........:.........:.........3000
## .........:.........:.........:.........:.........:.........:.........:.........:.........:.........4000
##   Total: 4008
## Computing degenerate peptides for 2292 proteins: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
## Computing probabilities for 2303 proteins.  Loop 1: 0%...20%...40%...60%...80%...100%  Loop 2: 0%...20%...40%...60%...80%...100%
## Computing probabilities for 2303 proteins.  Loop 1: 0%...20%...40%...60%...80%...100%  Loop 2: 0%...20%...40%...60%...80%...100%
## Computing probabilities for 2303 proteins.  Loop 1: 0%...20%...40%...60%...80%...100%  Loop 2: 0%...20%...40%...60%...80%...100%
## Computing 2277 protein groups: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
## Calculating sensitivity...and error tables...
## Computing MU for 2303 proteins: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
## 
## Finished. Results written to: /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot.xml
## command completed in 5 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProtProphModels.pl -i results/fdr_controlled/fdr_library_comet_HCD.prot.xml"
## Analyzing results/fdr_controlled/fdr_library_comet_HCD.prot.xml ...
## command completed in 1 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/tpp_models.pl '/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml'"
## File: /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml
##  - in ms run: /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/mzXML/dda_HCD/2018_0129BrikenDDA01...
## -------------------------------------------------------------------------------
## TPP DASHBOARD -- started at Thu Mar 29 16:38:04 2018
## -------------------------------------------------------------------------------
## File /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml is pepxml
## Found fval (+1) model...
## Found ntt (+1) model...
## Found nmc (+1) model...
## Found AccurateMassModel ('+1') model...
## Found IsoMassDiff (+1) model...
## Found kerneldensityRTCalcRT[RT] ('+1') model...
## Found fval (+2) model...
## Found ntt (+2) model...
## Found nmc (+2) model...
## Found AccurateMassModel ('+2') model...
## Found IsoMassDiff (+2) model...
## Found kerneldensityRTCalcRT[RT] ('+2') model...
## Found fval (+3) model...
## Found ntt (+3) model...
## Found nmc (+3) model...
## Found AccurateMassModel ('+3') model...
## Found IsoMassDiff (+3) model...
## Found kerneldensityRTCalcRT[RT] ('+3') model...
## Found fval (+4) model...
## Found ntt (+4) model...
## Found nmc (+4) model...
## Found AccurateMassModel ('+4') model...
## Found IsoMassDiff (+4) model...
## Found kerneldensityRTCalcRT[RT] ('+4') model...
## Found fval (+5) model...
## Found ntt (+5) model...
## Found nmc (+5) model...
## Found AccurateMassModel ('+5') model...
## Found IsoMassDiff (+5) model...
## Found kerneldensityRTCalcRT[RT] ('+5') model...
## Found fval (+6) model...
## Found ntt (+6) model...
## Found nmc (+6) model...
## Found AccurateMassModel ('+6') model...
## Found IsoMassDiff (+6) model...
## Found kerneldensityRTCalcRT[RT] ('+6') model...
## Found fval (+7) model...
## Found ntt (+7) model...
## Found nmc (+7) model...
## Found AccurateMassModel ('+7') model...
## Found IsoMassDiff (+7) model...
## Found kerneldensityRTCalcRT[RT] ('+7') model...
## --> Trying to write file /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD-MODELS.html
## -------------------------------------------------------------------------------
## Finished at Thu Mar 29 16:38:06 2018 with 0 errors.
## -------------------------------------------------------------------------------
## 
## 
## command completed in 2 sec 
## 
## running: "/cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/tpp_models.pl '/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot.xml'"
## File: /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot.xml
## -------------------------------------------------------------------------------
## TPP DASHBOARD -- started at Thu Mar 29 16:38:06 2018
## -------------------------------------------------------------------------------
## File /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot.xml is protxml
## Found end of header
## --> Trying to write file /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot-MODELS.html
## -------------------------------------------------------------------------------
## Finished at Thu Mar 29 16:38:06 2018 with 0 errors.
## -------------------------------------------------------------------------------
## 
## 
## command completed in 0 sec 
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/InteractParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'mzXML/dda_HCD/2018_0129BrikenDDA01.pep.xml' -L'7' 29 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/DatabaseParser 'results/fdr_controlled/fdr_library_comet_HCD.xml'
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/RefreshParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'reference/reference.fasta' 12 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/PeptideProphetParser 'results/fdr_controlled/fdr_library_comet_HCD.xml' DECOY=DECOY_ ACCMASS RT NONPARAM DECOYPROBS 59 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProphetModels.pl -i results/fdr_controlled/fdr_library_comet_HCD.xml -d "DECOY_" 3 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/cgi-bin/PepXMLViewer.cgi -I /fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml 2 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProteinProphet 'results/fdr_controlled/fdr_library_comet_HCD.xml' 'results/fdr_controlled/fdr_library_comet_HCD.prot.xml' 5 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/ProtProphModels.pl -i results/fdr_controlled/fdr_library_comet_HCD.prot.xml 1 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/tpp_models.pl '/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.xml' 2 sec
## /cbcb/sw/RedHat-7-x86_64/common/local/tpp/5.1.0/bin/tpp_models.pl '/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/fdr_controlled/fdr_library_comet_HCD.prot.xml' 0 sec
## job completed in 114 sec 
## <search_hit hit_rank="1" peptide="LAQAYQDGGAR" peptide_prev_aa="K" peptide_next_aa="L" protein="Rv1611" num_tot_proteins="1" num_matched_ions="8" tot_num_ions="20" calc_neutral_pep_mass="1148.557435" massdiff="0.001376" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="110">
## <search_hit hit_rank="1" peptide="IVSVVTEQRR" peptide_prev_aa="R" peptide_next_aa="F" protein="Rv1611" num_tot_proteins="1" num_matched_ions="14" tot_num_ions="36" calc_neutral_pep_mass="1185.682970" massdiff="-0.000576" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="168">
## <search_hit hit_rank="1" peptide="IVSVVTEQRR" peptide_prev_aa="R" peptide_next_aa="F" protein="Rv1611" num_tot_proteins="1" num_matched_ions="13" tot_num_ions="36" calc_neutral_pep_mass="1185.682970" massdiff="0.001072" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="168">
## <search_hit hit_rank="1" peptide="IVSVVTEQR" peptide_prev_aa="R" peptide_next_aa="R" protein="Rv1611" num_tot_proteins="1" num_matched_ions="9" tot_num_ions="16" calc_neutral_pep_mass="1029.581859" massdiff="-0.000465" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="200">
## <search_hit hit_rank="1" peptide="IVSVVTEQR" peptide_prev_aa="R" peptide_next_aa="R" protein="Rv1611" num_tot_proteins="1" num_matched_ions="9" tot_num_ions="16" calc_neutral_pep_mass="1029.581859" massdiff="0.000512" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="202">
## <search_hit hit_rank="1" peptide="AAVADLVTAGTHPSCPKPAR" peptide_prev_aa="R" peptide_next_aa="-" protein="Rv1611" num_tot_proteins="1" num_matched_ions="21" tot_num_ions="76" calc_neutral_pep_mass="2018.036744" massdiff="1.002035" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="184">
## <search_hit hit_rank="1" peptide="AAVADLVTAGTHPSCPKPAR" peptide_prev_aa="R" peptide_next_aa="-" protein="Rv1611" num_tot_proteins="1" num_matched_ions="28" tot_num_ions="76" calc_neutral_pep_mass="2018.036744" massdiff="1.008260" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="176">
## <search_hit hit_rank="1" peptide="EASVSLSEIK" peptide_prev_aa="R" peptide_next_aa="A" protein="Rv1611" num_tot_proteins="1" num_matched_ions="11" tot_num_ions="18" calc_neutral_pep_mass="1061.560455" massdiff="0.000187" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="164">
## <search_hit hit_rank="1" peptide="EASVSLSEIK" peptide_prev_aa="R" peptide_next_aa="A" protein="Rv1611" num_tot_proteins="1" num_matched_ions="12" tot_num_ions="18" calc_neutral_pep_mass="1061.560455" massdiff="-0.001033" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="152">
## <search_hit hit_rank="1" peptide="RASPSAGALATIADPAK" peptide_prev_aa="K" peptide_next_aa="L" protein="Rv1611" num_tot_proteins="1" num_matched_ions="25" tot_num_ions="64" calc_neutral_pep_mass="1595.863120" massdiff="0.000610" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="108">
## Invoking the InterProphetParser to combine multiple identifications of the same peptide.
## <search_hit hit_rank="1" peptide="LAQAYQDGGAR" peptide_prev_aa="K" peptide_next_aa="L" protein="Rv1611" num_tot_proteins="1" num_matched_ions="8" tot_num_ions="20" calc_neutral_pep_mass="1148.557435" massdiff="0.001376" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="110">
## <search_hit hit_rank="1" peptide="IVSVVTEQRR" peptide_prev_aa="R" peptide_next_aa="F" protein="Rv1611" num_tot_proteins="1" num_matched_ions="14" tot_num_ions="36" calc_neutral_pep_mass="1185.682970" massdiff="-0.000576" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="168">
## <search_hit hit_rank="1" peptide="IVSVVTEQRR" peptide_prev_aa="R" peptide_next_aa="F" protein="Rv1611" num_tot_proteins="1" num_matched_ions="13" tot_num_ions="36" calc_neutral_pep_mass="1185.682970" massdiff="0.001072" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="168">
## <search_hit hit_rank="1" peptide="IVSVVTEQR" peptide_prev_aa="R" peptide_next_aa="R" protein="Rv1611" num_tot_proteins="1" num_matched_ions="9" tot_num_ions="16" calc_neutral_pep_mass="1029.581859" massdiff="-0.000465" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="200">
## <search_hit hit_rank="1" peptide="IVSVVTEQR" peptide_prev_aa="R" peptide_next_aa="R" protein="Rv1611" num_tot_proteins="1" num_matched_ions="9" tot_num_ions="16" calc_neutral_pep_mass="1029.581859" massdiff="0.000512" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="202">
## <search_hit hit_rank="1" peptide="AAVADLVTAGTHPSCPKPAR" peptide_prev_aa="R" peptide_next_aa="-" protein="Rv1611" num_tot_proteins="1" num_matched_ions="21" tot_num_ions="76" calc_neutral_pep_mass="2018.036744" massdiff="1.002035" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="184">
## <search_hit hit_rank="1" peptide="AAVADLVTAGTHPSCPKPAR" peptide_prev_aa="R" peptide_next_aa="-" protein="Rv1611" num_tot_proteins="1" num_matched_ions="28" tot_num_ions="76" calc_neutral_pep_mass="2018.036744" massdiff="1.008260" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="176">
## <search_hit hit_rank="1" peptide="EASVSLSEIK" peptide_prev_aa="R" peptide_next_aa="A" protein="Rv1611" num_tot_proteins="1" num_matched_ions="11" tot_num_ions="18" calc_neutral_pep_mass="1061.560455" massdiff="0.000187" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="164">
## <search_hit hit_rank="1" peptide="EASVSLSEIK" peptide_prev_aa="R" peptide_next_aa="A" protein="Rv1611" num_tot_proteins="1" num_matched_ions="12" tot_num_ions="18" calc_neutral_pep_mass="1061.560455" massdiff="-0.001033" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="152">
## <search_hit hit_rank="1" peptide="RASPSAGALATIADPAK" peptide_prev_aa="K" peptide_next_aa="L" protein="Rv1611" num_tot_proteins="1" num_matched_ions="25" tot_num_ions="64" calc_neutral_pep_mass="1595.863120" massdiff="0.000610" num_tol_term="2" num_missed_cleavages="0" num_matched_peptides="108">
## Invoking mayu to standardize the fdr estimates.
## 
##   /cbcb/sw/RedHat-7-x86_64/common/local/mayu/git_201801/Mayu.pl 1.08
##   Found IprophetProbability. Using this instead of PeptideProphetProbability.
##   Caveat: Do not mix iprophet and peptideprophet files, there is no check!
##   feature aa or id DECOY_Rv0290_UNMAPPED not found!
##   feature corr_ntp or id DECOY_Rv0290_UNMAPPED not found!
##   feature aa or id DECOY_Rv3635_UNMAPPED not found!
##   feature corr_ntp or id DECOY_Rv3635_UNMAPPED not found!
##   feature aa or id DECOY_Rv0991c_UNMAPPED not found!
##   feature corr_ntp or id DECOY_Rv0991c_UNMAPPED not found!
## Creating initial spectral libraries with spectrast.
## If a single input was given, make sure to link it to comet.mzXML.
## SpectraST started at Thu Mar 29 16:40:56 2018.
## Processing "results/iprophet/iprophet_comet_HCD.xml"...500...1000...1500...2000...2500...3000...3500...4000...4500...5000...5500...6000...6500...7000...7500...8000...8500...9000...9500...10000...10500...11000...11500...12000...12500...13000...13500...14000...14500...15000...15500...16000...16500...17000...17500...18000...18500...19000...19500...20000...20500...21000...21500...22000...DONE!
## Importing all spectra with P>=0.95 ...10%...20%...30%...40%...50%...60%...70%...80%...90%...DONE!
## 
## Library file (BINARY) "results/spectral_libraries/comet_HCD.splib" created.
## Library file (TEXT) "results/spectral_libraries/comet_HCD.sptxt" created.
## M/Z Index file "results/spectral_libraries/comet_HCD.spidx" created.
## Peptide Index file "results/spectral_libraries/comet_HCD.pepidx" created.
## 
## Total number of spectra in library: 22024
## Total number of distinct peptide ions in library: 12285
## Total number of distinct stripped peptides in library: 11074
## 
## CHARGE            +1: 0 ; +2: 9603 ; +3: 9686 ; +4: 2517 ; +5: 205 ; >+5: 13 ; Unk: 0
## TERMINI           Tryptic: 22024 ; Semi-tryptic: 0 ; Non-tryptic: 0
## PROBABILITY       >0.9999: 14766 ; 0.999-0.9999: 3822 ; 0.99-0.999: 2329 ; 0.9-0.99: 1107 ; <0.9: 0
## NREPS             20+: 0 ; 10-19: 0 ; 4-9: 0 ; 2-3: 0 ; 1: 22024
## MODIFICATIONS     C,Carbamidomethyl: 1362
##                   M,Oxidation: 506
## 
## Total Run Time = 283 seconds.
## SpectraST finished at Thu Mar 29 16:45:39 2018 without error.
## Comment: AvePrecursorMz=575.6216 BinaryFileOffset=1597678 FracUnassigned=0.00,0/5;0.19,8/20;0.75,69/85 MassDiff=0.0014 Mods=0 NAA=11 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=1e+05 Parent=575.286 Pep=Tryptic PrecursorIntensity=2e+05 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.03658.03658 RetentionTime=1273.8,1273.8,1273.8 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=5.9546/0 Spec=Raw TotalIonCurrent=5.5e+05
## Comment: AvePrecursorMz=396.4664 BinaryFileOffset=3954157 FracUnassigned=0.51,2/5;0.52,11/20;0.56,228/318 MassDiff=0.0011 Mods=0 NAA=10 NMC=1 NTT=2 Nreps=1/1 OrigMaxIntensity=6.8e+05 Parent=396.235 Pep=Tryptic PrecursorIntensity=1.1e+06 Prob=0.9519 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.04821.04821 RetentionTime=1429.5,1429.5,1429.5 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=0.9519/0,fv=1.6477/0 Spec=Raw TotalIonCurrent=5e+06
## Comment: AvePrecursorMz=516.1021 BinaryFileOffset=9485350 FracUnassigned=0.29,2/5;0.39,11/20;0.47,165/216 MassDiff=-0.0005 Mods=0 NAA=9 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=7.2e+05 Parent=515.798 Pep=Tryptic PrecursorIntensity=1.8e+06 Prob=0.9999 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.07097.07097 RetentionTime=1714.9,1714.9,1714.9 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=0.9999/0,fv=4.7600/0 Spec=Raw TotalIonCurrent=5.2e+06
## Comment: AvePrecursorMz=516.1021 BinaryFileOffset=10091742 FracUnassigned=0.11,1/5;0.41,11/20;0.52,150/190 MassDiff=0.0005 Mods=0 NAA=9 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=2.7e+05 Parent=515.798 Pep=Tryptic PrecursorIntensity=6.4e+05 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.07368.07368 RetentionTime=1749.3,1749.3,1749.3 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=5.7408/0 Spec=Raw TotalIonCurrent=2.7e+06
## Comment: AvePrecursorMz=674.1093 BinaryFileOffset=19924905 FracUnassigned=0.00,0/5;0.00,0/20;0.09,26/102 MassDiff=1.0020 Mods=1/14,C,Carbamidomethyl NAA=20 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=9.6e+04 Parent=673.686 Pep=Tryptic PrecursorIntensity=3.9e+05 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.11649.11649 RetentionTime=2262.0,2262.0,2262.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=10.3494/0 Spec=Raw TotalIonCurrent=1.7e+06
## Comment: AvePrecursorMz=674.1093 BinaryFileOffset=20455202 FracUnassigned=0.00,0/5;0.00,0/20;0.06,85/258 MassDiff=1.0083 Mods=1/14,C,Carbamidomethyl NAA=20 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=4e+05 Parent=673.686 Pep=Tryptic PrecursorIntensity=1.7e+06 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.11915.11915 RetentionTime=2293.6,2293.6,2293.6 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=10.5344/0 Spec=Raw TotalIonCurrent=7.6e+06
## Comment: AvePrecursorMz=532.1000 BinaryFileOffset=21024212 FracUnassigned=0.08,1/5;0.28,10/20;0.27,106/176 MassDiff=0.0002 Mods=0 NAA=10 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=5.4e+05 Parent=531.788 Pep=Tryptic PrecursorIntensity=1e+06 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.12176.12176 RetentionTime=2324.6,2324.6,2324.6 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=5.3654/0 Spec=Raw TotalIonCurrent=3.1e+06
## Comment: AvePrecursorMz=532.1000 BinaryFileOffset=22025211 FracUnassigned=0.17,1/5;0.39,10/20;0.48,223/315 MassDiff=-0.0010 Mods=0 NAA=10 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=6.8e+05 Parent=531.788 Pep=Tryptic PrecursorIntensity=1.2e+06 Prob=0.9999 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.12625.12625 RetentionTime=2378.9,2378.9,2378.9 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=0.9999/0,fv=4.4894/0 Spec=Raw TotalIonCurrent=5.6e+06
## Comment: AvePrecursorMz=533.2754 BinaryFileOffset=24029948 FracUnassigned=0.00,0/5;0.14,5/20;0.30,198/332 MassDiff=0.0006 Mods=0 NAA=17 NMC=1 NTT=2 Nreps=1/1 OrigMaxIntensity=1.9e+05 Parent=532.962 Pep=Tryptic PrecursorIntensity=1.5e+06 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.13548.13548 RetentionTime=2497.4,2497.4,2497.4 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=11.0730/0 Spec=Raw TotalIonCurrent=2.2e+06
## Comment: AvePrecursorMz=533.2754 BinaryFileOffset=24489470 FracUnassigned=0.00,0/5;0.05,2/20;0.12,103/231 MassDiff=0.0023 Mods=0 NAA=17 NMC=1 NTT=2 Nreps=1/1 OrigMaxIntensity=8.1e+05 Parent=532.962 Pep=Tryptic PrecursorIntensity=2.5e+06 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.13799.13799 RetentionTime=2528.2,2528.2,2528.2 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=10.7623/0 Spec=Raw TotalIonCurrent=7.2e+06
## Making consensus libraries with spectrast.
## SpectraST started at Thu Mar 29 16:45:40 2018.
## Creating CONSENSUS library from "/fs/cbcb-scratch/abelew/mycobacterium_tuberculosis_2018/results/spectral_libraries/comet_HCD.splib" 
## Importing ions...500...1000...1500...2000...2500...3000...3500...4000...4500...5000...5500...6000...6500...7000...7500...8000...8500...9000...9500...10000...10500...11000...11500...12000...DONE!
## 
## Library file (BINARY) "results/spectral_consensus/comet_HCD.splib" created.
## Library file (TEXT) "results/spectral_consensus/comet_HCD.sptxt" created.
## M/Z Index file "results/spectral_consensus/comet_HCD.spidx" created.
## Peptide Index file "results/spectral_consensus/comet_HCD.pepidx" created.
## 
## Total number of spectra in library: 12283
## Total number of distinct peptide ions in library: 12283
## Total number of distinct stripped peptides in library: 11073
## 
## CHARGE            +1: 0 ; +2: 5118 ; +3: 5464 ; +4: 1542 ; +5: 148 ; >+5: 11 ; Unk: 0
## TERMINI           Tryptic: 12283 ; Semi-tryptic: 0 ; Non-tryptic: 0
## PROBABILITY       >0.9999: 8364 ; 0.999-0.9999: 2065 ; 0.99-0.999: 1253 ; 0.9-0.99: 601 ; <0.9: 0
## NREPS             20+: 16 ; 10-19: 55 ; 4-9: 783 ; 2-3: 3710 ; 1: 7719
## MODIFICATIONS     C,Carbamidomethyl: 886
##                   M,Oxidation: 277
## 
## Total Run Time = 106 seconds.
## SpectraST finished at Thu Mar 29 16:47:26 2018 without error.
## Comment: AvePrecursorMz=900.7422 BinaryFileOffset=668 FracUnassigned=0.00,0/5;0.04,3/20;0.32,104/150 MassDiff=0.0017 Mods=0 NAA=28 NMC=1 NTT=2 Nreps=1/1 OrigMaxIntensity=7.9e+05 Parent=900.17 Pep=Tryptic PrecursorIntensity=1.2e+06 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.47172.47172 RetentionTime=6130.9,6130.9,6130.9 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=9.2816/0 Spec=CONSENSUS TotalIonCurrent=5e+06
## Comment: AvePrecursorMz=714.8553 BinaryFileOffset=4664 FracUnassigned=0.00,0/5;0.00,0/20;0.10,73/150 MassDiff=1.0092 Mods=0 NAA=29 NMC=2 NTT=2 Nreps=1/1 OrigMaxIntensity=2.4e+06 Parent=714.405 Pep=Tryptic PrecursorIntensity=2.6e+06 Prob=0.9990 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.45103.45103 RetentionTime=5931.1,5931.1,5931.1 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=0.9990/0,fv=4.8161/0 Spec=CONSENSUS TotalIonCurrent=1.3e+07
## Comment: AvePrecursorMz=674.1093 BestRawSpectrum=2018_0129BrikenDDA01.11915.11915 BinaryFileOffset=1056472 ConsFracAssignedPeaks=0.904 DotConsensus=0.96,0.03;0/2 FracUnassigned=0.00,0/5;0.00,0/20;0.06,85/258 Inst=0 MassDiff=1.0083 MassDiffCounts=1/1:2 MaxRepSN=71.8 Mods=1/14,C,Carbamidomethyl NAA=20 NMC=0 NTT=2 Nreps=2/2 OrigMaxIntensity=2.5e+05 Parent=673.686 Pep=Tryptic PrecursorIntensity=1e+06 Prob=1.0000 ProbRange=1,1,1,1 Protein=1/Rv1611 RepFracAssignedPeaks=0.708 RepNumPeaks=180.0/78.0 RetentionTime=2277.8,2293.6,2262.0 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,2,2 Se=1^C2:fv=10.4419/0.0925,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=4.6e+06
## Comment: AvePrecursorMz=721.3156 BestRawSpectrum=2018_0129BrikenDDA01.19747.19747 BinaryFileOffset=5877320 ConsFracAssignedPeaks=0.784 DotConsensus=0.93,0.03;0/3 FracUnassigned=0.00,0/5;0.00,0/20;0.10,68/189 Inst=0 MassDiff=0.0011 MassDiffCounts=2/0:2,1:1 MaxRepSN=63.7 Mods=0 NAA=16 NMC=0 NTT=2 Nreps=3/3 OrigMaxIntensity=4.3e+05 Parent=720.888 Pep=Tryptic PrecursorIntensity=1.1e+06 Prob=1.0000 ProbRange=1,1,1,1 Protein=1/Rv1611 RepFracAssignedPeaks=0.627 RepNumPeaks=127.3/48.3 RetentionTime=3217.9,3248.9,3187.0 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,3,3 Se=1^C3:fv=8.2810/0.1891,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=2.3e+06
## Comment: AvePrecursorMz=471.5767 BestRawSpectrum=2018_0129BrikenDDA01.20001.20001 BinaryFileOffset=5965532 ConsFracAssignedPeaks=0.494 DotConsensus=0.95,0.02;0/3 FracUnassigned=0.00,0/5;0.12,8/20;0.20,105/164 Inst=0 MassDiff=-0.0003 MassDiffCounts=1/0:3 MaxRepSN=51.3 Mods=0 NAA=9 NMC=0 NTT=2 Nreps=3/3 OrigMaxIntensity=5.6e+05 Parent=471.293 Pep=Tryptic PrecursorIntensity=1.3e+06 Prob=1.0000 ProbRange=1,1,0.999967,0.9999 Protein=1/Rv1611 RepFracAssignedPeaks=0.368 RepNumPeaks=119.3/36.7 RetentionTime=3245.7,3276.8,3213.7 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,3,3 Se=1^C3:fv=5.5969/0.8884,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=2.4e+06
## Comment: AvePrecursorMz=534.9348 BestRawSpectrum=2018_0129BrikenDDA01.20358.20358 BinaryFileOffset=7687921 ConsFracAssignedPeaks=0.640 DotConsensus=0.95,0.03;0/3 FracUnassigned=0.25,1/5;0.15,2/20;0.09,138/286 Inst=0 MassDiff=1.0033 MassDiffCounts=2/0:2,1:1 MaxRepSN=134.8 Mods=0 NAA=13 NMC=0 NTT=2 Nreps=3/3 OrigMaxIntensity=5.3e+05 Parent=534.607 Pep=Tryptic PrecursorIntensity=2e+06 Prob=1.0000 ProbRange=1,1,1,1 Protein=1/Rv1611 RepFracAssignedPeaks=0.437 RepNumPeaks=243.3/30.7 RetentionTime=3284.9,3318.2,3253.9 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,3,3 Se=1^C3:fv=10.0272/0.1504,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=6.1e+06
## Comment: AvePrecursorMz=532.1000 BestRawSpectrum=2018_0129BrikenDDA01.12625.12625 BinaryFileOffset=9331160 ConsFracAssignedPeaks=0.537 DotConsensus=0.92,0.04;0/2 FracUnassigned=0.17,1/5;0.39,10/20;0.48,223/315 Inst=0 MassDiff=-0.0010 MassDiffCounts=1/0:2 MaxRepSN=44.3 Mods=0 NAA=10 NMC=0 NTT=2 Nreps=2/2 OrigMaxIntensity=6.1e+05 Parent=531.788 Pep=Tryptic PrecursorIntensity=1.1e+06 Prob=1.0000 ProbRange=1,1,0.99995,0.9999 Protein=1/Rv1611 RepFracAssignedPeaks=0.345 RepNumPeaks=245.5/69.5 RetentionTime=2351.8,2378.9,2324.6 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,2,2 Se=1^C2:fv=4.9274/0.4380,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=4.4e+06
## Comment: AvePrecursorMz=668.7255 BestRawSpectrum=2018_0129BrikenDDA01.24063.24063 BinaryFileOffset=12588924 ConsFracAssignedPeaks=0.694 DotConsensus=0.91,0.03;0/2 FracUnassigned=0.00,0/5;0.10,5/20;0.17,72/142 Inst=0 MassDiff=0.0016 MassDiffCounts=1/0:2 MaxRepSN=40.7 Mods=0 NAA=12 NMC=0 NTT=2 Nreps=2/2 OrigMaxIntensity=7.7e+05 Parent=668.331 Pep=Tryptic PrecursorIntensity=1.9e+06 Prob=1.0000 ProbRange=1,1,1,1 Protein=1/Rv1611 RepFracAssignedPeaks=0.479 RepNumPeaks=149.5/7.5 RetentionTime=3715.6,3733.5,3697.6 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,2,2 Se=1^C2:fv=7.8753/0.5237,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=3.8e+06
## Comment: AvePrecursorMz=1359.4998 BinaryFileOffset=16176846 FracUnassigned=0.15,1/5;0.08,1/20;0.18,60/150 MassDiff=0.9989 Mods=0 NAA=29 NMC=0 NTT=2 Nreps=1/1 OrigMaxIntensity=1.9e+05 Parent=1358.69 Pep=Tryptic PrecursorIntensity=9.1e+05 Prob=1.0000 Protein=1/Rv1611 RawSpectrum=2018_0129BrikenDDA01.50797.50797 RetentionTime=6482.9,6482.9,6482.9 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,1,1 Se=1^C1:pb=1.0000/0,fv=9.6086/0 Spec=CONSENSUS TotalIonCurrent=1.8e+06
## Comment: AvePrecursorMz=906.6690 BestRawSpectrum=2018_0129BrikenDDA01.51140.51140 BinaryFileOffset=16181209 ConsFracAssignedPeaks=0.727 DotConsensus=0.83,0.09;0/5 FracUnassigned=0.00,0/5;0.05,2/20;0.21,117/283 Inst=0 MassDiff=1.0063 MassDiffCounts=2/0:1,1:4 MaxRepSN=22.4 Mods=0 NAA=29 NMC=0 NTT=2 Nreps=5/5 OrigMaxIntensity=4e+05 Parent=906.131 Pep=Tryptic PrecursorIntensity=1.2e+06 Prob=1.0000 ProbRange=1,1,1,1 Protein=1/Rv1611 RepFracAssignedPeaks=0.497 RepNumPeaks=265.6/112.3 RetentionTime=6531.8,6894.2,6480.5 SN=200.0 Sample=1/_fs_cbcb-scratch_abelew_mycobacterium_tuberculosis_2018_results_iprophet_iprophet_comet_HCD,5,5 Se=1^C5:fv=11.4323/0.5438,pb=1.0000/0.0000 Spec=CONSENSUS TotalIonCurrent=4.9e+06
## results/spectral_consensus/comet_HCD
## Make sure you have created an acquisition window file _without_ a header.
## There should be some which are just bob.txt in the windows/ directory.
## Writing spectrast tsv files with spectrast2tsv.
## Making a consensus library specific for 8mz windows.
## swathsfile :  windows/acquisition_8mz.txt
## Masslimits: [350.0, 2000.0]
## Modifications used :  ['C[160]', 'M[147]', 'W[202]', 'H[153]', 'K[136]', 'R[166]', 'E[111]', 'Q[111]', 'C[143]', 'n[43]', 'S[167]', 'T[181]', 'Y[243]', 'N[115]', 'Q[129]', 'C[149]', 'D[131]', 'K[144]', 'Y[179]', 'R[172]', 'N[130]', 'P[113]', 'C[119]', 'N[317]', 'N[349]']
## Reading :  results/spectral_consensus/comet_HCD.sptxt
## spectra processed: 1000
## spectra processed: 2000
## spectra processed: 3000
## spectra processed: 4000
## spectra processed: 5000
## spectra processed: 6000
## spectra processed: 7000
## spectra processed: 8000
## spectra processed: 9000
## spectra processed: 10000
## spectra processed: 11000
## spectra processed: 12000
## file written :  results/spectral_consensus/comet_HCD_8mz.tsv
## Done.
## Making a consensus library specific for 20mz windows.
## swathsfile :  windows/acquisition_20mz.txt
## Masslimits: [350.0, 2000.0]
## Modifications used :  ['C[160]', 'M[147]', 'W[202]', 'H[153]', 'K[136]', 'R[166]', 'E[111]', 'Q[111]', 'C[143]', 'n[43]', 'S[167]', 'T[181]', 'Y[243]', 'N[115]', 'Q[129]', 'C[149]', 'D[131]', 'K[144]', 'Y[179]', 'R[172]', 'N[130]', 'P[113]', 'C[119]', 'N[317]', 'N[349]']
## Reading :  results/spectral_consensus/comet_HCD.sptxt
## spectra processed: 1000
## spectra processed: 2000
## spectra processed: 3000
## spectra processed: 4000
## spectra processed: 5000
## spectra processed: 6000
## spectra processed: 7000
## spectra processed: 8000
## spectra processed: 9000
## spectra processed: 10000
## spectra processed: 11000
## spectra processed: 12000
## file written :  results/spectral_consensus/comet_HCD_20mz.tsv
## Done.
## 900.1701955793334    1136.6403137490001  6130.9  9_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  10000.0 1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    y   2   22  light
## 900.1701955793334    1172.1588706440002  6130.9  10_y23_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  1680.6  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y23^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    y   2   23  light
## 900.1701955793334    356.19284544999994  6130.9  1_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1563.2  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    b   1   5   light
## 900.1701955793334    427.2299592399999   6130.9  2_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1462.5  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b6/-0.000,m13:25^3/-0.015   AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    b   1   6   light
## 900.1701955793334    1088.1139318220003  6130.9  8_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  1077.8  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y21^2/0.002 AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    y   2   21  light
## 900.1701955793334    1207.6774275390003  6130.9  11_y24_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  672.0   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y24^2/0.004 AAAAAAPPPLDVMAALREPGIGVIAEVK    3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    1/Rv1611    y   2   24  light
## 714.4047435705   356.19284544999994  5931.1  15_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1337.1  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVKR   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   1/Rv1611    b   1   5   light
## 714.4047435705   427.2299592399999   5931.1  17_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1003.9  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b6/0.000    AAAAAAPPPLDVMAALREPGIGVIAEVKR   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   1/Rv1611    b   1   6   light
## 714.4047435705   1117.6381054170004  5931.1  30_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  922.7   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y21^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   1/Rv1611    y   2   21  light
## 714.4047435705   1166.1644873440002  5931.1  32_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  860.0   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   1/Rv1611    y   2   22  light
## Converting spectral libraries to TraML.
## Converting results/spectral_consensus/comet_HCD_8mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Progress of 'converting to TraML format':
## 
  0.00 %               
-- done [took 0.49 s (CPU), 0.71 s (Wall)] -- 
## TargetedFileConverter took 2.87 s (wall), 2.11 s (CPU), 0.22 s (system), 1.89 s (user).
## Converting results/spectral_consensus/comet_HCD_20mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Progress of 'converting to TraML format':
## 
  52.55 %               
-- done [took 0.37 s (CPU), 0.39 s (Wall)] -- 
## TargetedFileConverter took 2.37 s (wall), 1.90 s (CPU), 0.20 s (system), 1.70 s (user).
## Adding decoys to the spectral libraries.
## Generating decoys for results/spectral_consensus/comet_HCD_8mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Loading results/spectral_consensus/comet_HCD_8mz.TraML
## Generate decoys
## OpenSwathDecoyGenerator took 14.18 s (wall), 13.24 s (CPU), 0.51 s (system), 12.73 s (user).
##     <Protein id="1/Rv1611">
##       <cvParam cvRef="MS" accession="MS:1000885" name="protein accession" value="1/Rv1611"/>
##     <Protein id="DECOY_1/Rv1611">
##       <cvParam cvRef="MS" accession="MS:1000885" name="protein accession" value="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
## Generating decoys for results/spectral_consensus/comet_HCD_20mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Loading results/spectral_consensus/comet_HCD_20mz.TraML
## Generate decoys
## OpenSwathDecoyGenerator took 11.40 s (wall), 10.68 s (CPU), 0.36 s (system), 10.32 s (user).
##     <Protein id="1/Rv1611">
##       <cvParam cvRef="MS" accession="MS:1000885" name="protein accession" value="1/Rv1611"/>
##     <Protein id="DECOY_1/Rv1611">
##       <cvParam cvRef="MS" accession="MS:1000885" name="protein accession" value="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
##       <ProteinRef ref="1/Rv1611"/>
## Converting decoy-added libraries back to tsv for examination later.
## Converting decoys for results/spectral_consensus/comet_HCD_8mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Progress of 'converting to OpenSWATH transition TSV format':
## 
  42.60 %               
-- done [took 0.90 s (CPU), 0.96 s (Wall)] -- 
## TargetedFileConverter took 15.05 s (wall), 13.18 s (CPU), 0.87 s (system), 12.31 s (user).
## 900.170195579333 1136.640313749  6130.9  9_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  10000   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   22  1   0   1
## 900.170195579333 1172.158870644  6130.9  10_y23_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  1680.6  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y23^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   23  1   0   1
## 900.170195579333 356.19284545    6130.9  1_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1563.2  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    1   b   5   1   0   1
## 900.170195579333 427.22995924    6130.9  2_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1462.5  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b6/-0.000,m13:25^3/-0.015   AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    1   b   6   1   0   1
## 900.170195579333 1088.113931822  6130.9  8_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  1077.8  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y21^2/0.002 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   21  1   0   1
## 900.170195579333 1207.677427539  6130.9  11_y24_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  672 1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y24^2/0.004 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   24  1   0   1
## 714.4047435705   356.19284545    5931.1  15_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1337.1  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    1   b   5   1   0   1
## 714.4047435705   427.22995924    5931.1  17_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1003.9  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b6/0.000    AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    1   b   6   1   0   1
## 714.4047435705   1117.638105417  5931.1  30_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  922.7   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y21^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    2   y   21  1   0   1
## 714.4047435705   1166.164487344  5931.1  32_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  860 2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    2   y   22  1   0   1
## Converting decoys for results/spectral_consensus/comet_HCD_20mz
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Progress of 'converting to OpenSWATH transition TSV format':
## 
  8.13 %               
-- done [took 0.75 s (CPU), 0.77 s (Wall)] -- 
## TargetedFileConverter took 12.57 s (wall), 11.03 s (CPU), 0.63 s (system), 10.40 s (user).
## 900.170195579333 1136.640313749  6130.9  9_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  10000   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   22  1   0   1
## 900.170195579333 1172.158870644  6130.9  10_y23_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  1680.6  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y23^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   23  1   0   1
## 900.170195579333 356.19284545    6130.9  1_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1563.2  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    1   b   5   1   0   1
## 900.170195579333 427.22995924    6130.9  2_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3   -1  1462.5  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    b6/-0.000,m13:25^3/-0.015   AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    1   b   6   1   0   1
## 900.170195579333 1088.113931822  6130.9  8_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3  -1  1077.8  1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y21^2/0.002 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   21  1   0   1
## 900.170195579333 1207.677427539  6130.9  11_y24_2_AAAAAAPPPLDVMAALREPGIGVIAEVK_3 -1  672 1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3    0   AAAAAAPPPLDVMAALREPGIGVIAEVK    1/Rv1611    y24^2/0.004 AAAAAAPPPLDVMAALREPGIGVIAEVK                0   0   0   3   1_AAAAAAPPPLDVMAALREPGIGVIAEVK_3        1/Rv1611    2   y   24  1   0   1
## 714.4047435705   356.19284545    5931.1  15_b5_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1337.1  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b5/-0.000,m2:6/-0.000   AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    1   b   5   1   0   1
## 714.4047435705   427.22995924    5931.1  17_b6_1_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4 -1  1003.9  2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    b6/0.000    AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    1   b   6   1   0   1
## 714.4047435705   1117.638105417  5931.1  30_y21_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  922.7   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y21^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    2   y   21  1   0   1
## 714.4047435705   1166.164487344  5931.1  32_y22_2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4    -1  860 2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4   0   AAAAAAPPPLDVMAALREPGIGVIAEVKR   1/Rv1611    y22^2/0.001 AAAAAAPPPLDVMAALREPGIGVIAEVKR               0   0   0   4   2_AAAAAAPPPLDVMAALREPGIGVIAEVKR_4       1/Rv1611    2   y   22  1   0   1
## Invoking the OpenSwathWorkflow.
## Starting openswath run of 2018_0116BrikenDIA01 using 8mz windows.
## File '/home/trey/.OpenMS/OpenMS.ini' is deprecated.
## Updating missing/wrong entries in '/home/trey/.OpenMS/OpenMS.ini' with defaults!
## Error: The required parameter 'tr' [valid: traML, tsv, pqp] was not given or is empty!

6 Index version: 20180215

7 TODO

  • 2017-06-14:

index.html

if (!isTRUE(get0("skip_load"))) {
  message(paste0("This is hpgltools commit: ", get_git_commit()))
  this_save <- paste0(gsub(pattern="\\.Rmd", replace="", x=rmd_file), "-v", ver, ".rda.xz")
  message(paste0("Saving to ", this_save))
  tmp <- sm(saveme(filename=this_save))
  pander::pander(sessionInfo())
}
## If you wish to reproduce this exact build of hpgltools, invoke the following:
## > git clone http://github.com/abelew/hpgltools.git
## > git reset 7de4503f6bb5724c28cce24af5dbee22bb1c0cae
## R> packrat::restore()
## This is hpgltools commit: Thu Apr 12 22:08:53 2018 -0400: 7de4503f6bb5724c28cce24af5dbee22bb1c0cae
## Saving to 01_preprocessing_comet_highres-v20180215.rda.xz

R version 3.4.4 (2018-03-15)

**Platform:** x86_64-pc-linux-gnu (64-bit)

locale: LC_CTYPE=en_US.utf8, LC_NUMERIC=C, LC_TIME=en_US.utf8, LC_COLLATE=en_US.utf8, LC_MONETARY=en_US.utf8, LC_MESSAGES=en_US.utf8, LC_PAPER=en_US.utf8, LC_NAME=C, LC_ADDRESS=C, LC_TELEPHONE=C, LC_MEASUREMENT=en_US.utf8 and LC_IDENTIFICATION=C

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

other attached packages: hpgltools(v.2018.03)

loaded via a namespace (and not attached): Rcpp(v.0.12.16), compiler(v.3.4.4), pillar(v.1.2.1), RColorBrewer(v.1.1-2), plyr(v.1.8.4), base64enc(v.0.1-3), iterators(v.1.0.9), tools(v.3.4.4), digest(v.0.6.15), evaluate(v.0.10.1), memoise(v.1.1.0), tibble(v.1.4.2), gtable(v.0.2.0), rlang(v.0.2.0.9001), foreach(v.1.4.4), commonmark(v.1.4), yaml(v.2.1.18), parallel(v.3.4.4), withr(v.2.1.2), stringr(v.1.3.0), knitr(v.1.20), roxygen2(v.6.0.1), xml2(v.1.2.0), devtools(v.1.13.5), rprojroot(v.1.3-2), grid(v.3.4.4), data.table(v.1.10.4-3), Biobase(v.2.38.0), R6(v.2.2.2), rmarkdown(v.1.9), pander(v.0.6.1), ggplot2(v.2.2.1), magrittr(v.1.5), backports(v.1.1.2), scales(v.0.5.0.9000), codetools(v.0.2-15), htmltools(v.0.3.6), BiocGenerics(v.0.24.0), colorspace(v.1.3-2), labeling(v.0.3), stringi(v.1.1.7), lazyeval(v.0.2.1) and munsell(v.0.4.3)

LS0tCnRpdGxlOiAiTS50dWJlcmN1bG9zaXMgMjAxODogUHJlcHJvY2Vzc2luZyBESUEgZGF0YSB3aXRoIGEgY29tZXQgaGlnaHJlcyBsaWJyYXJ5LiIKYXV0aG9yOiAiYXRiIGFiZWxld0BnbWFpbC5jb20iCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OgogaHRtbF9kb2N1bWVudDoKICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgY29kZV9mb2xkaW5nOiBzaG93CiAgZmlnX2NhcHRpb246IHRydWUKICBmaWdfaGVpZ2h0OiA3CiAgZmlnX3dpZHRoOiA3CiAgaGlnaGxpZ2h0OiBkZWZhdWx0CiAga2VlcF9tZDogZmFsc2UKICBtb2RlOiBzZWxmY29udGFpbmVkCiAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCiAgc2VsZl9jb250YWluZWQ6IHRydWUKICB0aGVtZTogcmVhZGFibGUKICB0b2M6IHRydWUKICB0b2NfZmxvYXQ6CiAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICBzbW9vdGhfc2Nyb2xsOiBmYWxzZQotLS0KCjxzdHlsZT4KICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDE2MDBweDsKICB9Cjwvc3R5bGU+CgpgYGB7ciBvcHRpb25zLCBpbmNsdWRlPUZBTFNFfQppZiAoIWlzVFJVRShnZXQwKCJza2lwX2xvYWQiKSkpIHsKICBsaWJyYXJ5KGhwZ2x0b29scykKICB0dCA8LSBkZXZ0b29sczo6bG9hZF9hbGwoIn4vaHBnbHRvb2xzIikKICBrbml0cjo6b3B0c19rbml0JHNldChwcm9ncmVzcz1UUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD05MCwKICAgICAgICAgICAgICAgICAgICAgICBlY2hvPVRSVUUpCiAga25pdHI6Om9wdHNfY2h1bmskc2V0KGVycm9yPVRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgIGZpZy53aWR0aD04LAogICAgICAgICAgICAgICAgICAgICAgICBmaWcuaGVpZ2h0PTgsCiAgICAgICAgICAgICAgICAgICAgICAgIGRwaT05NikKICBvbGRfb3B0aW9ucyA8LSBvcHRpb25zKGRpZ2l0cz00LAogICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nc0FzRmFjdG9ycz1GQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgIGtuaXRyLmR1cGxpY2F0ZS5sYWJlbD0iYWxsb3ciKQogIGdncGxvdDI6OnRoZW1lX3NldChnZ3Bsb3QyOjp0aGVtZV9idyhiYXNlX3NpemU9MTApKQogIHZlciA8LSAiMjAxODAyMTUiCiAgcHJldmlvdXNfZmlsZSA8LSAiMDFfYW5ub3RhdGlvbi5SbWQiCgogIHRtcCA8LSB0cnkoc20obG9hZG1lKGZpbGVuYW1lPXBhc3RlMChnc3ViKHBhdHRlcm49IlxcLlJtZCIsIHJlcGxhY2U9IiIsIHg9cHJldmlvdXNfZmlsZSksICItdiIsIHZlciwgIi5yZGEueHoiKSkpKQogIHJtZF9maWxlIDwtICIwMV9wcmVwcm9jZXNzaW5nX2NvbWV0X2hpZ2hyZXMuUm1kIgp9CmBgYAoKUHJlcHJvY2Vzc2luZyBESUEgZGF0YSB2aWEgdGhlIGluc3RydWN0aW9ucyBhdDogaHR0cDovL2RpYS1zd2F0aC1jb3Vyc2UuZXRoei5jaC90dXRvcmlhbHMyMDE3Lwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgojIEdlbmVyYXRpbmcgYSBoaWdoLXJlcyAoSENEKSBzcGVjdHJhbCBzZWFyY2ggbGlicmFyeS4KClRoaXMgd29ya3NoZWV0IGlzIGluIHJlc3BvbnNlIHRvIFlhbidzIGVtYWlsOgoKIkZvbGxvd2luZyB1cCB0byBvdXIgZWFybGllciBjb252ZXJzYXRpb24uIEhlcmUgYXJlIHNvbWUgdGhpbmcgSSdtIGhvcGluZyB5b3UgY2FuCmV4dHJhY3Qgb3V0IG9mIHRoZSBjdXJyZW50IGRhdGE6CjEuIHdpdGggQnJpa2VuIGRhdGEsIEhpZ2ggcmVzb2x1dGlvbiB2cyBsb3cgcmVzb2x1dGlvbiBNU01TIGZvciBsaWJyYXJ5IGdlbmVyYXRpb246CkdlbmVyYXRlIHNlcGFyYXRlIGxpYnJhcmllcyB3aXRoIDAxMTZEREEwMSAobG93IHJlc29sdXRpb24pCmFuZCAwMTI5RERBMDEgKGhpZ2ggcmVzb2x1dGlvbiksIHRoZW4gdXNlIHRoZSB0d28gc2VwYXJhdGUgbGlicmFyaWVzIHRvIHF1YW50aWZ5CkRJQTAxLTAzLCAxMS0xMyB3aXRoIGNvcnJlc3BvbmRpbmcgZnJhZ21lbnQgbWFzcyBhY2N1cmFjeSAoMC41IERhIHZzCjAuMDJEYSkuIEJhc2ljYWxseSB0aGUgRElBIGRhdGEgaXMgZG9uZSB3aXRoIGhpZ2ggcmVzLiBJIHdhbnQgdG8gc2VlIGlmIGhpZ2ggcmVzCmxpYnJhcnkgZGF0YSB3aWxsIGhlbHAuIgoKVGhpcyBkb2N1bWVudCB3aWxsIGF0dGVtcHQgdG8gZG8gdGhhdCB3aXRoIHRoZSBzaW5nbGUgbG93LXJlcyBEREEgZGF0YSBzZXQKdGhlcmVmb3JlLgoKIyMjIEJsb2NrIDAxOiBWYXJpYWJsZXMKCmBgYHtiYXNoIHZhcmlhYmxlc30KZWNobyAiU2V0dGluZyB2YXJpYWJsZXMgZm9yIHRoZSByZXN0IG9mIHRoZSBzY3JpcHQuIgpzZWFyY2hfbWV0aG9kPSJjb21ldCIKY2xlYXZhZ2VzPSIyIgpyZWZkYj0icmVmZXJlbmNlL3JlZmVyZW5jZS5mYXN0YSIKZGVjb3lfc3RyaW5nPSJERUNPWV8iCmNvbmZpZGVuY2VfY3V0b2ZmPSIwLjA1IgppcHBwPSIwLjk3IgojIyBpcnRkYj0icmVmZXJlbmNlL3JlZmVyZW5jZS5mYXN0YSIKZGRhX21ldGhvZD0iSENEIgojIyBJIGFtIGFuIGlkaW90LCBJIGtlZXAgdHlwaW5nIGFyYmYgd2hlbiBJIHRlc3QgbXkgb3V0cHV0IGZpbGVzLi4uCnRlc3Q9IlJ2MTYxMSIKZGRhX2lucHV0PSQoL2Jpbi9scyBtelhNTC9kZGFfJHtkZGFfbWV0aG9kfS8qLm16WE1MKQpzdGFydGRpcj0iL2ZzL2NiY2Itc2NyYXRjaC9hYmVsZXcvbXljb2JhY3Rlcml1bV90dWJlcmN1bG9zaXNfMjAxOCIKbWtkaXIgLXAgcmVzdWx0cy9wZXB4bWwKZmRyX3Jlc3VsdD0icmVzdWx0cy9mZHJfY29udHJvbGxlZC9mZHJfbGlicmFyeV8ke3NlYXJjaF9tZXRob2R9XyR7ZGRhX21ldGhvZH0ueG1sIgpta2RpciAtcCByZXN1bHRzL2Zkcl9jb250cm9sbGVkCmlwcF9yZXN1bHQ9InJlc3VsdHMvaXByb3BoZXQvaXByb3BoZXRfJHtzZWFyY2hfbWV0aG9kfV8ke2RkYV9tZXRob2R9LnhtbCIKbWtkaXIgLXAgcmVzdWx0cy9pcHJvcGhldAptYXl1X291dD0icmVzdWx0cy9tYXl1L21heXVfJHtzZWFyY2hfbWV0aG9kfV8ke2RkYV9tZXRob2R9Lm91dCIKbWtkaXIgLXAgcmVzdWx0cy9tYXl1CnNwZWN0cmFsX2Jhc2VuYW1lPSJyZXN1bHRzL3NwZWN0cmFsX2xpYnJhcmllcy8ke3NlYXJjaF9tZXRob2R9XyR7ZGRhX21ldGhvZH0iCnNwZWN0cmFsX2xpYnJhcnk9IiR7c3BlY3RyYWxfYmFzZW5hbWV9LnNwbGliIgpta2RpciAtcCByZXN1bHRzL3NwZWN0cmFsX2xpYnJhcmllcwpjb25zZW5zdXM9InJlc3VsdHMvc3BlY3RyYWxfY29uc2Vuc3VzLyR7c2VhcmNoX21ldGhvZH1fJHtkZGFfbWV0aG9kfSIKbWtkaXIgLXAgcmVzdWx0cy9zcGVjdHJhbF9jb25zZW5zdXMKZGVjbGFyZSAtYSBtel93aW5kb3dzPSgiOG16IiAiMjBteiIpCnRlbXBkaXI9JChwd2QpL3RtcApkc2NvcmVfY3V0b2ZmPSIxMCIKYGBgCgojIyMgQmxvY2sgMDI6IExvYWQgc29mdHdhcmUKCmBgYHtiYXNoIG1vZHVsZXMsIGV2YWw9RkFMU0V9CiMjIEl0IGFwcGVhcnMgdGhhdCB0aGUgbW9kdWxlIGNvbW1hbmQgY2F1c2VzIHJ1bnIgdG8gZGllLgptb2R1bGUgYWRkIG9wZW5tcy8yLjAuMAptb2R1bGUgYWRkIHRwcAptb2R1bGUgYWRkIG1heXUKIyMgWWF5IG1vZHVsZXMhCmBgYAoKIyMgTW92ZSBmaWxlcwoKVGhlIHRoZXJtbyAucmF3IGZpbGVzIHdlcmUgbW92ZWQgaW50byBkaXJlY3RvcmllcyBsYWJlbGVkOgpyYXcvZGRhLCByYXcvZGlhLCBhbmQgcmF3L3N0ZAoKIyMgQ29udmVydCBmaWxlcwoKRm9yIHRoZSBkZGEgZmlsZXMsIHRoZSB3aW5kb3dzICdSYXdDb252ZXJ0ZXInIGZyb20gdGhlIFRQUCB3YXMgdXNlZCB0byBjb252ZXJ0IHRvIG16WE1MLgpGb3IgdGhlIGRpYSBmaWxlcywgdGhlIHdpbmRvd3MgJ01TQ29udmVydEdVSScgd2FzIHVzZWQgdG8gY29udmVydCB0byBtelhNTC4KCkluIHRoZW9yeSwgb25lIGlzIHN1cHBvc2VkIHRvIHVzZSBSYXdDb252ZXJ0ZXIgZm9yIGJvdGgsIGJ1dCBpdCBjcmFzaGVzLgpUaGlzIGlzIGEgcGl0eSwgYXMgaXQgaGFzIHNvbWUgb3B0aW9ucyBmb3IgY2VudHJvaWRlZCBjb252ZXJzaW9uIHdoaWNoIGxvb2sgdG8KYmUgdXNlZnVsLgoKIyMgUHJlcGFyZSByZWZlcmVuY2UgZGF0YWJhc2UKCkkgY29waWVkIHRoZSBodW1hbiBnZW5wZXAgZGF0YWJhc2UgdG8gcmVmZXJlbmNlLyAoQVVQMDAwMDU2NDAuZmFzdGEpICBVcG9uCmZpZ3VyaW5nIG91dCB0aGUgc2VxdWVuY2VzIG9mIHRoZSBBQlJGIHBlcHRpZGVzLCBJIGFkZGVkIHRoZW0gYXMgYWJyZi5mYXN0YSBhbmQKY29uY2F0ZW5hdGVkIHRoZSB0d28gZmlsZXMgaW50byByZWZlcmVuY2UuZmFzdGEuCgojIyBTZXQgdXAgY29tZXQKCkEgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBjb21ldCB3YXMgY3JlYXRlZCBieSBydW5uaW5nIGBjb21ldCAtcGAgYW5kIGVkaXRpbmcKdGhlIHJlc3VsdGluZyBmaWxlIGluIG9yZGVyIHRvIGJlIG1vcmUgc2ltaWxhciB0byB0aGUgc3VnZ2VzdGlvbnMgaW4gdGhlCnR1dG9yaWFsLiAgVGhlIHJlbGV2YW50IGNoYW5nZXMgYW5kIG9wdGlvbnMgbWVudGlvbmVkIGluIHRoZSB0dXRvcmlhbCBhcmU6CgoqICBkYXRhYmFzZV9uYW1lID0gJChwd2QpL3JlZmVyZW5jZS9yZWZlcmVuY2UuZmFzdGEgIC0tIG9idmlvdXNseSB0aGUKICAgY29uZmlndXJhdGlvbiBmaWxlIGRvZXMgbm90IHN1cHBvcnQgc3Vic2hlbGxzIGFuZCBzZWVtcyB0byByZXF1aXJlIGZ1bGwKICAgcGF0aG5hbWVzLgoqICBkZWNveV9zZWFyY2ggPSAxICAtLSB0aGUgdHV0b3JpYWwgYWN0dWFsbHkgc2V0IHRoaXMgdG8gMCwgYnV0IEkgZG9uJ3QgbWFrZSBteQogICBvd24gZGVjb3kgbGlicmFyeSwgc28gSSBzZXQgaXQgdG8gMS4KKiAgcGVwdGlkZV9tYXNzX3RvbGVyYW5jZSA9IDIwLjAgIC0tIHRoZSB0dXRvcmlhbCB1c2VkIDMwLCBJIHRoaW5rIHRoZSBvcmJpdHJhcAogICBjYW4gZ28gbG93ZXIsIEkgc2hvdWxkIGFzayBZYW4gYWJvdXQgdGhpcy4KKiAgYWxsb3dlZF9taXNzZWRfY2xlYXZhZ2UgPSAke0NMRUFWQUdFU30gIC0tIG9uY2UgYWdhaW4gdGhlIHR1dG9yaWFsIGlzIG1vcmUgY29uc2VydmF0aXZlLAogICBhbmQgaXQgbWlnaHQgdHVybiBvdXQgdG8gYmUgYSBiYWQgaWRlYSB0byBpbmNyZWFzZSB0aGlzIHRvIDIuCiogIHZhcmlhYmxlX21vZDAxID0gMTUuOTk0OSBNIDAgMyAtMSAwIDAgICAtLSBJIGhhdmUgbm90aWNlZCB0aGF0IGEgZmV3IG90aGVyCiAgIG1vZGlmaWNhdGlvbnMgYXJlIHVzZWQgaW4gWWFuJ3Mgc2VhcmNoZXMsIHBlcmhhcHMgSSBzaG91bGQgY29uc2lkZXIgdGhlc2U/CiogIGZyYWdtZW50X2Jpbl90b2wgPSAwLjAyICAgLS0gSSBhbSByZWFzb25hYmx5IGNlcnRhaW4gdGhpcyBpcyBhIHN0cm9uZ2x5CiAgIG1hY2hpbmUgZGVwZW5kYW50IHZhcmlhYmxlIGFuZCB0aGUgb3JiaXRyYXAgdXNlcyB0aGUgc21hbGxlciB2YWx1ZSB3aGlsZSBhbgogICBBQklTQ0lFWCB1c2VzIHRoZSBoaWdoZXIsIGJ1dCBJIGhhdmUgYmVlbiB3cm9uZyBiZWZvcmUuCiogIHVzZV9OTF9pb25zID0gMSAgLS0gdGhlIGRlZmF1bHQgaXMgMCwgSSBhbSBub3Qgc3VyZSB3aHkuCiogIGRpZ2VzdF9tYXNzX3JhbmdlID0gNjAwLjAgNzAwMC4wICAtLSBJIGluY3JlYXNlZCB0aGlzIHJhbmdlIHNsaWdodGx5IGFzIG15CiAgIGNvbnZlcnNhdGlvbiB3aXRoIFlhbiBzdWdnZXN0ZWQgdG8gbWUgdGhhdCB3ZSBnZXQgc29tZSBzbGlnaHRseSBsYXJnZXIgcGVwdGlkZXMuCiogIGRlY295X3ByZWZpeCA9ICR7REVDT1l9ICAgLS0gaXQgaXMgYSBsaXR0bGUgZWFzaWVyIGZvciBteSBleWVzIHRvIHNjYW4gYW5kIHNlZQogICB0aGUgQ0FQUwoKT25jZSBJIHdhcyBzYXRpc2ZpZWQsIEkgc2F2ZWQgaXQgdG8gY29tZXQvY29tZXRfcGFyYW1zLnR4dAoKSSBhbSB1c2luZyBjb21ldCBoZXJlIHByaW1hcmlseSBiZWNhdXNlIGl0IGlzIHdoYXQgd2FzIHVzZWQgaW46ClR1dG9yaWFsLTFfTGlicmFyeUdlbmVyYXRpb24ucGRmLiAgV2l0aCB0aGF0IGluIG1pbmQsIGFzIGxvbmcgYXMgdGhlIHJlc3VsdHMgYXJlCmluIGEgc2luZ2xlIHBlcC54bWwgZmlsZSBmb3IgZWFjaCBkZGEgYWNxdWlzaXRpb24gZmlsZSwgdGhlbiBJIGFtIGFsbCBnb29kIEkgdGhpbmsuCgpXaXRoIHRoYXQgaW4gbWluZCwgSSBiZWxpZXZlIEkgd2lsbCBkbyBzb21lIHRlc3RpbmcgaW4gdGhlIG5lYXIgZnV0dXJlIHRvIHNlZQppZiBJIGNhbiBhbHNvIHVzZSBtZ3NmL3RhbmRlbS9ldGMuCgojIyMgQmxvY2sgMDM6IGNvbWV0CgpgYGB7YmFzaCBjb21ldCwgZXZhbD1GQUxTRX0KIyMgSWYgdXNpbmcgdGhlIGNsdXN0ZXIsIGNvbWV0IGlzIGluIG1vZHVsZSAnY29tZXQnCiMjIFRoaXMgaXMgdGhlIG9sZCBDSUQgaW5wdXQuCiMjZXhwb3J0IElOUFVUPSIyMDE4XzAxMTZCcmlrZW5EREEwMS5telhNTCIKIyNleHBvcnQgSU5QVVQ9IjIwMThfMDEyOUJyaWtlbkREQTAxLm16WE1MIgojI2V4cG9ydCBCQVNFPSQoYmFzZW5hbWUgJHtJTlBVVH0gLm16WE1MKQojIyBDcmFwIGluIGEgaGF0LCB0aGUgbmV3IGhpZ2gtcmVzIG16WE1MIGZpbGUgaGFzIG1hbnkgZmV3ZXIgc3BlY3RyYSB0aGFuIHRoZSBvbGQgb25lCiMjIGFuZCBpbmNsdWRlcyBtYW55IGZld2VyIGhpdHMgaW4gY29tZXQuCiMjIEkgd2lsbCB1c2UgYm90aCBhbmQgc2VlIGlmIHRoYXQgaGVscHMuCmVjaG8gIlN0YXJ0aW5nIHJ1biBvZiBjb21ldCB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBmaWxlOgpjb21ldC9jb21ldF8ke2RkYV9tZXRob2R9X3BhcmFtcy50eHQgYWdhaW5zdCAke2RkYV9pbnB1dH0uIgpmb3IgaW5wdXQgaW4gJHtkZGFfaW5wdXR9CmRvCiAgICBiYXNlPSQoYmFzZW5hbWUgIiR7ZGRhX2lucHV0fSIgLm16WE1MKQogICAgL2NiY2Ivc3cvUmVkSGF0LTcteDg2XzY0L2NvbW1vbi9sb2NhbC90cHAvNS4xLjAvYmluL2NvbWV0IFwKICAgICAgICAtUGNvbWV0L2NvbWV0XyR7ZGRhX21ldGhvZH1fcGFyYW1zLnR4dCBcCiAgICAgICAgIiR7aW5wdXR9Igpkb25lCiMjIEkgd2FudCB0byBsb29rIGludG8gdXNpbmcgc29tZSBvZiB0aGUgb3RoZXIgc2VhcmNoIGVuZ2luZXMgaGVyZS4KYGBgCgojIyBFeHRyYWN0IGFsdGVybmF0ZSBoaXRzIGZvciBjb21ldAoKQXBwYXJlbnRseSBjb21ldCBjYW4gb25seSByZXBvcnQgdGhlIGZpcnN0IGhpdCBvZiBhIGJ1bmNoIHdoZW4gcmVwb3J0aW5nIGl0cyBtYXRjaGVzLgpUUFAgcHJvdmlkZXMgYSB0aGluZyB0byBmaXggdGhpczoKCklmIEkgcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBjb3JyZWN0bHksIHRoaXMgc2hvdWxkIGdpdmUgbWUgdGhlIGFsdGVybmF0ZSBoaXRzIHdoZW4gYXZhaWxhYmxlLgoKIyMjIEJsb2NrIDA0CgpgYGB7YmFzaCByZWZyZXNoLCBldmFsPUZBTFNFfQplY2hvICJTdGFydGluZyByZWZyZXNocGFyc2VyIHRvIGhvcGVmdWxseSBhZGQgYmFjayB0aGUgYWx0ZXJuYXRlIG1hdGNoZXMgZHJvcHBlZCBieSBjb21ldC4iCmZvciBpbnB1dCBpbiAkKC9iaW4vbHMgbXpYTUwvZGRhXyR7ZGRhX21ldGhvZH0vKi5wZXAueG1sKQpkbwogICAgZWNobyAiUmVmcmVzaHBhcnNlci1pbmcgJHtpbnB1dH0uIgogICAgUmVmcmVzaFBhcnNlciBcCiAgICAgICAgIiR7aW5wdXR9IiBcCiAgICAgICAgIiR7cmVmZGJ9Igpkb25lCmBgYAoKIyMgeGludGVyYWN0CgpUaGlzIHRvb2wgaXMgaW50ZW5kZWQgdG8gY29tYmluZSB0aGUgc2VhcmNoZXMgZm9yIGVhY2ggaW5wdXQgZmlsZSBpbnRvIGEgc2luZ2xlCnNldCBvZiBjb250cm9sbGVkIEZEUnMuICBJdCB3b3JrcyBieSBleGFtaW5pbmcgZWFjaCBzZWFyY2ggb3V0cHV0IGZpbGUgYW5kCmNyZWF0aW5nIGEgZGlzdHJpYnV0aW9uIG9mIHRoZSBzZWFyY2ggc2NvcmVzIGZvciBlYWNoIHNldCBvZiB0YXJnZXRzIGFuZCBkZWNveXMuCk9uY2UgaXQgaGFzIHRoZXNlIGRpc3RyaWJ1dGlvbnMsIGl0IGNvbXB1dGVzIHRoZSBsaWtlbGlob29kIHRoYXQgZWFjaCBpbmRpdmlkdWFsCnNlYXJjaCB3YXMgY29ycmVjdC4KCkl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IEkgaW5zdGFsbGVkIHRwcCBmcm9tIHRoZSBnaXQgdHJlZSBhbmQgc3RhdGljYWxseQpsaW5rZWQgYXMgbXVjaCBvZiBpdCBhcyBwb3NzaWJsZSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIGZvciBtZSB0byBkbyB0ZXN0IHJ1bnMKb24gbXkgd29ya3N0YXRpb24uICBIb3BlZnVsbHkgaXQgd2lsbCBydW4gcHJvcGVybHkgYXMgYSByZXN1bHQsIGJ1dCB0aGlzIGlzCm5vdCBndWFyYW50ZWVkIGFzIG15IHdvcmtzdGF0aW9uIHJ1bnMgYSByZWNlbnQgdmVyc2lvbiBvZiBEZWJpYW4gbGludXgsIHdoaWxlCkkgY29tcGlsZWQgdHBwIG9uIHRoZSBjbHVzdGVyJ3MgUmVkSGF0IDcuMCBhcmNoaXRlY3R1cmUgdXNpbmcgZ2NjIDYuMi4wLgoKSGVyZSBhcmUgc29tZSBvZiB0aGUgeGludGVyYWN0IG9wdGlvbnMgKG5vdGUgdGhhdCB4aW50ZXJhY3Qgb3B0aW9ucyBtdXN0IG5vdCBiZQpzZXBhcmF0ZWQgYnkgc3BhY2VzLCB1bmxpa2UgbW9zdCB1bml4LWxpa2UgdG9vbHMuKToKCiogLWQgOiBwYXR0ZXJuIHVzZWQgZm9yIGRlY295IGhpdHMgREVDT1lfIGluIG15IGNhc2UuCiogLU9BUlBkIDogLU8gc2F5cyB0byB1c2Ugd2hhdGV2ZXIgZm9sbG93cyBmb3Igc2NvcmluZywgaW4gdGhpcyBjYXNlOiAnKkEqY2N1cmF0ZQogIG1hc3MgYmlubmluZycsICcqUipldGVudGlvbiB0aW1lIGluZm9ybWF0aW9uJywgJ25vbi0qUCphcmFtZXRyaWMgbW9kZWwnLCBhbmQKICAnKmQqZWNveSBoaXRzIGFyZSByZXBvcnRlZCcuCiogLU4gOiBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZS4KCkl0IHR1cm5zIG91dCB4aW50ZXJhY3QgY3JlYXRlcyBtdWx0aXBsZSBvdXRwdXQgZmlsZXMsIEkgc2hvdWxkIGZpZ3VyZSBvdXQgdGhlIG90aGVycy4KCiMjIyBCbG9jayAwNQoKYGBge2Jhc2ggeGludGVyYWN0LCBldmFsPUZBTFNFfQplY2hvICJJbnZva2luZyB4aW50ZXJhY3QgdG8gbWVyZ2Ugc2VhcmNoZXMsIHNldCBkZWNveXMsIGFuZCBzZXQgdXAgZmRyLiIKeGludGVyYWN0IFwKICAgIC1kJHtkZWNveV9zdHJpbmd9IFwKICAgIC1PQVJQcGQgXAogICAgLU4ke2Zkcl9yZXN1bHR9IFwKICAgICIkKC9iaW4vbHMgIm16WE1ML2RkYV8ke2RkYV9tZXRob2R9LyIqLnBlcC54bWwpIgoKZ3JlcCAiJHt0ZXN0fSIgIiR7ZmRyX3Jlc3VsdH0iIHwgaGVhZApgYGAKCmBgYHtyIGV4YW1pbmVfcHJvcGhldHMsIGNhY2hlPVRSVUV9CnByb3BoZXRfdGFibGUgPC0gZXh0cmFjdF9wZXByb3BoZXRfZGF0YSgiY29tZXQvcGVweG1sL2Zkcl9saWJyYXJ5X0hDRC54bWwiKQpzdW1tYXJ5KHByb3BoZXRfdGFibGUpCgphX3Bsb3QgPC0gcGxvdF9wcm9waGV0KHByb3BoZXRfdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgeGF4aXM9InByZWN1cnNvcl9uZXV0cmFsX21hc3MiLAogICAgICAgICAgICAgICAgICAgICAgIHlheGlzPSJtYXRjaGVkX2lvbl9yYXRpbyIsCiAgICAgICAgICAgICAgICAgICAgICAgeHNjYWxlPWV4cCgxKSkKYV9wbG90CiMjIE5vdyBtYWtlIHNvbWUgcGxvdHMgb2YgdGhlIHJlc3VsdHMgdG8gc2VlIGlmIG15IG1hdGNoZXMgYXJlIGdvb2QvYmFkL2luZGlmZmVyZW50LgpwbG90bHk6OmdncGxvdGx5KGFfcGxvdCkKYGBgCgojIFNvbWUgbWV0cmljcyBvZiB0aGUgcmF3IGRhdGEuCgpJIGFtIHNsb3dseSBzdGFydGluZyB0byB1bmRlcnN0YW5kIHRoZXNlIGRhdGEgc3RydWN0dXJlcy4KVGh1cyBJIGhhdmUgc29tZSBhdmFpbGFibGUgbWV0cmljcyBub3cgYW5kIHdvdWxkIGxpa2UgdG8gdXNlIHRoZW0gZm9yIFZvbGtlcidzIGRhdGEuCgpgYGB7ciBteV9tZXRyaWNzfQpzYW1wbGVfc2hlZXQgPC0gInNhbXBsZV9zaGVldHMvYWxsX2RpYV9zYW1wbGVzLnhsc3giCnNhdmVmaWxlIDwtICJtenhtbF9kYXRhLnJkYSIKCmlmIChmaWxlLmV4aXN0cyhzYXZlZmlsZSkpIHsKICBsb2FkKHNhdmVmaWxlKQp9IGVsc2UgewogIG16eG1sX2RhdGEgPC0gc20oZXh0cmFjdF9tenhtbF9kYXRhKHNhbXBsZV9zaGVldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX2NvbHVtbj0iZmlsZW5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVmaWxlPXNhdmVmaWxlKSl9CgoKaW50ZW5zaXR5X2JveHBsb3QgPC0gcGxvdF9tenhtbF9ib3hwbG90KG16eG1sX2RhdGEpCnBwKGZpbGU9ImltYWdlcy9tenhtbF9pbnRlbnNpdGllcy5wbmciLCBpbWFnZT1pbnRlbnNpdHlfYm94cGxvdCkKCnJldGVudGlvbl9ib3hwbG90IDwtIHBsb3RfbXp4bWxfYm94cGxvdChtenhtbF9kYXRhLCB0YWJsZT0ic2NhbnMiLCAicGVha3Njb3VudCIpCnBwKGZpbGU9ImltYWdlcy9tenhtbF9yZXRlbnRpb24ucG5nIiwgaW1hZ2U9cmV0ZW50aW9uX2JveHBsb3QpCgptel9ib3hwbG90IDwtIHBsb3RfbXp4bWxfYm94cGxvdChtenhtbF9kYXRhLCB0YWJsZT0ic2NhbnMiLCAiYmFzZXBlYWtteiIpCnBwKGZpbGU9ImltYWdlcy9tenhtbF9temJhc2UucG5nIiwgaW1hZ2U9bXpfYm94cGxvdCkKCnNjYW5pbnRlbnNpdHlfYm94cGxvdCA8LSBwbG90X216eG1sX2JveHBsb3QobXp4bWxfZGF0YSwgdGFibGU9InNjYW5zIiwgImJhc2VwZWFraW50ZW5zaXR5IikKcHAoZmlsZT0iaW1hZ2VzL216eG1sX3NjYW5pbnRlbnNpdHkucG5nIiwgaW1hZ2U9c2NhbmludGVuc2l0eV9ib3hwbG90KQoKaW50ZW5zaXR5X3dydF9teiA8LSBwbG90X2ludGVuc2l0eV9teihtenhtbF9kYXRhKQpwcChmaWxlPSJpbWFnZXMvaW50ZW5zaXR5X3dydF9tel9kaWEucG5nIiwgaW1hZ2U9aW50ZW5zaXR5X3dydF9teikKYGBgCgojIyAgQ29tYmluZSBzZWFyY2ggcmVzdWx0cwoKaVByb3BoZXQgaXMgdXNlZCB0byBjb21iaW5lIG11bHRpcGxlIGlkZW50aWZpY2F0aW9ucyBvZiB0aGUgc2FtZSBwZXB0aWRlCnNlcXVlbmNlIGFjcm9zcyBzcGVjdHJhLCBleHBlcmltZW50cywgcHJlY3Vyc29yIGNoYXJnZSBzdGF0ZXMsIGFuZAptb2RpZmljYXRpb25zLiAgIFRoaXMgaXMgaW1wb3J0YW50IGlmIG9uZSB3aXNoZXMgdG8gY29tYmluZSB0aGUgcmVzdWx0cyBmcm9tCm11bHRpcGxlIHNlYXJjaCB0b29scyAodGFuZGVtLCBtc2dmLCBjb21ldCwgZXRjKS4gIFVwb24gY29tcGxldGlvbiwgd2Ugc2hvdWxkCnJlY2VpdmUgcHJvcGVyIEZEUiBlc3RpbWF0ZXMgYXQgdGhlIHNlcXVlbmNlIGxldmVsLCB0aHVzIGhvcGVmdWxseSBpbXByb3ZpbmcKcHJvdGVpbiBpZGVudGlmaWNhdGlvbnMuCgpJdHMgb25seSBvcHRpb25zIGFwcGVhcnMgdG8gYmUgJ0RFQ09ZJyB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgLWQgb3B0aW9uIGFib3ZlLgoKSW4gdGhpcyBwYXJ0aWN1bGFyIGV4cGVyaW1lbnQsSSBoYXZlIG9ubHkgMSByZXN1bHQgZmlsZSwgYnV0IHNpbmNlIEkgZG8gbm90IHlldCB1bmRlcnN0YW5kCnRoZXNlIHZhcmlvdXMgdG9vbHMsIEkgd2lsbCBqdXN0IHJ1biB0aGlzIGFueWhvdy4KCiMjIyBCbG9jayAwNgoKYGBge2Jhc2ggaXByb3BoZXQsIGV2YWw9RkFMU0V9CmVjaG8gIkludm9raW5nIHRoZSBJbnRlclByb3BoZXRQYXJzZXIgdG8gY29tYmluZSBtdWx0aXBsZSBpZGVudGlmaWNhdGlvbnMgb2YgdGhlIHNhbWUgcGVwdGlkZS4iCkludGVyUHJvcGhldFBhcnNlciBcCiAgICBERUNPWT0ke2RlY295X3N0cmluZ30gXAogICAgIiR7ZmRyX3Jlc3VsdH0iIFwKICAgICIke2lwcF9yZXN1bHR9IgojIzI+cmVzdWx0cy9pbnRlcnByb3BoZXRwYXJzZXIub3V0IDE+JjIKCmdyZXAgIiR7dGVzdH0iICIke2lwcF9yZXN1bHR9IiB8IGhlYWQKYGBgCgojIyBGRFIgY29udHJvbGxpbmcKCk1heXUgcHJvdmlkZXMgYSBzZXQgb2YgRkRSIGVzdGltYXRlcyBhY3Jvc3MgbXVsdGlwbGUgRERBIHJ1bnMuICBUaGlzIHB1enpsZXMgbWUKYSBiaXQsIGFzIEkgdGhvdWdodCB0aGF0IHdhcyB3aGF0IHdlIHVzZWQgSW50ZXJQcm9waGV0UGFyc2VyIGZvci4gIEluIGFkZGl0aW9uLAp0aGUgbWF5dSBwZXJsIHNjcmlwdCBuZWVkcyBzb21lIGxvdmUgdG8gbWFrZSBpdCB3b3JrIG9uIGFueSBtb2Rlcm4gc3lzdGVtLgoKSXRzIG9wdGlvbnMgb2Ygbm90ZSBhcmU6CgotQSA6IHRoZSBvdXRwdXQgZnJvbSBpcHJvcGhldCBhYm92ZS4KLUMgOiB0aGUgc2VxdWVuY2UgZGF0YWJhc2UgdXNlZC4KLUUgOiBvdXIgcmVjb2duaXRpb24gc2VxdWVuY2UgZm9yIGRlY295cy4KLUcgOiBUaGUgdXBwZXIgbGltaXQgZm9yIHRoZSBtRkRSCi1IIDogSG93IG1hbnkgc3RlcHMgYXJlIHBlcmZvcm1lZCB0byBjYWxjdWxhdGUgdGhlIG1GRFIgcmF0ZXMuCi1JIDogSG93IG1hbnkgbWlzc2VkIGNsZWF2YWdlcyB3ZXJlIHVzZWQgaW4gdGhlIGRhdGFiYXNlIHNlYXJjaAoKIyMjIEJsb2NrIDA3CgpgYGB7YmFzaCBtYXl1LCBldmFsPUZBTFNFfQplY2hvICJJbnZva2luZyBtYXl1IHRvIHN0YW5kYXJkaXplIHRoZSBmZHIgZXN0aW1hdGVzLiIKTWF5dS5wbCBcCiAgICAtQSAiJHtpcHBfcmVzdWx0fSIgXAogICAgLUMgIiR7cmVmZGJ9IiBcCiAgICAtRSAiJHtkZWNveV9zdHJpbmd9IiBcCiAgICAtRyAiJHtjb25maWRlbmNlX2N1dG9mZn0iIFwKICAgIC1IIDEwMSBcCiAgICAtSSAiJHtjbGVhdmFnZXN9IiBcCiAgICAyPiIke21heXVfb3V0fSIgMT4mMgpoZWFkICIke21heXVfb3V0fSIKIyMgRGlkIGl0IHdvcms/CiMjIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byBpbmNsdWRlIG15IGdlbmVyYXRlZCBkZWNveXMuLi4KbWtkaXIgLXAgbWF5dQptYXl1X3ByZWZpeD0kKGRhdGUgKyVZLSVtLSVkKQptdiAiJHttYXl1X3ByZWZpeH0iKiByZXN1bHRzL21heXUvCmBgYApJdCBpcyB3b3J0aCBub3RpbmcgdGhhdCBtYXl1IGV4cGVjdHMgdGhlIHJldmVyc2VkIGRlY295IHNlcXVlbmNlcyB0byBiZSBpbiB0aGUKcGVwdGlkZSBsaWJyYXJ5IGZpbGUuICBUaGlzIGlzIGFubm95aW5nIGFuZCB3aWxsIG5lZWQgdG8gYmUgYWRkcmVzc2VkLgoKSW4gYWRkaXRpb24sIHRoZSB0dXRvcmlhbCBhdCB0aGlzIHBvaW50IHJlcXVlc3RzIHRoYXQgb25lIG9wZW5zIHRoZSBmaWxlIGVuZGluZwp3aXRoICdfbWFpbl8xLiouY3N2JyBpbiBleGNlbCBhbmQgZmluZGluZyB0aGUgZmlyc3QgaVByb3BoZXQgcHJvYmFiaWxpdHkKKHByb3RGRFIpIGZvciB3aGljaCB0aGUgRkRSIGlzIGxlc3MgdGhhbiAxJS4gIFRodXMsIG9uZSBpcyByZXF1ZXN0ZWQgdG8gb3Blbgp0aGlzLCBmaW5kIHRoZSBmaXJzdCBwcm90RkRSIHJvdyA8IDAuMDEgYW5kIGZpbmQgdGhlIElQL1BQIGVsZW1lbnQgYXQgdGhhdCByb3cuCldoYXRldmVyIHRoYXQgdmFsdWUgaXMgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIG5leHQgc3RlcC4KClNpbmNlIEkgYW0gc3RpbGwgZmlndXJpbmcgc3R1ZmYgb3V0LCBJIHNldCBpdCB0byAwLjk1IGFyYml0cmFyaWx5LCBidXQgYWxsb2NhdGVkCmEgdmFyaWFibGUgZm9yIGl0LgoKIyMgQ29tYmluZSBzZWFyY2ggcmVzdWx0cyBpbnRvIHNwZWN0cmFsIGxpYnJhcnkKClNwZWN0cmFTVCBjb21iaW5lcyBhbGwgc3BlY3RyYSBiZXR0ZXIgdGhhbiBhIGdpdmVuIHF1YWxpdHkgdGhyZXNob2xkIGludG8gYQpzcGVjdHJhbCBsaWJyYXJ5IGZvcm1hdCBvZiBvbmUncyBjaG9pY2UuCgpJbiB0aGUgZmlyc3QgcnVuLCBub3JtYWxpemUgdGhlIHJldGVudGlvbiB0aW1lcy4gIElkZWFsbHksIHdlIHNob3VsZCBzcGlrZSBpbgpzcGVjaWZpYyByZWZlcmVuY2UgcGVwdGlkZXMgYW5kIGhhdmUgYSBmaWxlIGNvbnRhaW5pbmcgdGhlaXIKc2VxdWVuY2VzLgoKcGVyaGFwcyB0aGlzIHNob3VsZCBiZSB0aGUgcmVmZXJlbmNlL2FicmYuZmFzdGE/ICBJIGFtIHRoaW5raW5nIHByb2JhYmx5IHllcy4KClRoZSByZWxldmFudCBvcHRpb25zIGFyZToKCiogLWNOIDogb3V0cHV0IGZpbGVuYW1lCiogLWNJIDogUHJlLXNldCBhY3F1aXNpdGlvbiBzZXR0aW5ncywgSSBhbSBhc3N1bWluZyB3ZSB1c2VkIElDSUQtUVRPRiwgYnV0IHRoaXMKICBuZWVkcyB0byBiZSBjaGVja2VkLgoqIC1jZiA6IEZpbHRlcmluZyBjcml0ZXJpYSwgaXQgdXNlcyBvdXIgZGVjb3kgc3RyaW5nLCBidXQgSSBoYXZlIG5vIGNsdWUgd2hhdAogIGlzIHVwIHdpdGggdGhlICdQcm90ZWluISB+JyBwb3J0aW9uIG9mIHRoZSBzdHJpbmcuCiogLWNQIDogdGhlIG1heXUgc2NvcmUgbWVudGlvbmVkIGFib3ZlLCBJIGFyYml0cmFyaWx5IHNldCBpdCB0byAwLjk1IGZvciB0aGUgbW9tZW50LgoqIC1jX0lSVCA6IFRoZSBmaWxlIHNwZWNpZnlpbmcgb3VyICdsYW5kbWFyayBwZXB0aWRlcycgLS0gSSBhbSBnb2luZyB0byBhZGQgdGhpcwogIGJhY2sgYXNzdW1pbmcgdGhpcyB3b3Jrcy4KKiAtY19JUlIgOiBVc2UgbGluZWFyIHJlZ3Jlc3Npb24gdG8gbm9ybWFsaXplIHRoZSByZXRlbnRpb24gdGltZXMuCgpBY2NvcmRpbmcgdG8gdGhlIHR1dG9yaWFsLCBvbmUgaXMgcmVxdWVzdGVkIHRvIGNoZWNrIHRoZSBjb3JyZWxhdGlvbgpjb2VmZmljaWVudCBvZiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gcGVyZm9ybWVkIGJ5IHRoaXMuICBQZXJoYXBzIGl0IGlzIGJlY2F1c2UgSQpkaWQgbm90IGhhdmUgdGhlIGNfSVJUIGZpbGUsIGJ1dCBJIGRpZCBub3QgZmluZCBhbnkgZXF1YXRpb25zIG5vciBSXjIgdmFsdWVzLgoKIyMjIEJsb2NrIDA4CgpgYGB7YmFzaCBzcGVjdHJhc3QxLCBldmFsPUZBTFNFfQplY2hvICJDcmVhdGluZyBpbml0aWFsIHNwZWN0cmFsIGxpYnJhcmllcyB3aXRoIHNwZWN0cmFzdC4iCmVjaG8gIklmIGEgc2luZ2xlIGlucHV0IHdhcyBnaXZlbiwgbWFrZSBzdXJlIHRvIGxpbmsgaXQgdG8gY29tZXQubXpYTUwuIgojI2NkIG16WE1ML2RkYV8ke2RkYV9tZXRob2R9LyAmJiBsbiAtc2YgIiQoYmFzZW5hbWUgIiR7ZGRhX2lucHV0fSIpIiBjb21ldC5telhNTCAmJiBjZCAke3N0YXJ0ZGlyfSB8fCBleGl0CnJtIC1mICR7c3BlY3RyYWxfYmFzZW5hbWV9KgpzcGVjdHJhc3QgXAogICAgLWNOJHtzcGVjdHJhbF9iYXNlbmFtZX0gXAogICAgLWNJJHtkZGFfbWV0aG9kfSBcCiAgICAtY2YgIlByb3RlaW4hIH4gJHtkZWNveV9zdHJpbmd9IiBcCiAgICAtY1AwLjk1IFwKICAgIC1jX0lSUiBcCiAgICAiJHtpcHBfcmVzdWx0fSIKCmdyZXAgIiR7dGVzdH0iICIke3NwZWN0cmFsX2Jhc2VuYW1lfS5zcHR4dCIgfCBoZWFkCmBgYAoKIyMgR2VuZXJhdGUgY29uc2Vuc3VzIGxpYnJhcnkKCkZpbmFsbHksIHNwZWN0cmFzdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgY29uc2Vuc3VzIHNwZWN0cnVtIGZvciBlYWNoIHBlcHRpZGUKd2hpY2hpcyBzaGFyZWQgYWNyb3NzIGFsbCBydW5zLgoKVGhlIHJlbGV2YW50IG9wdGlvbnMgYXJlOgoKKiAtY04gOiBvdXRwdXQgZmlsZQoqIC1jSSA6IFRoZSBpbnN0cnVtZW50IHNldHRpbmdzIGFzIGFib3ZlCiogLWNBQyA6IFRlbGwgc3BlY3RyYXN0IHRvIGdlbmVyYXRlIHRoZSBjb25zZW5zdXMgc3BlY3RydW0gb2YgYWxsIHJlcGxpY2F0ZQogIHNwZWN0cmFmb3IgZWFjaCBwZXB0aWRlIGlvbi4KCiMjIyBCbG9jayAwOQoKYGBge2Jhc2ggc3BlY3RyYXN0MiwgZXZhbD1GQUxTRX0KZWNobyAiTWFraW5nIGNvbnNlbnN1cyBsaWJyYXJpZXMgd2l0aCBzcGVjdHJhc3QuIgpzcGVjdHJhc3QgXAogICAgLWNOJHtjb25zZW5zdXN9IFwKICAgIC1jSSR7ZGRhX21ldGhvZH0gXAogICAgLWNBQyBcCiAgICAke3NwZWN0cmFsX2xpYnJhcnl9CgojIyBOZXcgZmlsZTogU3BlY0xpYl9jb25zZW5zdXMuc3BsaWIvc3B0eHQKZ3JlcCAiJHt0ZXN0fSIgJHtjb25zZW5zdXN9LnNwdHh0IHwgaGVhZAplY2hvICR7Y29uc2Vuc3VzfQpgYGAKCiMjIENyZWF0ZSB0aGUgZmluYWwgcGVwdGlkZSBxdWVyeSBwYXJhbWV0ZXJzCgpUaGlzIGZpbHRlcnMgdGhlIGNvbnNlbnN1cyBsaWJyYXJ5IHRvIHNlbGVjdCB0aGUgbW9zdCByZXByZXNlbnRhdGl2ZSBzcGVjdHJhCmZvciBlYWNoIGlvbi4gIEluIGFkZGl0aW9uIGl0IHRyaWVzIHRvIGVuc3VyZSB0aGF0IHRoZSBudW1iZXIgb2Ygc3BlY3RyYSBwZXIKcGVwdGlkZSBpb24gaXMgbmVpdGhlciB0b28gaGlnaCAoaWYgdG9vIGhpZ2ggdGhlbiBsZXNzLWludGVuc2UgdHJhbnNpdGlvbnMKcHJvZHVjZSBub2lzZSB3aGljaCBsb3dlcnMgY29uZmlkZW5jZSkgbm9yIHRvbyBsb3cuICBUaGVyZWZvcmUsIG9uZSBhbHNvIHVzZXMKb25seSB0aGUgYiBhbmQgeSBpb25zIGFuZCBtb3N0IGNvbW1vbiBjaGFyZ2Ugc3RhdGVzOiAxLDIuCgpUaGlzIHVzZXMgbXNwcm90ZW9taWNzdG9vbHMsIHRodXMgaXQgaXMgaW4gbXkgcGF0aC4gIElmIG9uZSBpcyB1c2luZyB0aGUgY2x1c3RlcgppdCBpcyBpbiBvbmUgb2YgdGhlIHB5dGhvbiBtb2R1bGVzLCBJIGZvcmdldCB3aGljaCBvbmUgSSBwdXQgaXQgaW4uLi4KClRoZSByZWxldmFudCBvcHRpb25zIGFyZToKCiogLWwgOiBsb3dlciBhbmQgdXBwZXIgbWFzcyBsaW1pdHMgb2YgdGhlIGZyYWdtZW50IGlvbnMKKiAtcyA6IGxpc3Qgb2YgaW9uIHR5cGVzIHRvIHVzZQoqIC14IDogaW9uIGNoYXJnZSBzdGF0ZXMgdG8gdXNlCiogLW8gOiBtaW5pbXVtIG51bWJlciBvZiBpb25zIHBlciBwZXB0aWRlL3oKKiAtbiA6IG1heGltdW0gbnVtYmVyIG9mIGlvbnMgcGVyIHBlcHRpZGUvegoqIC1wIDogbWF4aW11bSBlcnJvciBhbGxvd2VkIGF0IHRoZSBhbm5vdGF0aW9uIG9mIGEgZnJhZ21lbnQgaW9uCiogLWUgOiB1c2UgdGhlb3JldGljYWwgbWFzcwoqIC1kIDogcmVtb3ZlIGR1cGxpY2F0ZSBtYXNzZXMKKiAtdyA6IEZpbGUgY29udGFpbmluZyBzd2F0aCB3aW5kb3cgcmFuZ2VzLgoqIC1rIDogb3V0cHV0IGZpbGUgZm9ybWF0LgoqIC1hIDogb3V0cHV0IGZpbGUgbmFtZS4KCiMjIyBCbG9jayAxMAoKYGBge2Jhc2ggc3RyZWN0cmFzdDJ0c3YsIGV2YWw9RkFMU0V9CmVjaG8gIk1ha2Ugc3VyZSB5b3UgaGF2ZSBjcmVhdGVkIGFuIGFjcXVpc2l0aW9uIHdpbmRvdyBmaWxlIF93aXRob3V0XyBhIGhlYWRlci4iCmVjaG8gIlRoZXJlIHNob3VsZCBiZSBzb21lIHdoaWNoIGFyZSBqdXN0IGJvYi50eHQgaW4gdGhlIHdpbmRvd3MvIGRpcmVjdG9yeS4iCmVjaG8gIldyaXRpbmcgc3BlY3RyYXN0IHRzdiBmaWxlcyB3aXRoIHNwZWN0cmFzdDJ0c3YuIgpmb3IgbXogaW4gIiR7bXpfd2luZG93c1tAXX0iCmRvCiAgICBlY2hvICJNYWtpbmcgYSBjb25zZW5zdXMgbGlicmFyeSBzcGVjaWZpYyBmb3IgJHtten0gd2luZG93cy4iCiAgICBzcGVjdHJhc3QydHN2LnB5IFwKICAgICAgICAtbCAzNTAsMjAwMCBcCiAgICAgICAgLXMgYix5IFwKICAgICAgICAteCAxLDIgXAogICAgICAgIC1vIDQgXAogICAgICAgIC1uIDYgXAogICAgICAgIC1wICIke2NvbmZpZGVuY2VfY3V0b2ZmfSIgXAogICAgICAgIC1kIFwKICAgICAgICAtZSBcCiAgICAgICAgLXcgIndpbmRvd3MvYWNxdWlzaXRpb25fJHtten0udHh0IiBcCiAgICAgICAgLWsgb3BlbnN3YXRoIFwKICAgICAgICAtYSAiJHtjb25zZW5zdXN9XyR7bXp9LnRzdiIgXAogICAgICAgICIke2NvbnNlbnN1c30uc3B0eHQiCmRvbmUKCmdyZXAgIiR7dGVzdH0iICIke2NvbnNlbnN1c31fJHtten0udHN2IiB8IGhlYWQKYGBgCgojIyBDb252ZXJ0IHRvIFRyYU1MCgpPcGVuU1dBVEggdXNlcyBUcmFNTC4gIEl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IEkgaGF2ZSBhIG5ld2VyIHZlcnNpb24gb2Ygb3Blbm1zLAphbmQgdGhlIGNvbnZlcnRlciBwcm9ncmFtIGhhcyBjaGFuZ2VkIG5hbWVzLiAgSXQgaXMgYWxzbyBzdHJpY3RlciBhbmQgd2lsbCB0aHJvdwphbiBlcnJvciBpZiB5b3UgZ2l2ZSBhIGZpbGUgbmFtZSBlbmRpbmcgaW4gLmNzdiBidXQgdGVsbCBpdCB0c3YgZm9ybWF0Li4uCgojIyBCbG9jayAxMQoKYGBge2Jhc2ggdHJhbWxfY29udmVyc2lvbiwgZXZhbD1GQUxTRX0KZWNobyAiQ29udmVydGluZyBzcGVjdHJhbCBsaWJyYXJpZXMgdG8gVHJhTUwuIgpmb3IgbXogaW4gIiR7bXpfd2luZG93c1tAXX0iCmRvCiAgICBybSAtZiAiJHtjb25zZW5zdXN9XyR7bXp9LlRyYU1MIgogICAgZWNobyAiQ29udmVydGluZyAke2NvbnNlbnN1c31fJHtten0iCiAgICBUYXJnZXRlZEZpbGVDb252ZXJ0ZXIgXAogICAgICAgIC1pbiAiJHtjb25zZW5zdXN9XyR7bXp9LnRzdiIgXAogICAgICAgIC1pbl90eXBlIHRzdiBcCiAgICAgICAgLW91dCAiJHtjb25zZW5zdXN9XyR7bXp9LlRyYU1MIiBcCiAgICAgICAgLW91dF90eXBlIFRyYU1MCmRvbmUKYGBgCgojIyBBZGQgZGVjb3lzCgpweVByb3BoZXQgbGF0ZXIgd2lsbCB3YW50IHRoZSBkZWNveS1iYXNlZCBlcnJvciByYXRlcywgYnV0IHRoZXkgYXJlIG5vdAppbmNsdWRlZCBieSBkZWZhdWx0LiAgVXNlIE9wZW5Td2F0aERlY295R2VuZXJhdGUgdG8gbWFrZSB0aGVtLgoKVGhlIHJlbGV2YW50IG9wdGlvbnMgYXJlOgoKKiAtaW4gOiB0aGUgaW5wdXQgdHJhbWwgbGlicmFyeQoqIC1vdXQgOiB0aGUgb3V0cHV0IGxpYnJhcnkgaW5jbHVkaW5nIGRlY295cwoqIC1tZXRob2QgOiBNZXRob2QgZm9yIGNyZWF0aW5nIHRoZSBkZWNveXMKKiAtYXBwZW5kIDogQXBwZW5kIHRoZSBkZWNveXMhCiogLWV4Y2x1ZGVfc2ltaWxhciA6IGRyb3AgZGVjb3lzIHdoaWNoIGFyZSBtb3JlIHNpbWlsYXIgdGhhbiB0aGUgZ2l2ZW4gdGhyZXNob2xkCiogLXNpbWlsYXJpdHlfdGhyZXNob2xkIDogd2hpY2ggaXMgc3BlY2lmaWVkIGhlcmUuCiogLWlkZW50aXR5X3RocmVzaG9sZCA6IElkZW50aXR5IHRocmVzaG9sZCBmb3IgdGhlIHNodWZmbGVyLgoKIyMjIEJsb2NrIDEyCgpgYGB7YmFzaCBhZGRfZGVjb3lzLCBldmFsPUZBTFNFfQplY2hvICJBZGRpbmcgZGVjb3lzIHRvIHRoZSBzcGVjdHJhbCBsaWJyYXJpZXMuIgpmb3IgbXogaW4gIiR7bXpfd2luZG93c1tAXX0iCmRvCiAgICBybSAtZiAiJHtjb25zZW5zdXN9XyR7bXp9X2RlY295LlRyYU1MIgogICAgZWNobyAiR2VuZXJhdGluZyBkZWNveXMgZm9yICR7Y29uc2Vuc3VzfV8ke216fSIKICAgIE9wZW5Td2F0aERlY295R2VuZXJhdG9yIFwKICAgICAgICAtaW4gIiR7Y29uc2Vuc3VzfV8ke216fS5UcmFNTCIgXAogICAgICAgIC1vdXQgIiR7Y29uc2Vuc3VzfV8ke216fV9kZWNveS5UcmFNTCIgXAogICAgICAgIC1tZXRob2Qgc2h1ZmZsZSBcCiAgICAgICAgLWFwcGVuZCBcCiAgICAgICAgLWV4Y2x1ZGVfc2ltaWxhciBcCiAgICAgICAgLXNpbWlsYXJpdHlfdGhyZXNob2xkICIke2NvbmZpZGVuY2VfY3V0b2ZmfSIgXAogICAgICAgIC1pZGVudGl0eV90aHJlc2hvbGQgMC43CiAgICBncmVwICIke3Rlc3R9IiAiJHtjb25zZW5zdXN9XyR7bXp9X2RlY295LlRyYU1MIiB8IGhlYWQKZG9uZQpgYGAKCiMjIENvbnZlcnQgYmFjayB0byB0c3YgdG8gbG9vayBhdCB0aGUgcmVzdWx0CgpPbmNlIGl0IGlzIGNvbnZlcnRlZCBiYWNrIHRvIHRzdiwgd2UgY2FuIHBva2UgYXQgaXQgYW5kIHNlZSBob3cgaXQgbG9va3MuCgojIyMgQmxvY2sgMTMKCmBgYHtiYXNoIGRlY295c19hZGRlZF90c3YsIGV2YWw9RkFMU0V9CmVjaG8gIkNvbnZlcnRpbmcgZGVjb3ktYWRkZWQgbGlicmFyaWVzIGJhY2sgdG8gdHN2IGZvciBleGFtaW5hdGlvbiBsYXRlci4iCmZvciBteiBpbiAiJHttel93aW5kb3dzW0BdfSIKZG8KICAgIHJtIC1mICIke2NvbnNlbnN1c31fJHtten1fZGVjb3kudHN2IgogICAgZWNobyAiQ29udmVydGluZyBkZWNveXMgZm9yICR7Y29uc2Vuc3VzfV8ke216fSB0byB0c3YuIgogICAgVGFyZ2V0ZWRGaWxlQ29udmVydGVyIFwKICAgICAgICAtaW4gIiR7Y29uc2Vuc3VzfV8ke216fV9kZWNveS5UcmFNTCIgXAogICAgICAgIC1pbl90eXBlIFRyYU1MIFwKICAgICAgICAtb3V0ICIke2NvbnNlbnN1c31fJHtten1fZGVjb3kudHN2IiBcCiAgICAgICAgLW91dF90eXBlIHRzdgogICAgZWNobyAiQ29udmVydGluZyBkZWNveXMgZm9yICR7Y29uc2Vuc3VzfV8ke216fSB0byBwcXAuIgogICAgVGFyZ2V0ZWRGaWxlQ29udmVydGVyIFwKICAgICAgICAtaW4gIiR7Y29uc2Vuc3VzfV8ke216fV9kZWNveS5UcmFNTCIgXAogICAgICAgIC1pbl90eXBlIFRyYU1MIFwKICAgICAgICAtb3V0X3R5cGUgcHFwIFwKICAgICAgICAtb3V0ICIke2NvbnNlbnN1c31fJHtten1fZGVjb3kucHFwIgogICAgZ3JlcCAiJHt0ZXN0fSIgIiR7Y29uc2Vuc3VzfV8ke216fV9kZWNveS50c3YiIHwgaGVhZApkb25lCmBgYAoKIyMgSW52b2tlIE9wZW5Td2F0aAoKV2Ugc2hvdWxkIGhhdmUgaGF2ZSBhIHNldCBvZiByZXRlbnRpb24gdGltZSBjYWxpYnJhdGlvbiB0cmFuc2l0aW9ucy4gIEkgZG9uJ3QgY3VycmVudGx5LgpUaGV5IGFyZSBzcGVjaWZpZWQgdmlhIC10cl9pcnQgZmlsZW5hbWUuVHJhTUwKCk9wZW5Td2F0aFdvcmtmbG93IGhhcyBhIGJ1bmNoIG9mIG9wdGlvbnMgYW5kIGlzIG5vdCBmYXN0LgoKKiAtaW4gOiBJbnB1dCwgZWl0aGVyIG16TUwgb3IgbXpYTUwKKiAtb3V0X3RzdiA6IG91dHB1dCBmaWxlbmFtZQoqIC10ciA6IFRoZSBkZGEtYmFzZWQgdHJhbnNpdGlvbiBsaWJyYXJ5CiogLXJlYWRPcHRpb24gOiBlaXRoZXIgcnVuIGRpcmVjdGx5IG9uIHRoZSBpbnB1dCBkYXRhIG9yIGNhY2hlIGl0IHRvIGRpc2sgdG8gZG8KICBkYXRhLXJlZHVjdGlvbjsgYWxsb3dlZCBhcmUgJ25vcm1hbCcsICdjYWNoZScsICdjYWNoV29ya2luZ0luTWVtb3J5JwoqIC1iYXRjaFNpemUgOiBob3cgbWFueSBjaHJvbWF0b2dyYW1zIHRvIHByb2Nlc3MgYXQgYSB0aW1lCiogLW1pbl9yc3EgOiBNaW5pbXVtIGFsbG93ZWQgUl4yIG9mIFJUIHBlcHRpZGUgcmVncmVzc2lvbnMuCiogLW1pbl9jb3ZlcmFnZSA6IE1pbmltdW0gcmVsYXRpdmUgYW1vdW50IG9mIFJUIHBlcHRpZGVzIHRvIGtlZXAKKiAtU2NvcmluZzpTY29yZXM6dXNlX2RpYV9zY29yZXMgOiBlaXRoZXIgdHJ1ZSBvciBmYWxzZQoqIC1tel9leHRyYWN0aW9uX3dpbmRvdyA6IEV4dHJhY3Rpb24gd2luZG93IHVzZWQgaW4gdGhvbXNvbiB1bml0cywgaWYgb25lIHdpc2hlcwogIHRvIHVzZSBwcG1zIGluc3RlYWQsIHVzZSB0aGUgLXBwbSBvcHRpb24uCiogLXBwbSA6IFRlbGwgaXQgdG8gdXNlIHBwbXMgZm9yIHRoZSB3aW5kb3cKKiAtdGhyZWFkcyA6IEhvdyBtYW55IGNvcmVzIHRvIHVzZT8KKiAtbWluX3VwcGVyX2VkZ2VfZGlzdCA6IE1pbmltYWwgZGlzdGFuY2UgdG8gdGhlIGVkZ2UgdG8gc3RpbGwgY29uc2lkZXIgYSBnaXZlbgogIHRyYW5zaXRpb24gYSBwcmVjdXJzb3IgaW9uCiogLWV4dHJhX3J0X2V4dHJhY3Rpb25fd2luZG93IDogV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGFuIFhJQyB3aXRoIGEgbGFyZ2UKICB3aW5kb3cgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byB2aXN1YWxseSBpbnNwZWN0IG1vcmUgb2YgdGhlIGNocm9tYXRvZ3JhbS4KKiAtcnRfZXh0cmFjdGlvbl93aW5kb3cgOiBVc2UgLTEgdG8gbG9vayBvdmVyIHRoZSB3aG9sZSByYW5nZSwgNjAwIG1lYW5zICsvLSAzMDAKICBzZWNvbmRzIG9mIHRoZSBleHBlY3RlZCBlbHV0aW9uLgoqIC1zd2F0aF93aW5kb3dzX2ZpbGUgbm9uLW92ZXJsYXBwaW5nIG9ic2VydmF0aW9uYWwgd2luZG93cy4KCkhlcmUgaXMgYSB1bm55IGxpdHRsZSBwZWN1bGlhcml0eToKClRoZSB3aW5kb3cgaWxlcyBvciB0aGlzIHByb2Nlc3MgbXVzdCBiZWdpbiB3aXRoICdzdGFydFx0ZW5kXAp0aGUgb25lcyB1c2VkIGluIHRoZSBwcmV2aW91cyBzdGVwIG11c3Qgbm90LgpUaGF0IGlzIHZlcnkgc3RyYW5nZSBhbmQgYW5ub3lpbmcuCgojIyMgQmxvY2sgMTQKCmBgYHtiYXNoIG9wZW5zd2F0aHdvcmtmbG93LCBldmFsPUZBTFNFfQojIyBJIHdhbnQgdG8gZmlndXJlIG91dCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBmb3IgdGhpcywKIyMgSSBiZXQgd2UgY2FuIG1ha2UgdGhpcyBwcm9jZXNzIGNsZWFyZXIKbWtkaXIgLXAgZGlhX3Jlc3VsdApta2RpciAtcCB0bXAKdHJhbnNpdGlvbl9saWJyYXJ5PSIke2NvbnNlbnN1c31fJHtten1fZGVjb3kucHFwIgplY2hvICIke3RyYW5zaXRpb25fbGlicmFyeX0iCmxzIC1sZCAiJHt0cmFuc2l0aW9uX2xpYnJhcnl9Igpmb3IgbXogaW4gIiR7bXpfd2luZG93c1tAXX0iCmRvCiAgICBta2RpciAtcCAicmVzdWx0cy9vcGVuc3dhdGgvJHtten0iCiAgICBmb3IgaW5wdXQgaW4gJCgvYmluL2xzICJtelhNTC9kaWFfJHtten0vIioubXpYTUwpCiAgICBkbwogICAgICAgIG5hbWU9JChiYXNlbmFtZSAiJHtpbnB1dH0iIC5telhNTCkKICAgICAgICBlY2hvICJTdGFydGluZyBvcGVuc3dhdGggcnVuIG9mICR7bmFtZX0gdXNpbmcgJHtten0gd2luZG93cy4iCiAgICAgICAgT3BlblN3YXRoV29ya2Zsb3cgXAogICAgICAgICAgICAtZm9yY2UgXAogICAgICAgICAgICAtaW4gIiR7aW5wdXR9IiBcCiAgICAgICAgICAgICMjIC1vdXRfdHN2ICJyZXN1bHRzL29wZW5zd2F0aC8ke216fS8ke25hbWV9X3ZzXyR7ZGRhX21ldGhvZH1fZGlhLnRzdiIgXAogICAgICAgICAgICAtb3V0X29zdyAicmVzdWx0cy9vcGVuc3dhdGgvJHtten0vJHtuYW1lfV92c18ke2RkYV9tZXRob2R9Lm9zdyIgXAogICAgICAgICAgICAtc3dhdGhfd2luZG93c19maWxlICJ3aW5kb3dzL29wZW5zd2F0aF8ke25hbWV9LnR4dCIgXAogICAgICAgICAgICAjIy1zb3J0LXN3YXRoLW1hcHMgXAogICAgICAgICAgICAtdHIgJHt0cmFuc2l0aW9uX2xpYnJhcnl9IFwKICAgICAgICAgICAgIyMgLXRyX2lydCBpUlRfYXNzYXlzLlRyYU1MIFwKICAgICAgICAgICAgLXRocmVhZHMgOCBcCiAgICAgICAgICAgIC1yZWFkT3B0aW9ucyB3b3JraW5nSW5NZW1vcnkgXAogICAgICAgICAgICAtdXNlX21zMV90cmFjZXMgXAogICAgICAgICAgICAtYmF0Y2hTaXplIDEwMDAgXAogICAgICAgICAgICAtdGVtcERpcmVjdG9yeSAiJHt0ZW1wZGlyfSIgXAogICAgICAgICAgICAtcHBtIFwKICAgICAgICAgICAgLW16X2V4dHJhY3Rpb25fd2luZG93IDUwIFwKICAgICAgICAgICAgLW1pbl91cHBlcl9lZGdlX2Rpc3QgMSBcCiAgICAgICAgICAgIC1leHRyYV9ydF9leHRyYWN0aW9uX3dpbmRvdyAxIFwKICAgICAgICAgICAgLVJUTm9ybWFsaXphdGlvbjphbGlnbm1lbnRNZXRob2QgbGluZWFyIFwKICAgICAgICAgICAgIyMgLVRyYW5zaXRpb25Hcm91cFBpY2tlcjpiYWNrZ3JvdW5kX3N1YnRyYWN0aW9uIG9yaWdpbmFsIFwKICAgICAgICAgICAgLXJ0X2V4dHJhY3Rpb25fd2luZG93IC0xIFwKICAgICAgICAgICAgLW91dF9jaHJvbSAicmVzdWx0cy9vcGVuc3dhdGgvbXptbC8ke25hbWV9X2Nocm9tYXRvZ3JhcGhzLm16TUwiIFwKICAgICAgICAgICAgLW16X2NvcnJlY3Rpb25fZnVuY3Rpb24gcXVhZHJhdGljX3JlZ3Jlc3Npb25fZGVsdGFfcHBtIFwKICAgICAgICAgICAgIyMgLVNjb3Jpbmc6VHJhbnNpdGlvbkdyb3VwUGlja2VyOmNvbXB1dGVfcGVha19xdWFsaXR5IGZhbHNlIFwKICAgICAgICAgICAgIyMgLVNjb3Jpbmc6VHJhbnNpdGlvbkdyb3VwUGlja2VyOm1pbl9wZWFrX3dpZHRoIDggXAogICAgICAgICAgICAtbWluX3JzcSAwLjkgXAogICAgICAgICAgICAtbWluX2NvdmVyYWdlIDAuNAogICAgICAgICAgICAjIyAyPj5yZXN1bHRzL29wZW5zd2F0aC8ke25hbWV9LmxvZyAxPiYyCiAgICAgICAgcm0gLWYgdG1wb3BlbioKICAgIGRvbmUKZG9uZQojIyBOb3cgbGV0cyBleGFtaW5lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRzIQpgYGAKCiMjIEFuYWx5emUgdGhlIHBlYWtzIHZpYSBweVByb3BoZXQKCkFwcGFyZW50bHkgdGhlcmUgaXMgYW5vdGhlciBtZXRob2Qgb2YgZG9pbmcgdGhpcy4KCkkgYW0gZ2V0dGluZyB0aXJlZCwgc28gSSB3aWxsIGxlYXZlIHRoaXMgYXMgaXMgZm9yIHRoZSBtb21lbnQuCgoqIC0tZF9zY29yZS5jdXRvZmY9IDogVXNlIGQtc2NvcmUgdG8gZmlsdGVyIHRoZSBkYXRhLCB3aGljaCBpcyBmYXN0ZXIuCiogLS1pZ25vcmUuaW52YWxpZF9zY29yZV9jb2x1bW5zIDogRHJvcCBOYU4gYW5kIGluZmluaXR5IGNvbHVtbnMuCgpUaGlzIGNvbW1hbmQgcHJvZHVjZXMgc29tZSBuZWF0IHBkZiByZXBvcnRzIHRvIGxvb2sgYXQuCgojIyMgQmxvY2sgMTUKCmBgYHtiYXNoIHB5cHJvcGhldCwgZXZhbD1GQUxTRX0KZWNobyAiSW52b2tpbmcgcHlwcm9waGV0IG9uIHRoZSBzd2F0aCBkYXRhIHRvIGdldCBmaW5hbCBpbnRlbnNpdGllcyBieSBwcm90ZWluLiIKbWtkaXIgLXAgcmVzdWx0cy9weXByb3BoZXQKZm9yIGlucHV0IGluICQoZmluZCByZXN1bHRzL29wZW5zd2F0aCAtbmFtZSAiKl92c18ke2RkYV9tZXRob2R9X2RpYS50c3YiKQpkbwogICAgbmFtZT0kKGJhc2VuYW1lICIke2lucHV0fSIgLnRzdikKICAgIGVjaG8gIlN0YXJ0aW5nIHB5cHJvcGhldCBydW4gb2YgJHtuYW1lfS4gIEhvcGVmdWxseSBpdCB3aWxsIHdyaXRlIHRvIHJlc3VsdHMvcHlwcm9waGV0LCBidXQgaXQgbWlnaHQganVzdCBmYWlsLiIKICAgICIke0hPTUV9Ii8ubG9jYWwvYmluL3B5cHJvcGhldCBcCiAgICAgICAgICAgICAtLXRhcmdldC5vdmVyd3JpdGUgXAogICAgICAgICAgICAgLS1kX3Njb3JlLmN1dG9mZj0wLjUgXAogICAgICAgICAgICAgLS1pZ25vcmUuaW52YWxpZF9zY29yZV9jb2x1bW5zIFwKICAgICAgICAgICAgICIke2lucHV0fSIKICAgIGdyZXAgIiR7dGVzdH0iIHJlc3VsdHMvb3BlbnN3YXRoLyovKiR7ZGRhX21ldGhvZH0qX3dpdGhfZHNjb3JlLmNzdiB8IGhlYWQKZG9uZQpgYGAKCiMjIFB5cHJvcGhldCBjaGFuZ2VzIChmb3Igb3BlbnN3YXRoIHdvcmtmbG93cyA+IDIwMTcpCgpodHRwOi8vb3BlbnN3YXRoLm9yZy9lbi9sYXRlc3QvZG9jcy9weXByb3BoZXQuaHRtbAoKQ2F2ZWF0OiAgVGhpcyBvbmx5IHdvcmtzIHdpdGggdGhlIHB5dGhvbjMgZ2l0aHViIHJlcG9zaXRvcnkgPiAyMDE4MDQuCgpgYGB7YmFzaCBweXByb3BoZXRfbWVyZ2UsIGV2YWw9RkFMU0V9CmlucHV0cz0kKGZpbmQgcmVzdWx0cy9vcGVuc3dhdGggLW5hbWUgJyoub3N3JykKZWNobyAkaW5wdXRzCiR7SE9NRX0vLmxvY2FsL2Jpbi9weXByb3BoZXQgXAogICAgICAgbWVyZ2UgXAogICAgICAgLS1vdXQ9cmVzdWx0cy9weXByb3BoZXQvbWVyZ2VkLm9zdyBcCiAgICAgICAtLXN1YnNhbXBsZV9yYXRpbz0xIFwKICAgICAgICR7aW5wdXRzfQoke0hPTUV9Ly5sb2NhbC9iaW4vcHlwcm9waGV0IFwKICAgICAgIHNjb3JlIFwKICAgICAgIC0taW49cmVzdWx0cy9weXByb3BoZXQvbWVyZ2VkLm9zdyBcCiAgICAgICAtLWxldmVsPW1zMiBcCiAgICAgICAyPnJlc3VsdHMvcHlwcm9waGV0L3Njb3JpbmcuZXJyIFwKICAgICAgIDE+cmVzdWx0cy9weXByb3BoZXQvc2NvcmluZy5vdXQKJHtIT01FfS8ubG9jYWwvYmluL3B5cHJvcGhldCBcCiAgICAgICBzY29yZSBcCiAgICAgICAtLWluPXJlc3VsdHMvcHlwcm9waGV0L21lcmdlZC5vc3cgXAogICAgICAgLS1sZXZlbD1tczEgXAogICAgICAgc2NvcmUgXAogICAgICAgLS1pbj1yZXN1bHRzL3B5cHJvcGhldC9tZXJnZWQub3N3IFwKICAgICAgIC0tbGV2ZWw9bXMyIFwKICAgICAgIHNjb3JlIFwKICAgICAgIC0taW49cmVzdWx0cy9weXByb3BoZXQvbWVyZ2VkLm9zdyBcCiAgICAgICAtLWxldmVsPXRyYW5zaXRpb24KJHtIT01FfS8ubG9jYWwvYmluL3B5cHJvcGhldCBcCiAgICAgICBwcm90ZWluIFwKICAgICAgIC0taW49cmVzdWx0cy9weXByb3BoZXQvbWVyZ2VkLm9zdyBcCiAgICAgICAtLWNvbnRleHQ9Z2xvYmFsIFwKICAgICAgIHByb3RlaW4gXAogICAgICAgLS1pbj1yZXN1bHRzL3B5cHJvcGhldC9tZXJnZWQub3N3IFwKICAgICAgIC0tY29udGV4dD1ydW4tc3BlY2lmaWMgXAogICAgICAgcHJvdGVpbiBcCiAgICAgICAtLWluPXJlc3VsdHMvcHlwcm9waGV0L21lcmdlZC5vc3cgXAogICAgICAgLS1jb250ZXh0PWV4cGVyaW1lbnQtd2lkZQoke0hPTUV9Ly5sb2NhbC9iaW4vcHlwcm9waGV0IFwKICAgICAgIGV4cG9ydCBcCiAgICAgICAtLWluPXJlc3VsdHMvcHlwcm9waGV0L21lcmdlZC5vc3cgXAogICAgICAgLS1vdXQ9cmVzdWx0cy9weXByb3BoZXQvbGVnYWN5LnRzdgpgYGAKCiMjIFRSSUMgaW50ZWdyYXRpb24KClRSSUMgbWF5IGJlIHVzZWQgdG8gY29tYmluZSB0aGUgZHNjb3JlIGZpbGVzIGludG8gKEkgdGhpbmspIGEgc2luZ2xlIG1hdHJpeC4KCiogLS1pbiA6IGlucHV0IGZpbGVzIGFzIHRzdgoqIC0tb3V0IDogb3V0cHV0IGZpbGUhCiogLS1maWxlX2Zvcm1hdCA6IG9wZW5zd2F0aCEKKiAtLW1ldGhvZCA6IGNsdXN0ZXJpbmcgbWV0aG9kOyBiZXN0X292ZXJhbGwsIGJlc3RfY2x1c3Rlcl9zY29yZSwKKiAtLWdsb2JhbF9iZXN0X2NsdXN0ZXJfc2NvcmUsIGdsb2JhbF9iZXN0X292ZXJhbGwsIExvY2FsTVNULCBsb2NhbE1TVEFMTENsdXN0ZXIKKiAtLW1heF9ydF9kaWZmIDogTWF4aW11bSBkaWZmZXJlbmNlIGZvciBhbGlnbmVkIGZlYXR1cmVzCiogLS10YXJnZXRfZmRyIDogV2hhdCBGRFIgdG8gb3B0aW1pemUgdG8sIGlmIC0xIHRoaXMgaXMgdHVybmVkIG9mZi4KKiAtLW1heF9mZHJfcXVhbGl0eSA6IGFuIGV4dGVuc2lvbiBtLXNjb3JlIGN1dG9mZi4KKiAtLW1zdDp1c2VSVENvcnJlY3Rpb24gOiBVc2UgYW4gYWxpZ25lZCBwZWFrIGdyb3VwIFJUIHRvIGNvbnRpbnVlIHRocmVhZGluZz8KKiAtLW1zdDpTdGRldl9tdWx0aXBsaWVyIDogSG93IG1hbnkgU1REZXZzIGlzIGEgcGVhayBncm91cCBhbGxvd2VkIHRvIGRldmlhdGU/CiogLS1hbGlnbm1lbnRfc2NvcmUgOiBXaGF0IGlzIHRoZSBtaW5pbXVtIHNjb3JlIG5lZWRlZCBmb3IgYSBmZWF0dXJlIHRvIGJlCiAgY29uc2lkZXJlZCBhY3Jvc3MgcnVucz8KKiAtLXJlYWxpZ25fbWV0aG9kIDogV2hhdCBSVCBhbGlnbm1lbnQgbWV0aG9kIHNob3VsZCBiZSB1c2VkPyAoZGlSVCwgbGluZWFyLAogIHNwbGluZVIsIHNwbGluZVJfZXh0ZXJuYWwsIHNwbGluZVB5LCBsb3dlc3MsIG5vbkNWU3BsaW5lLCBDVlNwbGluZSwgRWFydGgpCiogLS1tYXRyaXhfb3V0cHV0X21ldGhvZCA6IFdoYXQgY29sdW1ucyB0byB3cml0ZSBiZXlvbmQgaW50ZW5zaXR5PwoqIC0tZHNjb3JlX2N1dG9mZiA6IERpc2NhcmQgc3R1ZmYgYmVsb3cgdGhlIGdpdmVuIHNjb3JlCiogLS1mcmFjX3NlbGVjdGVkIDogRG8gbm90IHdyaXRlIGEgcGVhayBncm91cCBpZiBpdCBpcyBub3QgZm91bmQgaW4gbW9yZSB0aGFuCiAgdGhpcyBmcmFjdGlvbiBvZiB0aGUgcnVucy4KKiAtLWRpc2FibGVfaXNvdG9waWNfZ3JvdXBpbmcgOiBEaXNhYmxlIGdyb3VwaW5nIG9mIHZhcmlhbnRzIGJ5IHBlcHRpZGUgZ3JvdXAgbGFiZWwuCiogLS1vdXRfbWF0cml4IDogIFRoZSBtYXRyaXggZmlsZSBjb250YWluaW5nIG9uZSBwZWFrIGdyb3VwIHBlciByb3cKKiAtLW91dF9tZXRhIDogT3V0cHV0IGZpbGUgb2YgbWV0YSBkYXRhLgoKYGBge2Jhc2ggdHJpYywgZXZhbD1GQUxTRX0KZWNobyAiSW52b2tpbmcgZmVhdHVyZV9hbGlnbm1lbnQucHkgdG8gZ2V0IG91ciBmaW5hbCBtYXRyaXggb2YgaW50ZW5zaXRpZXMuIgpta2RpciAtcCByZXN1bHRzL3RyaWMKaW5wdXRzPSQoZmluZCAgcmVzdWx0cy9vcGVuc3dhdGggLW5hbWUgIipfdnNfJHtkZGFfbWV0aG9kfV9kaWFfd2l0aF9kc2NvcmUuY3N2IiB8IGdyZXAgLXYgQnJpa2VuMTQpCm91dHB1dD0icmVzdWx0cy90cmljL2FsaWduZWRfJHtzZWFyY2hfbWV0aG9kfV8ke2RkYV9tZXRob2R9LnRzdiIKc2NvcmVfY3V0b2ZmPTEwCiMjIEkgYW0gbm90IHN1cmUgd2hhdCB0aGUgb3B0aW1hbCBhbGlnbm1lbnRfc2NvcmUgb3B0aW9uIHNob3VsZCBiZSwgYnV0IGlmIGl0IGlzIHRvbyBsb3cKIyMgZm9yIGFueSBvZiB0aGUgZGF0YSwgdGhlbiBmZWF0dXJlX2FsaWdubWVudCB3aWxsIHllbGwgJ1dhcm5pbmcsIHplcm8gZGF0YSEnIGFuZCB0aHJvdwojIyBhIGZhdGFsIGVycm9yICdObyBkYXRhIGF2YWlsYWJsZSBmb3IgYWxpZ25tZW50IHggdnMgeScuCiR7SE9NRX0vLmxvY2FsL2Jpbi9mZWF0dXJlX2FsaWdubWVudC5weSBcCiAgICAgICAjIyAtLWluIHJlc3VsdHMvb3BlbnN3YXRoLyovKiR7ZGRhX21ldGhvZH0qX2RzY29yZV9maWx0ZXJlZC5jc3YgXAogICAgICAgIyMgLS1pbiAkKGZpbmQgcmVzdWx0cy8gLW5hbWUgJypfd2l0aF9kc2NvcmVfZmlsdGVyZWQuY3N2JykgXAogICAgICAgLS1pbiAke2lucHV0c30gXAogICAgICAgLS1vdXQgIiR7b3V0cHV0fSIgXAogICAgICAgIyMgSSB0aGluayB0aGlzIGlzIHRoZSBpbnB1dCBmb3IgU1dBVEgyc3RhdHMuCiAgICAgICAtLWZpbGVfZm9ybWF0IG9wZW5zd2F0aCBcCiAgICAgICAtLW1ldGhvZCBMb2NhbE1TVCBcCiAgICAgICAtLW1heF9ydF9kaWZmIDMwIFwKICAgICAgIC0tdGFyZ2V0X2ZkciAke2NvbmZpZGVuY2VfY3V0b2ZmfSBcCiAgICAgICAtLW1heF9mZHJfcXVhbGl0eSAke2NvbmZpZGVuY2VfY3V0b2ZmfSBcCiAgICAgICAtLW1zdDp1c2VSVENvcnJlY3Rpb24gVHJ1ZSBcCiAgICAgICAtLW1zdDpTdGRldl9tdWx0aXBsaWVyIDMuMCBcCiAgICAgICAtLWFsaWdubWVudF9zY29yZSAke3Njb3JlX2N1dG9mZn0gXAogICAgICAgLS1yZWFsaWduX21ldGhvZCBsb3dlc3MgXAogICAgICAgLS1tYXRyaXhfb3V0cHV0X21ldGhvZCBmdWxsIFwKICAgICAgIC0tZHNjb3JlX2N1dG9mZiAke2RzY29yZV9jdXRvZmZ9IFwKICAgICAgIC0tZnJhY19zZWxlY3RlZCAwIFwKICAgICAgIC0tZGlzYWJsZV9pc290b3BpY19ncm91cGluZyBcCiAgICAgICAtLW91dF9tYXRyaXggcmVzdWx0cy90cmljLyR7ZGRhX21ldGhvZH1fb3V0bWF0cml4LnRzdiBcCiAgICAgICAtLW91dF9tZXRhIHJlc3VsdHMvdHJpYy8ke2RkYV9tZXRob2R9X21ldGEudHN2CmBgYAoKIyBDaGVja2xpc3Qgb2YgcGFyYW1ldGVycyBJIG5lZWQgdG8gaGF2ZSBleGFjdGx5IGNvcnJlY3QKCkkgd291bGQgbGlrZSB0byBzdWdnZXN0IHRoYXQgYW55IEREQS9ESUEgcnVuIGRhdGEgYmUgYWNjb21wYW5pZWQgd2l0aCBhbiBleGNlbAp3b3JrYm9vayBjb250YWluaW5nIHRoZSBmb2xsb3dpbmc6CgoxLiAgRERBIFNhbXBsZSBzaGVldCB3aXRoIDEgcm93L2ZpbGUgY29udGFpbmluZyBhbnkgYmF0Y2gvY29uZGl0aW9uCiAgICBpbmZvcm1hdGlvbi4KMi4gIEltcG9ydGFudCBwYXJhbWV0ZXJzIGZvciBEREEgYWNxdWlzaXRpb246CiAgKiAgTWV0aG9kIHVzZWQgZm9yIGFjcXVpc2l0aW9uOiBDSUQsIEVURCwgQ0lELVFUT0YsIEhDRAogICogIE1hc3MgdG9sZXJhbmNlIGluIHBwbQogICogIEVuenltZSB1c2VkIGZvciBkaWdlc3Rpb24sIGlmIHRoZSBkaWdlc3Rpb25zIGFyZSBzZW1pLCBub3RlIHRoYXQuCiAgKiAgVGhlIG51bWJlciBvZiBsaWtlbHkgbWlzc2VkIGNsZWF2YWdlcyBkdWUgdG8gb2RkIGVuenltZXMgb3IgdHJvdWJsZXNvbWUKICAgICBzYW1wbGVzLCBvdGhlcndpc2UgYXNzdW1pbmcgMC4KICAqICBleHBlY3RlZCB2YXJpYWJsZSBtb2RpZmljYXRpb25zLCBvbmx5IG5vdGUgMTUuOTkgTSBpZiBpdCBpcwogICAgIGFic2VudC4gKG5vdGFibHkgZGVhbWlkYXRpb25zLCBhcyBJIGhhdmUgbm90aWNlZCB0aGVtIGluIHRoZSBzZXF1ZXN0CiAgICAgc2VhcmNoZXMgc29tZXRpbWVzKQogICogIGV4cGVjdGVkIGRpZ2VzdGlvbiByYW5nZSwgb3RoZXJ3aXNlIEkgd2lsbCBhc3N1bWUgNjAwLTcwMDAKICAqICBJZiBhbnkgbGFiZWxzIGFyZSB1c2VkIGZvciBxdWFudGlmaWNhdGlvbiwgbm90ZSB0aGVtLCBpZiBhbnkgc3RhbmRhcmQKICAgIHBlcHRpZGVzIGFyZSBzcGlrZWQsIG5vdGUgdGhlbSBpbmNsdWRpbmcgYSBjb2x1bW4gd2l0aCB0aGUgZnVsbCBzZXF1ZW5jZS9wZXB0aWRlLgozLiAgRElBIFNhbXBsZSBzaGVldCB3aXRoIDEgcm93L2ZpbGUgY29udGFpbmluZyBhbnkgYmF0Y2gvY29uZGl0aW9uCiAgICBkYXRhLgogICogIElmIGFueSBwZXB0aWRlcyBhcmUgc3Bpa2VkIGluLCBhZGQgdGhlaXIgZXhwZWN0ZWQgcXVhbnRpdGllcyBoZXJlIGFzIDEgY29sdW1uL3BlcHRpZGUuCjQuICBJbXBvcnRhbnQgcGFyYW1ldGVycyBmb3IgRElBIGFjcXVpc2l0aW9uLCByZXBlYXQgYW55IG9mIHRoZSBhYm92ZQogICAgd2hlbiByZWxldmFudC4KICAqICBFeHRyYWN0aW9uIHdpbmRvdyBpbiBteiBpZiBub3QgdGhlIGRlZmF1bHQgKDMwKQogICogIEFkZCBzZXF1ZW5jZXMgb2YgYW55IHNwaWtlZCBwZXB0aWRlcyBoZXJlLgo1LiAgRElBIG9ic2VydmF0aW9uIHdpbmRvd3MgdXNlZC4KNi4gIERJQSBwYXJhbWV0ZXIgcmVxdWVzdHMuCiAgKiBUaGUgRElBIHdvcmtmbG93IGhhcyBtYW55IGJyYW5jaGluZyBwb2ludHMsIGlmIHNwZWNpZmljIG9uZXMgYXJlIGRlc2lyZWQsIEkKICAgIHdvdWxkIHB1dCB0aGVtIGhlcmUuCgojIEFjdHVhbGx5IGludm9rZSB0aGUgYWJvdmUKCldoZW4gd29ya2luZyBvbiB0aGUgYWJvdmUgc3RlcHMsIEkgY2FuIGVpdGhlciBydW4gZWFjaCBjb21tYW5kIG9uZSBhdCBhIHRpbWUgaW4KYSBzdWJzaGVsbCBmcm9tIHdpdGhpbiBteSBlZGl0b3IsIG9yIEkgY2FuIGNvbmNhdGVuYXRlIHRoZW0gaW50byBhIHNpbmdsZQpzY3JpcHQuICBUaGUgZm9sbG93aW5nIGJsb2NrIHNob3dzIHN1Y2ggYW4gaW52b2NhdGlvbiBhbmQgdGhlbiB0aGUgcmVzdWx0aW5nCm91dHB1dC4KCmBgYHtiYXNoIGFjdHVhbGx5X2ludm9rZSwgZXZhbD1GQUxTRX0KLi9kaWFfaW52b2NhdGlvbl9oY2Quc2ggMj4mMSAxPmRpYV9pbnZvY2F0aW9uX2hjZC5vdXQKYGBgCgpCZWZvcmUgcHJpbnRpbmcgdGhlIG91dHB1dCwgbGV0cyBqdXN0IG1ha2Ugc3VyZSBJIGRpZCBub3QgY2hhbmdlIGFueXRoaW5nCmltcG9ydGFudCBpbiB0aGUgc2NyaXB0LgoKYGBge2Jhc2ggcHJpbnRfcmVzdWx0c30KZGlmZiBkaWFfaW52b2NhdGlvbl9jaWQuc2ggZGlhX2ludm9jYXRpb25faGNkLnNoCmNhdCBkaWFfaW52b2NhdGlvbl9oY2Qub3V0CmBgYAoKIyBJbmRleCB2ZXJzaW9uOiBgciB2ZXJgCgojIFRPRE8KCiogMjAxNy0wNi0xNDoKCltpbmRleC5odG1sXShpbmRleC5odG1sKQoKYGBge3Igc2F2ZW1lfQppZiAoIWlzVFJVRShnZXQwKCJza2lwX2xvYWQiKSkpIHsKICBtZXNzYWdlKHBhc3RlMCgiVGhpcyBpcyBocGdsdG9vbHMgY29tbWl0OiAiLCBnZXRfZ2l0X2NvbW1pdCgpKSkKICB0aGlzX3NhdmUgPC0gcGFzdGUwKGdzdWIocGF0dGVybj0iXFwuUm1kIiwgcmVwbGFjZT0iIiwgeD1ybWRfZmlsZSksICItdiIsIHZlciwgIi5yZGEueHoiKQogIG1lc3NhZ2UocGFzdGUwKCJTYXZpbmcgdG8gIiwgdGhpc19zYXZlKSkKICB0bXAgPC0gc20oc2F2ZW1lKGZpbGVuYW1lPXRoaXNfc2F2ZSkpCiAgcGFuZGVyOjpwYW5kZXIoc2Vzc2lvbkluZm8oKSkKfQpgYGAK