Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] feature(protein-prospector): Add new MSstatsPTM converter for protein prospector #100

Open
wants to merge 5 commits into
base: devel
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export(MetamorpheusToMSstatsPTMFormat)
export(PDtoMSstatsPTMFormat)
export(PStoMSstatsPTMFormat)
export(ProgenesistoMSstatsPTMFormat)
export(ProteinProspectortoMSstatsPTMFormat)
export(SkylinetoMSstatsPTMFormat)
export(SpectronauttoMSstatsPTMFormat)
export(annotSite)
Expand Down Expand Up @@ -36,6 +37,7 @@ importFrom(MSstatsConvert,MaxQtoMSstatsFormat)
importFrom(MSstatsConvert,MetamorpheusToMSstatsFormat)
importFrom(MSstatsConvert,PDtoMSstatsFormat)
importFrom(MSstatsConvert,ProgenesistoMSstatsFormat)
importFrom(MSstatsConvert,ProteinProspectortoMSstatsTMTFormat)
importFrom(MSstatsConvert,SkylinetoMSstatsFormat)
importFrom(MSstatsConvert,SpectronauttoMSstatsFormat)
importFrom(MSstatsTMT,MaxQtoMSstatsTMTFormat)
Expand Down
150 changes: 150 additions & 0 deletions R/converters.R
Original file line number Diff line number Diff line change
Expand Up @@ -1612,4 +1612,154 @@ MetamorpheusToMSstatsPTMFormat = function(input,

return(msstats_format)

}


#' Generate MSstatsPTM required input format from Protein Prospector output
#'
#' @author Anthony Wu
#'
#' @param input Input txt peptide report file from Protein Prospector with
#' "Keep Replicates", "Mods in Peptide", and "Protein Mods" options selected.
#' @param annotation data frame which contains column Run, Fraction,
#' TechRepMixture, Mixture, Channel, BioReplicate, Condition.
#' @param input_protein same as `input` for global profiling run. Default is NULL.
#' @param annotation_protein same as `annotation` for global profiling run. Default is NULL.
#' @param use_unmod_peptides If `protein_input` is not provided,
#' unmodified peptides can be extracted from `input` to be used in place of a
#' global profiling run. Default is `FALSE`.
#' @param mod_ids List of modifications of interest. Default
#' is a list with only `Phospho`.
#' Please note that the 'mod_ids' parameter currently supports lists of size 1 only.
#' Future updates aim to extend its functionality to accommodate lists of greater sizes.
#' @param useUniquePeptide TRUE (default) removes peptides that are assigned for
#' more than one proteins. We assume to use unique peptide for each protein.
#' @param removeFewMeasurements TRUE (default) will remove the features that
#' have 1 or 2 measurements across runs.
#' @param removeProtein_with1Feature TRUE will remove the proteins which have
#' only 1 feature, which is the combination of peptide, precursor charge,
#' fragment and charge. FALSE is default.
#' @param summaryforMultipleRows sum(default) or max - when there are multiple
#' measurements for certain feature and certain run, use highest or sum of
#' multiple intensities.
#' @param use_log_file logical. If TRUE, information about data processing will
#' be saved to a file.
#' @param append logical. If TRUE, information about data processing will be
#' added to an existing log file.
#' @param verbose logical. If TRUE, information about data processing wil be
#' printed to the console.
#' @param log_file_path character. Path to a file to which information about
#' data processing will be saved. If not provided, such a file will be created
#' automatically. If 'append = TRUE', has to be a valid path to a file.
#' @return a list of two data.tables named 'PTM' and 'PROTEIN' in the format
#' required by MSstatsPTM.
#' @importFrom MSstatsConvert ProteinProspectortoMSstatsTMTFormat
#'
#' @export
#'
#' @examples
#' input = system.file("tinytest/raw_data/ProteinProspector/Prospector_PhosphoTMT.txt",
#' package = "MSstatsPTM")
#' input = data.table::fread(input)
#' annot = system.file("tinytest/raw_data/ProteinProspector/Annotation.csv",
#' package = "MSstatsPTM")
#' annot = data.table::fread(annot)
#' input_protein = system.file("tinytest/raw_data/ProteinProspector/Prospector_TotalTMT.txt",
#' package = "MSstatsConvert")
#' input_protein = data.table::fread(input_protein)
#' annot_protein = system.file("tinytest/raw_data/ProteinProspector/Annotation.csv",
#' package = "MSstatsConvert")
#' annot_protein = data.table::fread(annot_protein)
#' output <- ProteinProspectortoMSstatsPTMFormat(
#' input,
#' annot,
#' input_protein,
#' annot_protein
#' )
#' head(output)
#'
ProteinProspectortoMSstatsPTMFormat = function(
input,
annotation,
input_protein = NULL,
annotation_protein = NULL,
use_unmod_peptides = FALSE,
mod_ids = c("Phospho"),
useUniquePeptide = TRUE,
removeFewMeasurements = TRUE,
removeProtein_with1Feature = FALSE,
summaryforMultipleRows = sum,
use_log_file = TRUE,
append = FALSE,
verbose = TRUE,
log_file_path = NULL
) {
MSstatsConvert::MSstatsLogsSettings(use_log_file, append, verbose,
log_file_path,
base = "MSstatsPTM_converter_log_")

mod_id = mod_ids[[1]]
input = as.data.table(input)

## Check input parameters
checkmate::assertTRUE(!is.null(input))
.checkAnnotation(annotation, "TMT")
if (!is.null(input_protein)) {
checkmate::assertTRUE(!is.null(annotation_protein))
}

input$Peptide = gsub("TMT[0-9]*plex-", "", input$Peptide) # remove TMT tags
input = input[!grepl("\\|", input$`Protein Mods`),] # filter out rows with uncertainty in protein mods
input$Peptide = gsub(paste0("\\((?!", mod_id, "\\)).*?\\)"), "", input$Peptide, perl=TRUE) # filter out other modifications

protein_id_col = "Acc #"
input = MSstatsPTMSiteLocator(input,
protein_name_col=protein_id_col,
unmod_pep_col = "DB Peptide",
mod_pep_col = "Peptide",
clean_mod=FALSE,
mod_id=paste0("\\(", mod_id, "\\)"),
bracket = "(",
replace_text = TRUE
)

if (use_unmod_peptides){
input_protein = input[input[,..protein_id_col][[1]] == input$ProteinNameUnmod]
annotation_protein = annotation
} else {
input = input[input[,..protein_id_col][[1]] != input$ProteinNameUnmod]
}

input[["DB Peptide"]] = input[[colnames(input)[grepl("new_peptide_col", colnames(input))][[1]]]]
ptm_input = ProteinProspectortoMSstatsTMTFormat(input,
annotation,
useUniquePeptide,
removeFewMeasurements,
removeProtein_with1Feature,
summaryforMultipleRows,
use_log_file,
append,
verbose,
log_file_path)

msstats_format = list(PTM = ptm_input, PROTEIN = NULL)

if (!is.null(input_protein)) {
protein_input = ProteinProspectortoMSstatsTMTFormat(input_protein,
annotation_protein,
useUniquePeptide,
removeFewMeasurements,
removeProtein_with1Feature,
summaryforMultipleRows,
use_log_file,
append,
verbose,
log_file_path)

ptm_input = ptm_input[grepl(mod_id, ptm_input$PeptideSequence),]

msstats_format = list(PTM = ptm_input, PROTEIN = protein_input)
}

return(msstats_format)
}
193 changes: 193 additions & 0 deletions inst/tinytest/raw_data/ProteinProspector/Annotation.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
Run,Fraction,TechRepMixture,Channel,Condition,Mixture,BioReplicate
Z20180612-04_FTMSms2hcd,1,1,Int 126,Young,Mixture1,S1
Z20180612-05_FTMSms2hcd,2,1,Int 126,Young,Mixture1,S1
Z20180612-06_FTMSms2hcd,3,1,Int 126,Young,Mixture1,S1
Z20180612-29_FTMSms2hcd,4,1,Int 126,Young,Mixture1,S1
Z20180612-30_FTMSms2hcd,5,1,Int 126,Young,Mixture1,S1
Z20180612-20_FTMSms2hcd,6,1,Int 126,Young,Mixture1,S1
Z20180612-13_FTMSms2hcd,7,1,Int 126,Young,Mixture1,S1
Z20180612-15_FTMSms2hcd,8,1,Int 126,Young,Mixture1,S1
Z20180612-33_FTMSms2hcd,9,1,Int 126,Young,Mixture1,S1
Z20180612-12_FTMSms2hcd,10,1,Int 126,Young,Mixture1,S1
Z20180612-31_FTMSms2hcd,11,1,Int 126,Young,Mixture1,S1
Z20180612-32_FTMSms2hcd,12,1,Int 126,Young,Mixture1,S1
Z20180612-21_FTMSms2hcd,13,1,Int 126,Young,Mixture1,S1
Z20180612-18_FTMSms2hcd,14,1,Int 126,Young,Mixture1,S1
Z20180612-16_FTMSms2hcd,15,1,Int 126,Young,Mixture1,S1
Z20180612-34_FTMSms2hcd,16,1,Int 126,Young,Mixture1,S1
Z20180612-35_FTMSms2hcd,17,1,Int 126,Young,Mixture1,S1
Z20180612-07_FTMSms2hcd,18,1,Int 126,Young,Mixture1,S1
Z20180612-08_FTMSms2hcd,19,1,Int 126,Young,Mixture1,S1
Z20180612-09_FTMSms2hcd,20,1,Int 126,Young,Mixture1,S1
Z20180612-14_FTMSms2hcd,21,1,Int 126,Young,Mixture1,S1
Z20180619-03_FTMSms2hcd,22,1,Int 126,Young,Mixture1,S1
Z20180612-11_FTMSms2hcd,23,1,Int 126,Young,Mixture1,S1
Z20180612-10_FTMSms2hcd,24,1,Int 126,Young,Mixture1,S1
Z20180619-02_FTMSms2hcd,25,1,Int 126,Young,Mixture1,S1
Z20180612-26_FTMSms2hcd,26,1,Int 126,Young,Mixture1,S1
Z20180612-24_FTMSms2hcd,27,1,Int 126,Young,Mixture1,S1
Z20180612-25_FTMSms2hcd,28,1,Int 126,Young,Mixture1,S1
Z20180612-22_FTMSms2hcd,29,1,Int 126,Young,Mixture1,S1
Z20180612-23_FTMSms2hcd,30,1,Int 126,Young,Mixture1,S1
Z20180612-19_FTMSms2hcd,31,1,Int 126,Young,Mixture1,S1
Z20180612-28_FTMSms2hcd,32,1,Int 126,Young,Mixture1,S1
Z20180612-04_FTMSms2hcd,1,1,Int 127,Young,Mixture1,S2
Z20180612-05_FTMSms2hcd,2,1,Int 127,Young,Mixture1,S2
Z20180612-06_FTMSms2hcd,3,1,Int 127,Young,Mixture1,S2
Z20180612-29_FTMSms2hcd,4,1,Int 127,Young,Mixture1,S2
Z20180612-30_FTMSms2hcd,5,1,Int 127,Young,Mixture1,S2
Z20180612-20_FTMSms2hcd,6,1,Int 127,Young,Mixture1,S2
Z20180612-13_FTMSms2hcd,7,1,Int 127,Young,Mixture1,S2
Z20180612-15_FTMSms2hcd,8,1,Int 127,Young,Mixture1,S2
Z20180612-33_FTMSms2hcd,9,1,Int 127,Young,Mixture1,S2
Z20180612-12_FTMSms2hcd,10,1,Int 127,Young,Mixture1,S2
Z20180612-31_FTMSms2hcd,11,1,Int 127,Young,Mixture1,S2
Z20180612-32_FTMSms2hcd,12,1,Int 127,Young,Mixture1,S2
Z20180612-21_FTMSms2hcd,13,1,Int 127,Young,Mixture1,S2
Z20180612-18_FTMSms2hcd,14,1,Int 127,Young,Mixture1,S2
Z20180612-16_FTMSms2hcd,15,1,Int 127,Young,Mixture1,S2
Z20180612-34_FTMSms2hcd,16,1,Int 127,Young,Mixture1,S2
Z20180612-35_FTMSms2hcd,17,1,Int 127,Young,Mixture1,S2
Z20180612-07_FTMSms2hcd,18,1,Int 127,Young,Mixture1,S2
Z20180612-08_FTMSms2hcd,19,1,Int 127,Young,Mixture1,S2
Z20180612-09_FTMSms2hcd,20,1,Int 127,Young,Mixture1,S2
Z20180612-14_FTMSms2hcd,21,1,Int 127,Young,Mixture1,S2
Z20180619-03_FTMSms2hcd,22,1,Int 127,Young,Mixture1,S2
Z20180612-11_FTMSms2hcd,23,1,Int 127,Young,Mixture1,S2
Z20180612-10_FTMSms2hcd,24,1,Int 127,Young,Mixture1,S2
Z20180619-02_FTMSms2hcd,25,1,Int 127,Young,Mixture1,S2
Z20180612-26_FTMSms2hcd,26,1,Int 127,Young,Mixture1,S2
Z20180612-24_FTMSms2hcd,27,1,Int 127,Young,Mixture1,S2
Z20180612-25_FTMSms2hcd,28,1,Int 127,Young,Mixture1,S2
Z20180612-22_FTMSms2hcd,29,1,Int 127,Young,Mixture1,S2
Z20180612-23_FTMSms2hcd,30,1,Int 127,Young,Mixture1,S2
Z20180612-19_FTMSms2hcd,31,1,Int 127,Young,Mixture1,S2
Z20180612-28_FTMSms2hcd,32,1,Int 127,Young,Mixture1,S2
Z20180612-04_FTMSms2hcd,1,1,Int 128,Young,Mixture1,S3
Z20180612-05_FTMSms2hcd,2,1,Int 128,Young,Mixture1,S3
Z20180612-06_FTMSms2hcd,3,1,Int 128,Young,Mixture1,S3
Z20180612-29_FTMSms2hcd,4,1,Int 128,Young,Mixture1,S3
Z20180612-30_FTMSms2hcd,5,1,Int 128,Young,Mixture1,S3
Z20180612-20_FTMSms2hcd,6,1,Int 128,Young,Mixture1,S3
Z20180612-13_FTMSms2hcd,7,1,Int 128,Young,Mixture1,S3
Z20180612-15_FTMSms2hcd,8,1,Int 128,Young,Mixture1,S3
Z20180612-33_FTMSms2hcd,9,1,Int 128,Young,Mixture1,S3
Z20180612-12_FTMSms2hcd,10,1,Int 128,Young,Mixture1,S3
Z20180612-31_FTMSms2hcd,11,1,Int 128,Young,Mixture1,S3
Z20180612-32_FTMSms2hcd,12,1,Int 128,Young,Mixture1,S3
Z20180612-21_FTMSms2hcd,13,1,Int 128,Young,Mixture1,S3
Z20180612-18_FTMSms2hcd,14,1,Int 128,Young,Mixture1,S3
Z20180612-16_FTMSms2hcd,15,1,Int 128,Young,Mixture1,S3
Z20180612-34_FTMSms2hcd,16,1,Int 128,Young,Mixture1,S3
Z20180612-35_FTMSms2hcd,17,1,Int 128,Young,Mixture1,S3
Z20180612-07_FTMSms2hcd,18,1,Int 128,Young,Mixture1,S3
Z20180612-08_FTMSms2hcd,19,1,Int 128,Young,Mixture1,S3
Z20180612-09_FTMSms2hcd,20,1,Int 128,Young,Mixture1,S3
Z20180612-14_FTMSms2hcd,21,1,Int 128,Young,Mixture1,S3
Z20180619-03_FTMSms2hcd,22,1,Int 128,Young,Mixture1,S3
Z20180612-11_FTMSms2hcd,23,1,Int 128,Young,Mixture1,S3
Z20180612-10_FTMSms2hcd,24,1,Int 128,Young,Mixture1,S3
Z20180619-02_FTMSms2hcd,25,1,Int 128,Young,Mixture1,S3
Z20180612-26_FTMSms2hcd,26,1,Int 128,Young,Mixture1,S3
Z20180612-24_FTMSms2hcd,27,1,Int 128,Young,Mixture1,S3
Z20180612-25_FTMSms2hcd,28,1,Int 128,Young,Mixture1,S3
Z20180612-22_FTMSms2hcd,29,1,Int 128,Young,Mixture1,S3
Z20180612-23_FTMSms2hcd,30,1,Int 128,Young,Mixture1,S3
Z20180612-19_FTMSms2hcd,31,1,Int 128,Young,Mixture1,S3
Z20180612-28_FTMSms2hcd,32,1,Int 128,Young,Mixture1,S3
Z20180612-04_FTMSms2hcd,1,1,Int 129,Old,Mixture1,S4
Z20180612-05_FTMSms2hcd,2,1,Int 129,Old,Mixture1,S4
Z20180612-06_FTMSms2hcd,3,1,Int 129,Old,Mixture1,S4
Z20180612-29_FTMSms2hcd,4,1,Int 129,Old,Mixture1,S4
Z20180612-30_FTMSms2hcd,5,1,Int 129,Old,Mixture1,S4
Z20180612-20_FTMSms2hcd,6,1,Int 129,Old,Mixture1,S4
Z20180612-13_FTMSms2hcd,7,1,Int 129,Old,Mixture1,S4
Z20180612-15_FTMSms2hcd,8,1,Int 129,Old,Mixture1,S4
Z20180612-33_FTMSms2hcd,9,1,Int 129,Old,Mixture1,S4
Z20180612-12_FTMSms2hcd,10,1,Int 129,Old,Mixture1,S4
Z20180612-31_FTMSms2hcd,11,1,Int 129,Old,Mixture1,S4
Z20180612-32_FTMSms2hcd,12,1,Int 129,Old,Mixture1,S4
Z20180612-21_FTMSms2hcd,13,1,Int 129,Old,Mixture1,S4
Z20180612-18_FTMSms2hcd,14,1,Int 129,Old,Mixture1,S4
Z20180612-16_FTMSms2hcd,15,1,Int 129,Old,Mixture1,S4
Z20180612-34_FTMSms2hcd,16,1,Int 129,Old,Mixture1,S4
Z20180612-35_FTMSms2hcd,17,1,Int 129,Old,Mixture1,S4
Z20180612-07_FTMSms2hcd,18,1,Int 129,Old,Mixture1,S4
Z20180612-08_FTMSms2hcd,19,1,Int 129,Old,Mixture1,S4
Z20180612-09_FTMSms2hcd,20,1,Int 129,Old,Mixture1,S4
Z20180612-14_FTMSms2hcd,21,1,Int 129,Old,Mixture1,S4
Z20180619-03_FTMSms2hcd,22,1,Int 129,Old,Mixture1,S4
Z20180612-11_FTMSms2hcd,23,1,Int 129,Old,Mixture1,S4
Z20180612-10_FTMSms2hcd,24,1,Int 129,Old,Mixture1,S4
Z20180619-02_FTMSms2hcd,25,1,Int 129,Old,Mixture1,S4
Z20180612-26_FTMSms2hcd,26,1,Int 129,Old,Mixture1,S4
Z20180612-24_FTMSms2hcd,27,1,Int 129,Old,Mixture1,S4
Z20180612-25_FTMSms2hcd,28,1,Int 129,Old,Mixture1,S4
Z20180612-22_FTMSms2hcd,29,1,Int 129,Old,Mixture1,S4
Z20180612-23_FTMSms2hcd,30,1,Int 129,Old,Mixture1,S4
Z20180612-19_FTMSms2hcd,31,1,Int 129,Old,Mixture1,S4
Z20180612-28_FTMSms2hcd,32,1,Int 129,Old,Mixture1,S4
Z20180612-04_FTMSms2hcd,1,1,Int 130,Old,Mixture1,S5
Z20180612-05_FTMSms2hcd,2,1,Int 130,Old,Mixture1,S5
Z20180612-06_FTMSms2hcd,3,1,Int 130,Old,Mixture1,S5
Z20180612-29_FTMSms2hcd,4,1,Int 130,Old,Mixture1,S5
Z20180612-30_FTMSms2hcd,5,1,Int 130,Old,Mixture1,S5
Z20180612-20_FTMSms2hcd,6,1,Int 130,Old,Mixture1,S5
Z20180612-13_FTMSms2hcd,7,1,Int 130,Old,Mixture1,S5
Z20180612-15_FTMSms2hcd,8,1,Int 130,Old,Mixture1,S5
Z20180612-33_FTMSms2hcd,9,1,Int 130,Old,Mixture1,S5
Z20180612-12_FTMSms2hcd,10,1,Int 130,Old,Mixture1,S5
Z20180612-31_FTMSms2hcd,11,1,Int 130,Old,Mixture1,S5
Z20180612-32_FTMSms2hcd,12,1,Int 130,Old,Mixture1,S5
Z20180612-21_FTMSms2hcd,13,1,Int 130,Old,Mixture1,S5
Z20180612-18_FTMSms2hcd,14,1,Int 130,Old,Mixture1,S5
Z20180612-16_FTMSms2hcd,15,1,Int 130,Old,Mixture1,S5
Z20180612-34_FTMSms2hcd,16,1,Int 130,Old,Mixture1,S5
Z20180612-35_FTMSms2hcd,17,1,Int 130,Old,Mixture1,S5
Z20180612-07_FTMSms2hcd,18,1,Int 130,Old,Mixture1,S5
Z20180612-08_FTMSms2hcd,19,1,Int 130,Old,Mixture1,S5
Z20180612-09_FTMSms2hcd,20,1,Int 130,Old,Mixture1,S5
Z20180612-14_FTMSms2hcd,21,1,Int 130,Old,Mixture1,S5
Z20180619-03_FTMSms2hcd,22,1,Int 130,Old,Mixture1,S5
Z20180612-11_FTMSms2hcd,23,1,Int 130,Old,Mixture1,S5
Z20180612-10_FTMSms2hcd,24,1,Int 130,Old,Mixture1,S5
Z20180619-02_FTMSms2hcd,25,1,Int 130,Old,Mixture1,S5
Z20180612-26_FTMSms2hcd,26,1,Int 130,Old,Mixture1,S5
Z20180612-24_FTMSms2hcd,27,1,Int 130,Old,Mixture1,S5
Z20180612-25_FTMSms2hcd,28,1,Int 130,Old,Mixture1,S5
Z20180612-22_FTMSms2hcd,29,1,Int 130,Old,Mixture1,S5
Z20180612-23_FTMSms2hcd,30,1,Int 130,Old,Mixture1,S5
Z20180612-19_FTMSms2hcd,31,1,Int 130,Old,Mixture1,S5
Z20180612-28_FTMSms2hcd,32,1,Int 130,Old,Mixture1,S5
Z20180612-04_FTMSms2hcd,1,1,Int 131,Old,Mixture1,S6
Z20180612-05_FTMSms2hcd,2,1,Int 131,Old,Mixture1,S6
Z20180612-06_FTMSms2hcd,3,1,Int 131,Old,Mixture1,S6
Z20180612-29_FTMSms2hcd,4,1,Int 131,Old,Mixture1,S6
Z20180612-30_FTMSms2hcd,5,1,Int 131,Old,Mixture1,S6
Z20180612-20_FTMSms2hcd,6,1,Int 131,Old,Mixture1,S6
Z20180612-13_FTMSms2hcd,7,1,Int 131,Old,Mixture1,S6
Z20180612-15_FTMSms2hcd,8,1,Int 131,Old,Mixture1,S6
Z20180612-33_FTMSms2hcd,9,1,Int 131,Old,Mixture1,S6
Z20180612-12_FTMSms2hcd,10,1,Int 131,Old,Mixture1,S6
Z20180612-31_FTMSms2hcd,11,1,Int 131,Old,Mixture1,S6
Z20180612-32_FTMSms2hcd,12,1,Int 131,Old,Mixture1,S6
Z20180612-21_FTMSms2hcd,13,1,Int 131,Old,Mixture1,S6
Z20180612-18_FTMSms2hcd,14,1,Int 131,Old,Mixture1,S6
Z20180612-16_FTMSms2hcd,15,1,Int 131,Old,Mixture1,S6
Z20180612-34_FTMSms2hcd,16,1,Int 131,Old,Mixture1,S6
Z20180612-35_FTMSms2hcd,17,1,Int 131,Old,Mixture1,S6
Z20180612-07_FTMSms2hcd,18,1,Int 131,Old,Mixture1,S6
Z20180612-08_FTMSms2hcd,19,1,Int 131,Old,Mixture1,S6
Z20180612-09_FTMSms2hcd,20,1,Int 131,Old,Mixture1,S6
Z20180612-14_FTMSms2hcd,21,1,Int 131,Old,Mixture1,S6
Z20180619-03_FTMSms2hcd,22,1,Int 131,Old,Mixture1,S6
Z20180612-11_FTMSms2hcd,23,1,Int 131,Old,Mixture1,S6
Z20180612-10_FTMSms2hcd,24,1,Int 131,Old,Mixture1,S6
Z20180619-02_FTMSms2hcd,25,1,Int 131,Old,Mixture1,S6
Z20180612-26_FTMSms2hcd,26,1,Int 131,Old,Mixture1,S6
Z20180612-24_FTMSms2hcd,27,1,Int 131,Old,Mixture1,S6
Z20180612-25_FTMSms2hcd,28,1,Int 131,Old,Mixture1,S6
Z20180612-22_FTMSms2hcd,29,1,Int 131,Old,Mixture1,S6
Z20180612-23_FTMSms2hcd,30,1,Int 131,Old,Mixture1,S6
Z20180612-19_FTMSms2hcd,31,1,Int 131,Old,Mixture1,S6
Z20180612-28_FTMSms2hcd,32,1,Int 131,Old,Mixture1,S6
Loading
Loading