Repository 'lfq_protein_quant'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/lfq_protein_quant

Changeset 0:bb199421f731 (2018-10-02)
Commit message:
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/lfq_protein_quant commit 26ff08776f90f96646598a19cfcf57d42aa4a43b
added:
lfq_protein_quant.xml
quantitation.r
test-data/meta.tab
test-data/moff.tab
test-data/quantitation.tsv
test-data/summarised_proteins.tsv
b
diff -r 000000000000 -r bb199421f731 lfq_protein_quant.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lfq_protein_quant.xml Tue Oct 02 16:30:33 2018 -0400
[
@@ -0,0 +1,98 @@
+<tool id="lfq_protein_quant" name="Label free protein" version="1.0">
+    <description>
+        summarisation and quantitation
+    </description>
+    <requirements>
+        <requirement type="package" version="2.2.0">bioconductor-msnbase</requirement>
+        <requirement type="package" version="2.12.0">bioconductor-mzr</requirement>
+        <requirement type="package" version="1.2.1">r-tidyverse</requirement>
+        <requirement type="package" version="1.1_18_1">r-lme4</requirement>
+        <requirement type="package" version="0.1.0">r-furrr</requirement>
+        <requirement type="package" version="0.7.5">r-msqrob</requirement>
+    </requirements>
+    <command detect_errors="exit_code">
+    <![CDATA[
+        ln -s '${moff_file}' moff.tsv &&
+        ln -s '${meta_file}' meta.tsv &&
+        Rscript '$__tool_directory__/quantitation.r'
+            moff.tsv
+            meta.tsv
+            $only_summarisation
+            \${GALAXY_SLOTS:-4}
+    ]]>
+    </command>
+    <inputs>
+        <param name="moff_file" type="data" format="tabular"
+               label="Peptide summary output from moFF or other peptide quantitation tools" />
+        <param name="meta_file" type="data" format="tabular" label="Metadata with sample names and condition" />
+        <param name="only_summarisation" type="boolean" truevalue="1" falsevalue="0"
+            label="Only summarisiation" help="This option will deactivate the quantifiation of data." />
+
+    </inputs>
+    <outputs>
+        <data format="tabular" name="quant" from_work_dir="quantitation.tsv" label="${tool.name} on ${on_string}: quantification">
+            <filter>not only_summarisation</filter>
+        </data>
+        <data format="tabular" name="summary" from_work_dir="summarised_proteins.tsv" label="${tool.name} on ${on_string}: summary"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="moff_file" value="moff.tab"/>
+            <param name="meta_file" value="meta.tab"/>
+            <param name="only_summerisation" value="true"/>
+            <output name="quant" file="quantitation.tsv" />
+            <output name="summary" file="summarised_proteins.tsv" />
+        </test>
+    </tests>
+    <help>
+        <![CDATA[
+**What it does**
+
+Protein summarisation and label free quantitation.
+
+----
+
+    **Inputs** 
+
+    - Quantification input: Tabular file with the summary output from moFF or in case other tools were used for peptide quantitation with the following columns: 'peptides' containing the amino acid sequence; 'prot' with the Uniprot Accession and then one column per sample with the quantitation values.
+
+            ::
+
+                  peptides     prot       sample1    sample2
+                  AAABDEK      B9DM54     1809446    563862
+                  TELATASDR    Q9CFE8     294282     457023
+                  AMGLATK      P85660     194023     428277
+                    ...
+                    ...
+
+
+    - Metadata input: Separate columns with sample names, condition and optionally also lab and machine. Sample names must match exactly the sample names from the peptide quantitation columns in the previous tabular file.
+
+
+            ::
+
+                  sample     condition 
+                  sample1    healthy
+                  sample2    disease
+                    ...
+                    ...
+
+
+    **Options** 
+
+    - Summarisation only: Summarisation is done through robust regression to take also the peptide effect into account. In case only sample column is provided median protein intensity is calculated.
+    - Summarisation and quantification: Relative quantification is performed according to the information provided in the metadata file. 
+
+
+    **Outputs** 
+
+    - Summarised protein output: Uniprot accession and quantitation values per sample and protein
+    - Quantification output: Uniprot accession, comparison between conditions, fold change, p-value, q-value
+
+        ]]>
+    </help>
+    <citations>
+        <citation type="doi">10.1074/mcp.M115.055897</citation>
+        <citation type="doi">10.1093/bioinformatics/btr645</citation>
+    </citations>
+</tool>
b
diff -r 000000000000 -r bb199421f731 quantitation.r
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/quantitation.r Tue Oct 02 16:30:33 2018 -0400
[
b'@@ -0,0 +1,452 @@\n+#################################\n+library(tidyverse)\n+library(furrr)\n+library(lme4)\n+library(MSnbase)\n+library(MSqRob)\n+\n+##Import and preprocess data\n+############################\n+MSnSet2df = function(msnset){\n+  ## Converts Msnset to a tidy dataframe\n+  ## Always creates feature and vector column so these shouldn\'t be defined by user.\n+  ## convenient for downstream analysis steps.\n+  if(any(c("sample", "feature", "expression") %in% c(colnames(fData(msnset)),colnames(pData(msnset))))){\n+    stop("Column names in the \\"fData\\" or \\"pData\\" slot of the \\"msnset\\" object cannot be named\n+         \\"sample\\", \\"feature\\" or \\"expression\\". Please rename these columns before running the analysis.")\n+  }\n+\n+  dt <- as.data.frame(Biobase::exprs(msnset)) %>% mutate(feature = rownames(.)) %>%\n+    gather(sample, expression, - feature, na.rm=TRUE)\n+  dt <- fData(msnset) %>% mutate(feature = rownames(.)) %>% left_join(dt,. , by = \'feature\')\n+  dt <- pData(msnset) %>% mutate(sample = rownames(.)) %>% left_join(dt,. , by = \'sample\')\n+  as_data_frame(dt)\n+}\n+\n+## robust summarisation\n+do_robust_summaristion = function(msnset, group_var = Proteins, keep_fData_cols = NULL, nIter = 20,\n+                                  sum_fun = summarizeRobust){\n+  ## TODO use funture_map instead of mutate to speed up\n+  ## Uses assumption that featureNames and sampleNames exist in every msnset\n+  ## Can also be used for multiple rounds of normalization, e.g. first from PSMs to peptides, then from peptides to proteins\n+  system.time({## Time how long it takes\n+    group_var <- enquo(group_var) ;#group_var = quo(Proteins)\n+  ## Make tidy dataframe from Msnset\n+    df <- MSnSet2df(msnset)\n+    ## Do summarisision according defined groups\n+    dt <- filter(df, !is.na(expression)) %>% group_by(!!group_var) %>%\n+      mutate(expression = sum_fun(expression, feature, sample, nIter = nIter)) %>%\n+      dplyr::select(!!group_var, sample, expression) %>%\n+      ## collapse to one value per group\n+      distinct\n+    ## Construct an Msnset object from dataframe\n+    dt_exprs <- spread(dt, sample, expression) %>% ungroup\n+    exprs_data <- dplyr::select(dt_exprs, - !!group_var) %>% as.matrix\n+    rownames(exprs_data) <- as.character(pull(dt_exprs, !!group_var))\n+\n+    fd <- dplyr::select(dt_exprs,!!group_var)\n+\n+    ##Select the group variable and all variables you want to keep\n+    if (!is.null(keep_fData_cols)){\n+      fd_ext <- dplyr::select(df, !!group_var, one_of(keep_fData_cols)) %>% distinct\n+      if(nrow(fd)!=nrow(fd_ext)){\n+        stop("Values in the \\"group_var\\" column can only correspond to a single value in the \\"keep_fData_cols\\" column.")\n+      }\n+      fd <- left_join(fd,fd_ext)\n+    }\n+\n+    fd <- as.data.frame(fd)\n+    rownames(fd) <- as.character(pull(fd, !!group_var))\n+    out <- MSnSet(exprs_data, fData = AnnotatedDataFrame(fd) , pData = pData(msnset)[colnames(exprs_data),,drop = FALSE])\n+  }) %>% print\n+  out\n+}\n+\n+summarizeRobust <- function(expression, feature, sample, nIter=100,...) {\n+  ## Assumes that intensities mx are already log-transformed\n+  ## characters are faster to construct and work with then factors\n+  feature <- as.character(feature)\n+  ##If there is only one 1 peptide for all samples return expression of that peptide\n+  if (length(unique(feature)) == 1L) return(expression)\n+  sample <- as.character(sample)\n+  ## modelmatrix breaks on factors with 1 level so make vector of ones (will be intercept)\n+  if (length(unique(sample)) == 1L) sample = rep(1,length(sample))\n+\n+  ## sum contrast on peptide level so sample effect will be mean over all peptides instead of reference level\n+  X = model.matrix(~ -1 + sample + feature,contrasts.arg = list(feature = \'contr.sum\'))\n+  ## MasS::rlm breaks on singulare values.\n+  ## check with base lm if singular values are present.\n+  ## if so, these coefficients will be zero, remove this collumn from model matrix\n+  ## rinse and repeat on reduced modelmatrx till no singular'..b'trace(Hat):\n+                 if(squeeze_variance) df_post else df\n+             )\n+   \n+    ## Calculate fold changes and p values for contrast\n+    cat("Estimating p-values contrasts\\n")\n+    df_prot <- df_prot %>%\n+      mutate(contrasts =  furrr::future_pmap(list(model = model, contrasts = list(contrasts),\n+                                                     var = var_protein,\n+                                                     df = df_protein, lfc = lfc), contEst))  %>%\n+      ## Calculate qvalues BH\n+      select_at(vars(!!group_vars, contrasts)) %>%\n+      unnest %>% \n+      group_by(contrast) %>%\n+      mutate(qvalue = p.adjust(pvalue, method = p.adjust.method)) %>%\n+      group_by_at(vars(!!group_vars)) %>% nest(.key = contrasts) %>%\n+      left_join(df_prot,.)\n+  }\n+  ) %>% print\n+  if (parallel) stopCluster(cl)\n+  bind_rows(df_prot,df_prot_failed)\n+}\n+\n+read_moff = function(moff,meta){\n+  print(\'START READING MOFF DATA\')\n+  set = readMSnSet2(moff, ecol = -c(1,2),fnames = \'peptide\',\n+                    sep = \'\\t\',stringsAsFactors = FALSE)\n+  colnames(fData(set)) = c(\'peptide\',\'protein\')\n+  pd = read_tsv(meta) %>% column_to_rownames(\'sample\') %>% as.data.frame\n+\n+  ## fix msnbase bug 1\n+  ## if there is only 1 sample. Msnbase doesn\'t name it \n+  if (length(sampleNames(set) ==1))\n+    sampleNames(set) = rownames(pd)\n+\n+  pData(set) = pd\n+  ## fix msnbase bug 2\n+  ## bug in msnbase in summarisation (samplenames should be alphabetically)\n+  sample_order = order(sampleNames(set))\n+  set = MSnSet(exprs(set)[,sample_order,drop = FALSE]\n+             , fData =  AnnotatedDataFrame(fData(set))\n+             , pData = AnnotatedDataFrame(pData(set)[sample_order,,drop = FALSE]))\n+  print(\'END READING MOFF DATA\')\n+  set\n+}\n+\n+preprocess = function(set){\n+  print(\'START PREPROCESSING\')\n+  if (ncol(set) == 1){\n+    exprs(set)[0 == (exprs(set))] <- NA\n+    set = log(set, base = 2)\n+    ## keep smallest unique groups\n+    groups2 <- smallestUniqueGroups(fData(set)$protein,split = \',\')\n+    sel <- fData(set)$protein %in% groups2\n+    set <- set[sel,]\n+  } else {\n+    ## normalisation\n+    exprs(set)[0 == (exprs(set))] <- NA\n+    set <- normalize(set, \'vsn\')\n+    ## keep smallest unique groups\n+    groups2 <- smallestUniqueGroups(fData(set)$protein,split = \',\')\n+    sel <- fData(set)$protein %in% groups2\n+    set <- set[sel,]\n+    ## remove peptides with less then 2 observations\n+    sel <- rowSums(!is.na(exprs(set))) >= 2\n+    set <- set[sel]\n+  }\n+  print(\'END PREPROCESSING\')\n+  set\n+}\n+\n+summarise = function(set){\n+  print(\'START SUMMARISATION\')\n+  ## Summarisation\n+  if (ncol(set) == 1){\n+    set = combineFeatures(set,fun="median", groupBy = fData(set)$protein,cv = FALSE)\n+  } else {\n+    ## set = combineFeatures(set,fun="robust", groupBy = fData(set)$protein,cv = FALSE)\n+    set = do_robust_summaristion(set,protein)\n+  }\n+  exprs(set) %>% as.data.frame %>% rownames_to_column(\'protein\') %>% write_tsv(\'summarised_proteins.tsv\')\n+  print(\'END SUMMARISATION\')\n+  set\n+}\n+\n+quantify = function(set, cpu = 0){\n+  print(\'START QUANTITATION\')\n+  if ((cpu == 0) | is.na(cpu)) cpu = availableCores()\n+  print(cpu)\n+  form = colnames(pData(set)) %>% paste0(\'(1|\',.,\')\',collapse=\'+\') %>% paste(\'~\',.) %>% as.formula\n+  contrasts <- contrast_helper(form, set, condition)\n+  res = do_mm(formulas = form, set, group_vars = c(protein)\n+            , contrasts = contrasts,type_df = \'traceHat\', parallel = TRUE,cores = cpu) %>%\n+    filter(!map_lgl(contrasts, is.null)) %>%\n+    transmute(protein, contrasts) %>% unnest %>%\n+    transmute(protein\n+            , comparison = str_replace_all(contrast, \'condition\', \'\')\n+            , logFC,pvalue,qvalue) %>%\n+    write_tsv(\'quantitation.tsv\')\n+  print(\'END QUANTITATION\')\n+}\n+\n+args = commandArgs(trailingOnly=TRUE)\n+moff = args[1]\n+meta = args[2]\n+summarise_only = args[3]\n+cpu = strtoi(args[4])\n+\n+res = read_moff(moff, meta) %>%\n+  preprocess %>%\n+  summarise\n+if (summarise_only != 1)\n+  quantify(res, cpu)\n+\n'
b
diff -r 000000000000 -r bb199421f731 test-data/meta.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/meta.tab Tue Oct 02 16:30:33 2018 -0400
b
@@ -0,0 +1,9 @@
+sample condition
+sumIntensity_HEK.Ecoli_7.1_replicate1 ecoli_7
+sumIntensity_HEK.Ecoli_3.1_replicate2 ecoli_3
+sumIntensity_HEK.Ecoli_7.1_replicate2 ecoli_7
+sumIntensity_HEK.Ecoli_20.1_replicate2 ecoli_2
+sumIntensity_HEK.Ecoli_20.1_replicate1 ecoli_2
+sumIntensity_HEK.Ecoli_10.1_replicate1 ecoli_1
+sumIntensity_HEK.Ecoli_10.1_replicate2 ecoli_1
+sumIntensity_HEK.Ecoli_3.1_replicate1 ecoli_3
b
diff -r 000000000000 -r bb199421f731 test-data/moff.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/moff.tab Tue Oct 02 16:30:33 2018 -0400
b
b'@@ -0,0 +1,226 @@\n+peptide\tprot\tsumIntensity_HEK+Ecoli_7:1_replicate1\tsumIntensity_HEK+Ecoli_3:1_replicate2\tsumIntensity_HEK+Ecoli_7:1_replicate2\tsumIntensity_HEK+Ecoli_20:1_replicate2\tsumIntensity_HEK+Ecoli_20:1_replicate1\tsumIntensity_HEK+Ecoli_10:1_replicate1\tsumIntensity_HEK+Ecoli_10:1_replicate2\tsumIntensity_HEK+Ecoli_3:1_replicate1\n+AAAAAAALQAK\tP36578\t16457063.0\t18431026.0\t19450004.0\t11017968.0\t17443480.0\t19442622.0\t17946480.0\t17091952.0\n+AAAAAWEEPSSGNGTAR\tQ9P258\t506766.4375\t435665.75\t384355.5\t299177.03125\t493421.59375\t483558.625\t395972.71875\t490540.625\n+AAAAPGASPSPGGDAAWSEAGPGPRPLAR\tP52701\t457023.8125\t433836.84375\t347959.75\t303366.21875\t322148.6875\t409149.28125\t408018.96875\t349124.15625\n+AAADEWDER\tP25738\t4561047.5\t11161413.0\t3260742.5\t1931902.5\t678626.0\t3053197.5\t1516088.375\t10162857.0\n+AAAEDVNVTFEDQQK\tQ9NQP4\t517966.65625\t499305.28125\t394040.6875\t389488.65625\t383622.40625\t348601.59375\t434484.9375\t395419.15625\n+AAAEIYEEFLAAFEGSDGNKVK\tO15042\t358118.0625\t485612.84375\t372646.78125\t299831.15625\t365937.15625\t333926.21875\t307738.84375\t399245.0\n+AAAEVNQDYGLDPK\tP07954\t1933341.125\t1730361.25\t1742818.25\t1650747.5\t1676571.125\t1744116.5\t1513292.375\t2167048.0\n+AAAFEEQENETVVVK\tQ9Y490\t218363.04688\t165289.4375\t212558.14063\t149998.10938\t241045.25\t210504.34375\t181987.15625\t190900.28125\n+AAAFEGELIPASQIDR\tP0A7J3\t3454944.0\t7286439.0\t2284797.25\t1726430.25\t720417.1875\t3044899.25\t2287418.0\t5598338.0\n+AAAFEQLQK\tO94826\t2098420.0\t2196475.75\t2033756.875\t1661140.625\t2205855.75\t1884663.625\t1983980.375\t1796414.625\n+AAAGAAATHLEVAR\tQ96S52\t332332.1875\t513240.96875\t312199.375\t298522.34375\t341629.84375\t258642.4375\t320749.25\t413272.65625\n+AAAGEFADDPCSSVK\tP35221\t788848.0625\t546523.6875\t628515.8125\t594441.0\t539007.75\t622987.75\t462828.46875\t703339.1875\n+AAAGGQGSAVAAEAEPGKEEPPAR\tQ9GZT9\t274049.40625\t204947.25\t214794.375\t205112.40625\t222377.03125\t241137.64063\t226932.35938\t203385.39063\n+AAAIGIDLGTTYSCVGVFQHGK\tP0DMV8, P0DMV9\t2007747.375\t3024701.75\t1874377.625\t1800173.0\t2602331.75\t2433892.25\t1851966.25\t2638740.75\n+AAALEFLNRFEEAK\tP31948\t387500.03125\t322913.0\t275486.875\t245810.70313\t493922.65625\t404116.4375\t257749.625\t321231.78125\n+AAALEFLNRFEEAKR\tP31948\t364801.9375\t361638.4375\t504704.21875\t257849.95313\t301058.125\t316057.84375\t230942.85938\t299150.78125\n+AAALEQFK\tQ13423\t1479661.625\t2418792.5\t1229556.125\t884897.125\t1111873.5\t1475850.5\t1105625.0\t1862347.125\n+AAAMANNLQK\tQ14498\t1153741.875\t3403271.75\t2368509.75\t1117940.5\t738854.75\t815364.3125\t518996.40625\t2033955.875\n+AAANEQLTR\tQ9NX63\t177701888.0\t261647520.0\t291490880.0\t65584816.0\t256114944.0\t209830688.0\t221604880.0\t258008128.0\n+AAAPAPEEEMDECEQALAAEPK\tP26641\t157338.82813\t146486.07813\t188801.14063\t162740.34375\t134355.15625\t169129.875\t135813.92188\t159674.34375\n+AAAPAPVSEAVCR\tP20810\t415805.65625\t766174.125\t402396.40625\t324595.8125\t416173.71875\t402875.78125\t355104.34375\t464567.75\n+AAAPGVEDEPLLR\tP31350\t389110.0\t557407.6875\t322029.40625\t357629.65625\t409953.59375\t835641.875\t374259.3125\t432882.65625\n+AAAQLLQSQAQQSGAQQTK\tQ9NVA2\t681580.0\t769884.0\t555384.0625\t536991.125\t584127.875\t626285.6875\t757610.71875\t605575.3125\n+AAASTDYYK\tP08559\t1745518.25\t2333747.25\t1864745.875\t1980362.375\t1901938.375\t1935263.25\t1381518.0\t1841983.0\n+AAATAEEPDPK\tQ99733\t2734416.75\t1629302.875\t3566302.75\t596659.75\t3531444.75\t1277103.875\t5087164.5\t1580173.5\n+AAATLTSKLYSLLFRR\tQ9UDW1\t274540.5\t342699.4375\t347168.18751\t332315.84376\t154670.5625\t220738.48438\t122541.99219\t247966.19530999998\n+AAATPESQEPQAK\tP49006\t9440659.0\t8302341.5\t7931919.5\t3302175.75\t6371163.0\t7315403.5\t10252216.0\t11276111.0\n+AAAVLPVLDLAQR\tP19404\t678908.8125\t856869.0\t446169.90625\t539676.875\t515150.46875\t570107.75\t580731.5\t755040.875\n+AAAYNLVQHGITNLCVIGGDGSLTGANIFR\tP17858\t150314.71875\t183069.79688\t158230.60938\t119872.25781\t152153.07813\t170457.64063\t140610.73438\t133678.5625\n+AAAYSAQVQPVDGATR\tQ9H7E9\t202985.21875\t300835.84375\t229441.875\t188218.34375\t303109.3125\t251189.4375\t195645.32813\t210041.0625\n+AACDLVR\tP55060\t872022.1875\t1410906.875\t1242594.5\t651941.4375\t1106910.75\t1024352.0625\t835730.6875\t1014368.625'..b'\n+AAQYVASHPGEVCPAK\tP0AE08\t15864123.0\t51993361.5\t12056009.5\t6261370.3125\t2155603.75\t12391275.875\t5883448.5625\t27818716.5\n+AASADSTTEGTPADGFTVLSTK\tO75367\t1116173.21875\t2907101.0\t1226918.10938\t871459.53125\t895058.5625\t998934.90625\t977392.84375\t973814.9375\n+AASAGQEPLHNEELAGAGR\tQ96HY6\t889178.5625\t921382.5\t883829.1875\t797695.9375\t1001295.3125\t1120548.625\t802324.5\t935400.125\n+AASAYAVGDVK\tP13861\t1485589.125\t1330503.5\t1178909.375\t1040358.4375\t1372300.125\t1191166.875\t1083942.875\t1228998.125\n+AASDIWKPVLSIDTEPR\tQ96JM3\t281060.625\t452834.5\t279770.71875\t321321.59375\t328187.25\t368099.65625\t438101.65625\t369116.59375\n+AASEEYNWDLNYGEIAK\tP00350\t283509.875\t564879.5625\t128560.86719\t86421.16406\t6532.9013700000005\t182205.84375\t137571.23438\t422277.28125\n+AASIFGGAKPVDTAAR\tP23588\t2394175.5\t3604647.0\t2289038.75\t1917155.5\t1449951.875\t1644326.75\t2111056.0\t3053623.0\n+AASITSEVFNKFFKER\tQ9Y5B9\t117960.92188\t126077.96875\t97117.28125\t119717.07813\t114889.77344\t109439.32813\t116697.32031\t154608.9375\n+AATAAADFTAK\tQ9Y3F4\t3917802.25\t4149708.5\t3546833.0\t1937551.625\t3462372.75\t3132683.25\t2292475.25\t2413771.5\n+AATALKDVVK\tQ15084\t1268887.5\t1370430.0\t1455083.75\t949831.4375\t1407677.875\t1693036.125\t1029028.125\t1127469.5\n+AATAPLLEAVDNLSAFASNPEFSSIPAQISPEGR\tQ9Y490\t418117.23438000004\t437334.35938000004\t116392.84375\t91101.60547\t67913.22656\t156233.71875\t124191.64452999999\t118919.4375\n+AATFGLILDDVSLTHLTFGK\tP35232\t368993.15625\t536513.0\t308890.78125\t152407.85938\t330637.28125\t335566.875\t150468.8125\t288719.875\n+AATGEEVSAEDLGGADLHCR\tQ9HCC0\t713096.3125\t1157865.125\t886318.4375\t660403.0\t727666.875\t790421.5625\t848064.9375\t906844.25\n+AATILAEQLEAFVDLR\tP0A7Z4\t463321.625\t771793.875\t182596.30469\t211887.52344000002\t104940.16406\t98192.11719\t112944.75391\t340720.84375\n+AATITATSPGALWGLDR\tP31323\t166537.35938\t190122.20313\t102650.57813\t117641.97656\t143498.53125\t144261.40625\t164546.8125\t240236.23438\n+AATITPFR\tQ13423\t1266772.5\t1144386.625\t1263772.75\t868970.5625\t1182768.5\t1272546.75\t1157362.625\t926989.5\n+AATIVATSEGSLWGLDR\tP13861\t373940.25\t315889.96875\t255084.46875\t216083.85938\t231952.28125\t307028.03125\t198671.39063\t329004.09375\n+AATLILEPAGR\tP49753, Q86TX2\t1246324.375\t1315777.5\t1111768.375\t1300046.0\t1103887.0\t844185.4375\t1114889.375\t1102775.5\n+AATLPHEQR\tQ6PD74\t327455.625\t598046.1875\t478179.40625\t140029.4375\t547710.9375\t386615.125\t209003.15625\t461980.125\n+AATQFWR\tP13667\t2370100.5\t2073749.125\t1958417.875\t1201990.75\t1731749.875\t1916142.25\t1592493.625\t2070763.875\n+AATSEGVQVK\tP51608\t258779.26563\t818176.1875\t803724.625\t186500.6875\t409854.65625\t299316.5\t348250.875\t941427.9375\n+AATTEPTEVEEVVPALEPTETLLSEK\tQ9BXK5\t254085.875\t323606.21875\t201949.5625\t193788.5\t152049.17188\t159238.85938\t243993.04688\t186718.1875\n+AAVAFAPGKPLEIVEIDVAPPK\tP25437\t121347.04688\t374993.5625\t70694.5625\t85127.13281\t47131.46484\t89174.42969\t25806.17578\t234406.40625\n+AAVATFLQSVQVPEFTPK\tP22314\t1215883.875\t5004095.375\t3042419.125\t2534024.625\t1290454.875\t1068574.125\t1085994.25\t1496532.875\n+AAVAWEAGKPLSIEEIEVAPPK\tP11766\t880564.9375\t711888.4375\t774589.9375\t521704.3125\t647899.25\t754981.8125\t647790.6875\t579748.125\n+AAVDAGFVPNDMQVGQTGK\tP13804\t703540.5625\t1105543.75\t584439.625\t434465.15625\t492411.6875\t521865.0\t486507.09375\t628963.25\n+AAVEEGIVLGGGCALLR\tP10809\t14604331.75\t19574214.5\t12754827.5\t12971932.75\t15320584.25\t16180003.5\t12196336.0\t14062687.75\n+AAVEEGVVAGGGVALIR\tP0A6F5\t996091.4375\t4659981.25\t975535.3125\t1879227.90625\t923931.0625\t1720385.4375\t1201319.78125\t2827220.875\n+AAVENLPTFLVELSR\tQ14974\t2339959.1875\t2179483.4375\t2203616.25\t1467668.0\t1950778.8125\t1955095.75\t1355188.625\t1972279.5625\n+AAVESLGFILFR\tQ99460\t109935.35938\t108358.625\t96774.625\t104065.46094\t111914.89844\t107003.10156\t94293.25\t88740.69531\n+AAVETLGVPCFLGGMAR\tA1L0T0\t122606.89844\t189491.1875\t177914.67188\t113754.82813\t156852.95313\t180123.42188\t144989.23438\t142232.23438\n+AAVEWFDGK\tQ01844\t1129111.625\t1152426.75\t1042474.3125\t852575.75\t1232521.125\t1052781.375\t934250.1875\t905730.875\n+AAVEWFDGKDFQGSK\tQ01844\t3742938.34375\t3327645.75\t3208572.09375\t3384849.8125\t4812751.75\t4015413.9375\t3720032.5\t3545558.53125\n'
b
diff -r 000000000000 -r bb199421f731 test-data/quantitation.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/quantitation.tsv Tue Oct 02 16:30:33 2018 -0400
b
b'@@ -0,0 +1,1130 @@\n+protein\tcomparison\tlogFC\tpvalue\tqvalue\n+A1L0T0\tecoli_2-ecoli_1\t-9.39530454360043e-18\t0.9999999967240936\t1\n+A1L0T0\tecoli_3-ecoli_1\t-3.5591253620981224e-17\t0.9999999875902251\t1\n+A1L0T0\tecoli_7-ecoli_1\t-2.3165346387522672e-17\t0.9999999919228264\t1\n+A1L0T0\tecoli_3-ecoli_2\t-2.6195949077380796e-17\t0.9999999908661314\t1\n+A1L0T0\tecoli_7-ecoli_2\t-1.3770041843922244e-17\t0.9999999951987328\t1\n+A1L0T0\tecoli_7-ecoli_3\t1.242590723345855e-17\t0.9999999956673987\t1\n+O00139\tecoli_2-ecoli_1\t0.0018448291421766516\t0.9958340324121795\t1\n+O00139\tecoli_3-ecoli_1\t1.2321715267791753\t0.009783597971314853\t0.1081950834474819\n+O00139\tecoli_7-ecoli_1\t0.29765360883577596\t0.41270893111828805\t1\n+O00139\tecoli_3-ecoli_2\t1.2303266976369986\t0.00985050554661475\t0.07870172578796708\n+O00139\tecoli_7-ecoli_2\t0.2958087796935993\t0.41545686820524286\t1\n+O00139\tecoli_7-ecoli_3\t-0.9345179179433993\t0.031050234425502816\t0.3346874803222741\n+O00151\tecoli_2-ecoli_1\t0\t1\t1\n+O00151\tecoli_3-ecoli_1\t0\t1\t1\n+O00151\tecoli_7-ecoli_1\t0\t1\t1\n+O00151\tecoli_3-ecoli_2\t0\t1\t1\n+O00151\tecoli_7-ecoli_2\t0\t1\t1\n+O00151\tecoli_7-ecoli_3\t0\t1\t1\n+O00273\tecoli_2-ecoli_1\t5.871639230477629e-20\t0.9999999998722429\t1\n+O00273\tecoli_3-ecoli_1\t-1.1315125448089434e-19\t0.9999999997538016\t1\n+O00273\tecoli_7-ecoli_1\t-5.478461975713279e-20\t0.9999999998807978\t1\n+O00273\tecoli_3-ecoli_2\t-1.718676467856706e-19\t0.9999999996260445\t1\n+O00273\tecoli_7-ecoli_2\t-1.1350101206190906e-19\t0.9999999997530407\t1\n+O00273\tecoli_7-ecoli_3\t5.836663472376154e-20\t0.9999999998730038\t1\n+O14744\tecoli_2-ecoli_1\t0.02828200890204465\t0.7153702716813223\t1\n+O14744\tecoli_3-ecoli_1\t-0.04121721312113948\t0.5969001328985126\t1\n+O14744\tecoli_7-ecoli_1\t-0.022311914287492247\t0.7732304112816045\t1\n+O14744\tecoli_3-ecoli_2\t-0.06949922202318413\t0.3803013399754621\t0.8826747150047763\n+O14744\tecoli_7-ecoli_2\t-0.0505939231895369\t0.5181380333258057\t1\n+O14744\tecoli_7-ecoli_3\t0.018905298833647236\t0.8069642650302242\t1\n+O15042\tecoli_2-ecoli_1\t0.17911599032933245\t0.11832659488452864\t1\n+O15042\tecoli_3-ecoli_1\t0.06805502716489177\t0.518346003187115\t1\n+O15042\tecoli_7-ecoli_1\t0.044799515505470136\t0.6677495724863654\t1\n+O15042\tecoli_3-ecoli_2\t-0.1110609631644407\t0.3045359469198265\t0.7340097182170177\n+O15042\tecoli_7-ecoli_2\t-0.13431647482386233\t0.22265140329154973\t0.9285716951999126\n+O15042\tecoli_7-ecoli_3\t-0.023255511659421635\t0.8227313126557558\t1\n+O60784\tecoli_2-ecoli_1\t-2.3427915799696938e-17\t0.9999999954352896\t1\n+O60784\tecoli_3-ecoli_1\t-1.873971440104913e-17\t0.9999999963487418\t1\n+O60784\tecoli_7-ecoli_1\t-1.1635183334801913e-17\t0.9999999977329933\t1\n+O60784\tecoli_3-ecoli_2\t4.688201398647808e-18\t0.9999999990865478\t1\n+O60784\tecoli_7-ecoli_2\t1.1792732464895028e-17\t0.9999999977022964\t1\n+O60784\tecoli_7-ecoli_3\t7.10453106624722e-18\t0.9999999986157486\t1\n+O75367\tecoli_2-ecoli_1\t0\t1\t1\n+O75367\tecoli_3-ecoli_1\t0\t1\t1\n+O75367\tecoli_7-ecoli_1\t0\t1\t1\n+O75367\tecoli_3-ecoli_2\t0\t1\t1\n+O75367\tecoli_7-ecoli_2\t0\t1\t1\n+O75367\tecoli_7-ecoli_3\t0\t1\t1\n+O75390\tecoli_2-ecoli_1\t0\t1\t1\n+O75390\tecoli_3-ecoli_1\t0\t1\t1\n+O75390\tecoli_7-ecoli_1\t0\t1\t1\n+O75390\tecoli_3-ecoli_2\t0\t1\t1\n+O75390\tecoli_7-ecoli_2\t0\t1\t1\n+O75390\tecoli_7-ecoli_3\t0\t1\t1\n+O75533\tecoli_2-ecoli_1\t0.3169426749019405\t0.03935896775592092\t1\n+O75533\tecoli_3-ecoli_1\t-0.11935706151634232\t0.36406826123496344\t0.9125977748289751\n+O75533\tecoli_7-ecoli_1\t-0.03610533570198816\t0.7767379504279389\t1\n+O75533\tecoli_3-ecoli_2\t-0.4362997364182828\t0.010969442439346803\t0.07931750686912303\n+O75533\tecoli_7-ecoli_2\t-0.35304801060392865\t0.026376452972486385\t0.3541980827733886\n+O75533\tecoli_7-ecoli_3\t0.08325172581435417\t0.5192725751641845\t1\n+O75643\tecoli_2-ecoli_1\t5.317609740520191e-19\t0.9999999993619537\t1\n+O75643\tecoli_3-ecoli_1\t-1.6961687453489036e-18\t0.9999999979648111\t1\n+O75643\tecoli_7-ecoli_1\t-7.42652156227463e-19\t0.9999999991089109\t1\n+O75643\tecoli_3-ecoli_2\t-2.227929719400923e-18\t0.9999999973267648\t1\n+O75643\tecoli_7-ecoli_2\t-1.2744131302794821e-18\t0.9999999984708647\t1\n+O75643\tecoli_7-ecoli_3\t9.535165891214406e-19\t0.9999999988559001\t1\n+O94826\tecoli_2-ecoli_1\t0.174'..b'9195\t1\n+Q9UKV3\tecoli_7-ecoli_1\t-1.6020066369825004e-17\t0.9999999947951801\t1\n+Q9UKV3\tecoli_3-ecoli_2\t5.358823702711908e-18\t0.9999999982589516\t1\n+Q9UKV3\tecoli_7-ecoli_2\t-1.926738020322257e-17\t0.9999999937401481\t1\n+Q9UKV3\tecoli_7-ecoli_3\t-2.462620390593448e-17\t0.9999999919990996\t1\n+Q9UQ35\tecoli_2-ecoli_1\t0.03819431904921688\t0.7123672677261248\t1\n+Q9UQ35\tecoli_3-ecoli_1\t-0.12065597948972538\t0.2658920142592635\t0.8112564488214594\n+Q9UQ35\tecoli_7-ecoli_1\t0.03281456595612789\t0.7510862166038631\t1\n+Q9UQ35\tecoli_3-ecoli_2\t-0.15885029853894225\t0.15633219144770555\t0.45216079987951757\n+Q9UQ35\tecoli_7-ecoli_2\t-0.005379753093088989\t0.9583592296279654\t1\n+Q9UQ35\tecoli_7-ecoli_3\t0.15347054544585326\t0.16873380848021388\t0.6378137960552085\n+Q9UQ80\tecoli_2-ecoli_1\t-3.245058062541264e-22\t0.9999999999997151\t1\n+Q9UQ80\tecoli_3-ecoli_1\t-1.622432239348533e-21\t0.999999999998576\t1\n+Q9UQ80\tecoli_7-ecoli_1\t-8.406052653030093e-22\t0.9999999999992621\t1\n+Q9UQ80\tecoli_3-ecoli_2\t-1.2979264330944066e-21\t0.9999999999988609\t1\n+Q9UQ80\tecoli_7-ecoli_2\t-5.160994590488828e-22\t0.999999999999547\t1\n+Q9UQ80\tecoli_7-ecoli_3\t7.818269740455238e-22\t0.9999999999993139\t1\n+Q9Y277\tecoli_2-ecoli_1\t0.14640703140398026\t0.19920733163596366\t1\n+Q9Y277\tecoli_3-ecoli_1\t0.07161681540455944\t0.5109170330942586\t1\n+Q9Y277\tecoli_7-ecoli_1\t0.15187186079560547\t0.18479820718899417\t1\n+Q9Y277\tecoli_3-ecoli_2\t-0.0747902159994208\t0.49297996527288\t1\n+Q9Y277\tecoli_7-ecoli_2\t0.005464829391625216\t0.959351638113686\t1\n+Q9Y277\tecoli_7-ecoli_3\t0.08025504539104603\t0.463070159649712\t1\n+Q9Y3F4\tecoli_2-ecoli_1\t9.718799360682765e-19\t0.9999999990893496\t1\n+Q9Y3F4\tecoli_3-ecoli_1\t-9.470784099794427e-19\t0.9999999991125886\t1\n+Q9Y3F4\tecoli_7-ecoli_1\t2.5065978572661926e-18\t0.9999999976513207\t1\n+Q9Y3F4\tecoli_3-ecoli_2\t-1.9189583460477194e-18\t0.9999999982019383\t1\n+Q9Y3F4\tecoli_7-ecoli_2\t1.5347179211979163e-18\t0.9999999985619711\t1\n+Q9Y3F4\tecoli_7-ecoli_3\t3.4536762672456357e-18\t0.9999999967639094\t1\n+Q9Y490\tecoli_2-ecoli_1\t0\t1\t1\n+Q9Y490\tecoli_3-ecoli_1\t0\t1\t1\n+Q9Y490\tecoli_7-ecoli_1\t0\t1\t1\n+Q9Y490\tecoli_3-ecoli_2\t0\t1\t1\n+Q9Y490\tecoli_7-ecoli_2\t0\t1\t1\n+Q9Y490\tecoli_7-ecoli_3\t0\t1\t1\n+Q9Y493\tecoli_2-ecoli_1\t-5.621190015446885e-20\t0.999999999907367\t1\n+Q9Y493\tecoli_3-ecoli_1\t-1.977877357361006e-21\t0.9999999999967406\t1\n+Q9Y493\tecoli_7-ecoli_1\t-1.0440841581793848e-19\t0.9999999998279429\t1\n+Q9Y493\tecoli_3-ecoli_2\t5.423402279710784e-20\t0.9999999999106264\t1\n+Q9Y493\tecoli_7-ecoli_2\t-4.819651566346965e-20\t0.9999999999205758\t1\n+Q9Y493\tecoli_7-ecoli_3\t-1.0243053846057748e-19\t0.9999999998312022\t1\n+Q9Y4L1\tecoli_2-ecoli_1\t5.731449628343196e-22\t0.999999999999222\t1\n+Q9Y4L1\tecoli_3-ecoli_1\t5.650050391201009e-22\t0.9999999999992331\t1\n+Q9Y4L1\tecoli_7-ecoli_1\t5.596504597081475e-22\t0.9999999999992403\t1\n+Q9Y4L1\tecoli_3-ecoli_2\t-8.139923714218677e-24\t0.9999999999999889\t1\n+Q9Y4L1\tecoli_7-ecoli_2\t-1.349450312617206e-23\t0.9999999999999817\t1\n+Q9Y4L1\tecoli_7-ecoli_3\t-5.354579411953383e-24\t0.9999999999999927\t1\n+Q9Y520\tecoli_2-ecoli_1\t-7.0287718444195046e-15\t0.9999999121040615\t1\n+Q9Y520\tecoli_3-ecoli_1\t-2.290970576610039e-14\t0.999999713510392\t1\n+Q9Y520\tecoli_7-ecoli_1\t-2.0051157417078776e-14\t0.9999997492570054\t1\n+Q9Y520\tecoli_3-ecoli_2\t-1.5880933921680886e-14\t0.9999998014063305\t1\n+Q9Y520\tecoli_7-ecoli_2\t-1.3022385572659273e-14\t0.9999998371529439\t1\n+Q9Y520\tecoli_7-ecoli_3\t2.8585483490216146e-15\t0.9999999642533866\t1\n+Q9Y5B9\tecoli_2-ecoli_1\t0.005615071799879606\t0.8853387834778575\t1\n+Q9Y5B9\tecoli_3-ecoli_1\t-0.0015531492547019557\t0.968164582586059\t1\n+Q9Y5B9\tecoli_7-ecoli_1\t-0.004969573956498814\t0.8984304177816331\t1\n+Q9Y5B9\tecoli_3-ecoli_2\t-0.007168221054581562\t0.8539972324244992\t1\n+Q9Y5B9\tecoli_7-ecoli_2\t-0.01058464575637842\t0.7860801787908229\t1\n+Q9Y5B9\tecoli_7-ecoli_3\t-0.0034164247017968584\t0.9300563795409404\t1\n+P55263\tecoli_2-ecoli_1\t0\t1\t1\n+P55263\tecoli_3-ecoli_1\t0\t1\t1\n+P55263\tecoli_7-ecoli_1\t0\t1\t1\n+P55263\tecoli_3-ecoli_2\t0\t1\t1\n+P55263\tecoli_7-ecoli_2\t0\t1\t1\n+P55263\tecoli_7-ecoli_3\t0\t1\t1\n+P0A6Z3\tecoli_7-ecoli_3\t-0.40906290318649974\t0.062027760478629304\t0.3977915677631447\n'
b
diff -r 000000000000 -r bb199421f731 test-data/summarised_proteins.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/summarised_proteins.tsv Tue Oct 02 16:30:33 2018 -0400
b
b'@@ -0,0 +1,190 @@\n+protein\tsumIntensity_HEK.Ecoli_10.1_replicate1\tsumIntensity_HEK.Ecoli_10.1_replicate2\tsumIntensity_HEK.Ecoli_20.1_replicate1\tsumIntensity_HEK.Ecoli_20.1_replicate2\tsumIntensity_HEK.Ecoli_3.1_replicate1\tsumIntensity_HEK.Ecoli_3.1_replicate2\tsumIntensity_HEK.Ecoli_7.1_replicate1\tsumIntensity_HEK.Ecoli_7.1_replicate2\n+A1L0T0\t17.429399406156225\t17.33398240348946\t17.410541528940552\t17.169264537725507\t16.96506289630559\t17.102898046807514\t16.810637234848606\t17.4312146548945\n+O00139\t20.421077251892928\t19.4956589466802\t18.682046032353977\t20.423674084830257\t21.718035972736907\t21.77141317029518\t20.840274733873557\t20.12149078546466\n+O00151\t17.81884023410664\t17.531832922589587\t17.62163842515729\t18.09366919995733\t17.67254437376755\t17.427616936505473\t17.96961117579886\t17.425397847613464\n+O00273\t19.93242622242833\t19.603203040939114\t19.886945840734857\t19.867923201248434\t19.67920363460759\t18.960655886217342\t19.507297177954843\t19.82377306133697\n+O14744\t18.77855154110734\t18.914172184222327\t18.870002449107787\t19.08828557498425\t18.714199271576717\t18.716410902401307\t18.88067875222483\t18.670156314253507\n+O15042\t18.319942988998132\t18.41974317713256\t18.632724745212094\t18.567487062998904\t18.454088773488962\t18.46057387031008\t18.357032366321995\t18.49783796402044\n+O60784\t17.992423465315497\t18.276485111155022\t17.87549658995278\t18.230718126797623\t17.639386766223552\t18.40092918614786\t18.262567273424093\t17.92554141877697\n+O75367\t19.90080428618561\t20.086975161741446\t19.92311091280165\t20.106770427549396\t19.74046206407978\t21.042276581142772\t19.99708611108673\t20.216996219641395\n+O75390\t17.22571077073124\t14.365033325121281\t16.355939065329956\t14.361154531483919\t16.14733168134587\t17.262912073475782\t16.914471388538047\t15.532376815271153\n+O75533\t17.358807786199613\t17.513044498868947\t17.770183697285013\t17.804804873091328\t17.397513206265078\t17.16052774872587\t17.399796896788956\t17.391955819380776\n+O75643\t18.687147078461912\t18.464501804013604\t18.9319587430068\t18.424539180514156\t18.230533239881822\t18.412031679936355\t18.656158664410608\t18.27259240580123\n+O94826\t20.816648764635488\t21.108362470061817\t21.22439537837221\t21.037439062994718\t20.623862901050362\t20.637885957511678\t20.907828637962673\t20.946104482850195\n+O94906\t19.86658386516669\t19.6225520815111\t19.71940800574136\t19.80282982980582\t20.155700892782455\t20.23833594168983\t19.875015585018765\t19.799828402785874\n+O95831\t19.368393014683498\t19.478356880357524\t19.435540943580897\t19.49200043099873\t19.183100831156857\t19.321179939342525\t19.380400911298256\t19.21652294914462\n+P00350\t17.445982845969972\t17.258215460666293\t12.824996608706163\t16.7727933274694\t18.53500506497499\t18.678710595548726\t18.01999606718685\t16.96248073253443\n+P00961, P22570\t19.88560203941723\t20.527059770503584\t19.9578581232248\t20.73592480250902\t19.854560247709266\t19.73516719869701\t19.8253881444894\t19.814364413056104\n+P02413\t17.02646765548614\t15.922816149814825\t12.40490769011839\t16.84993989951507\t17.791252831461684\t18.01712029617799\t17.615742136509862\t16.457930812458546\n+P04075\t21.42959310601676\t21.801471734933052\t22.479144044407132\t20.76812531247228\t22.114764844510486\t21.09866219240143\t21.285198547812787\t22.72315491597091\n+P05091\t19.195189557247424\t19.154463147845252\t19.245763410709632\t19.132917551110648\t18.87825454159627\t18.490128679444485\t18.884988470666933\t19.052719476482864\n+P05386\t21.997100208746417\t22.25079594317805\t22.142419398724616\t22.247216901747038\t21.713353771644787\t21.877160945091283\t22.061792137230167\t21.932828712958653\n+P06454\t21.4672010494068\t23.130489978942894\t22.42852037776938\t21.035271651440013\t22.0798375570313\t22.338423546312274\t21.49770599429962\t22.555068233536815\n+P06753\t20.579400629669824\t20.731682716674335\t20.694202047604044\t20.730201909002567\t20.507247785171845\t20.314059076011112\t20.52749633539301\t20.750120172458146\n+P07813\t13.64567258657814\t12.959723924937771\t13.079990828517749\t14.008244926074855\t17.44647289469832\t17.463475815571833\t12.538104361898071\t12.275398751832446\n+P07814\t20.9320719770523\t21.124715254002215\t21.2400'..b'03446064\t19.548858289447775\t19.712134225824826\t19.815626297149134\n+Q9H7E9\t17.90918941590644\t17.766277280931128\t18.36096701228016\t17.895743997822297\t17.527485832178726\t17.769743761360832\t17.537971755556658\t17.798157884953607\n+Q9HCC0\t19.563035919477528\t19.88221135839258\t19.624406971425472\t19.706683431387454\t19.637669223526814\t19.71416259537343\t19.350694023769943\t19.747854290299138\n+Q9HD67\t17.311503426624515\t18.863251531206338\t17.141748428756816\t19.395117023421104\t18.76711019642094\t18.537316009920808\t17.27523405286614\t18.96616617823518\n+Q9NQP4\t18.381992780894073\t18.917342783690636\t18.700815821100313\t18.9449180683599\t18.440197198267427\t18.5006894574546\t18.88945630852811\t18.578373771486596\n+Q9NR56\t17.527467338588085\t17.406266304205605\t17.48732628416503\t17.633310690969264\t17.209498005764317\t16.768806812235862\t18.560553843645334\t20.779573157350768\n+Q9NSD9\t20.260112284508004\t20.33725220720365\t20.374991360751938\t20.41333460024103\t20.064569059225516\t19.914681245402434\t20.29802407402645\t20.26963056914974\n+Q9NVA2\t19.227234525084985\t19.71949336258945\t19.307413066976924\t19.408235002054344\t19.055120825704527\t19.125408379408963\t19.2854800824329\t19.07351494308126\n+Q9NVM6\t16.189775588344876\t15.42492996262315\t15.973049642323907\t16.032155129525865\t15.657127408253032\t16.222355154686813\t15.489195659005436\t15.408822206173735\n+Q9NVZ3\t17.282924195015518\t17.41743525153856\t17.163123243151933\t17.27563593366205\t16.855788767145903\t16.837699064396688\t17.198302561764745\t16.942827001822593\n+Q9NX63\t27.61542358963342\t27.911810556297343\t28.083704552515947\t26.340554792065955\t27.790015233690823\t27.53417616029855\t27.311840374025447\t28.109264195566265\n+Q9P258\t18.854104423391533\t18.783437657094034\t19.063949688427243\t18.564336176957124\t18.751187054309867\t18.30398899082033\t18.85791805991519\t18.542470478717966\n+Q9UBI1\t17.17532443562314\t17.04021875625573\t17.094918834959667\t17.000661650271816\t16.595893302506965\t16.900121883887536\t16.605104013053506\t17.19184634264942\n+Q9UBQ7\t18.497796471827527\t18.66504444587331\t18.54398557657811\t18.459303410008992\t18.556142482175055\t18.488962555856503\t18.560641305258766\t18.473942500808484\n+Q9UDW1\t17.72275179207305\t17.091312832053486\t17.39032748100914\t18.715891835385587\t17.766957888034064\t17.957711114874975\t17.973616070475458\t18.395663919273247\n+Q9UKD2\t17.602054127060505\t17.955546765962904\t17.8901930620816\t17.796521255379435\t17.702438155687524\t19.73275157024674\t17.57861298734829\t17.66750848772918\n+Q9UKV3\t18.350798819361223\t18.54073759450185\t19.38296957984295\t18.26193108227035\t18.44607676424905\t19.19684808765253\t18.226488162442728\t17.950271001595933\n+Q9UQ35\t18.992018492308727\t19.034042869048083\t19.031358461228336\t19.144204924503008\t18.884010264820045\t18.68841686175156\t19.062705172656287\t19.04220998710539\n+Q9UQ80\t19.840453766271562\t22.5208176873743\t19.526427133983372\t22.102332734379736\t19.25251476631551\t19.287204498902398\t19.77455114014043\t19.521747780454486\n+Q9Y277\t19.41170362936939\t19.264298615973612\t19.628662725779577\t19.557115106835187\t19.290475577244873\t19.58643160446498\t19.568766989916277\t19.63580855221468\n+Q9Y3F4\t21.54974061472226\t21.316870873301298\t21.874817977862882\t21.259499602890912\t21.05003163812364\t21.555705382555267\t21.80856975466665\t21.748488663591274\n+Q9Y490\t17.439191543962504\t17.38623899591387\t17.116663080479213\t17.208583108608906\t17.048216319660234\t17.607632907934455\t18.111915202152897\t17.253459102498674\n+Q9Y493\t16.567183814603716\t16.25139665530373\t15.82267523092488\t16.5568554992602\t16.655146313944623\t16.147985709342695\t16.259223151054282\t15.743862954426387\n+Q9Y4L1\t17.970727823088914\t17.685865020656987\t18.484681253289267\t18.10409126860764\t17.955056523539668\t19.269827350823732\t17.946850066265174\t19.140763609160445\n+Q9Y520\t18.470945306148195\t18.540737325069752\t18.964892430347312\t18.11246787159243\t18.263633784457113\t17.9587034962231\t18.103363924927663\t18.217463570844114\n+Q9Y5B9\t16.710544893958957\t17.020808054506446\t16.961379225581133\t17.24296573162254\t17.085438153147674\t16.515083487716716\t16.754906083174312\t16.557829107222858\n'