使用MSstatsConvert

MSstatsConvert的目的

MSstatsConvert包的成员MSstatstMSstats和MSstatsTMT。它为质谱(MS)数据分析中的步骤创建了一个抽象,这些步骤在数据集可以用于统计建模之前是必需的。简而言之,该包负责从信号处理工具如转换输出OpenMSMaxQuant转换成适合统计分析的格式。这包括:

MSstatsConvert允许将任何MS量化结果转换为所需的格式MSstats而且MSstatsTMT包。此外,它还为输出提供了内置的清洗函数DIAUmpireMaxQuantOpenMSOpenSWATH初期发育ProteomeDiscoverer天际线Spectromine,Spectronaut.这些函数作为转换器函数(称为* toMSstatsFormat* toMSstatsTMTFormat)由MSstats而且MSstatsTMT包。

MSstats数据格式

MSstats系列软件包可用于无标签、SRM和TMT数据集。以下列是必需的。

此外,如果实验涉及到分馏,分数可以添加列来存储分数标签。

日志记录

MSstatsConvert允许基于log4r包中。关于预处理步骤的信息可以写入文件、写入控制台、写入两者或都不写入。的MSstatsLogsSettings功能帮助管理日志设置。用户可以将现有文件的路径传递给log_file_path参数。结合设置append = TRUE,这允许将与特定数据分析相关的所有信息写入单个文件。如果用户没有指定文件,将自动创建一个新文件,其名称以“MSstats_log”开头,后面跟着一个时间戳。

图书馆(MSstatsConvert)# default -创建一个新文件MSstatsLogsSettingsuse_log_file =真正的附加=# default -创建一个新文件MSstatsLogsSettingsuse_log_file =真正的附加=真正的log_file_path =“log_file.log”#开关关闭MSstatsLogsSettingsuse_log_file =附加=#关闭日志和消息MSstatsLogsSettingsuse_log_file =verbose =

方法生成的会话信息跑龙套:sessionInfo ()函数可以保存到文件中MSstatsSaveSessionInfo函数。

MSstatsSaveSessionInfo()

默认情况下,输出文件名将以“MSstats_session_info”开始,并以当前时间戳结束。

导入和清理数据

MS数据处理MSstatsConvert从导入和清洗数据开始。的MSstatsImport函数为可能描述单个数据集的多个文件生成包装器。例如,MaxQuant输出由两个文件组成,而OpenMS只输出一个文件。

maxquant_evidence =read.csv执行“tinytest / raw_data / MaxQuant / mq_ev.csv”包=“MSstatsConvert”))maxquant_proteins =read.csv执行“tinytest / raw_data / MaxQuant / mq_pg.csv”包=“MSstatsConvert”))maxquant_imported =MSstatsImport列表证据=maxquant_evidence,protein_groups =maxquant_proteins),类型=“MSstats”工具=“MaxQuant”(maxquant_imported)#> [1] "MSstatsMaxQuantFiles" "MSstatsInputFiles"openms_input =read.csv执行“tinytest / raw_data / OpenMSTMT / openmstmt_input.csv”包=“MSstatsConvert”))openms_imported =MSstatsImport列表输入=openms_input),“MSstatsTMT”“OpenMS”(openms_imported)#> [1] "MSstatsOpenMSFiles" "MSstatsInputFiles"

getInputFile方法允许用户检索文件:

getInputFile(maxquant_imported“证据”)[1515#>序列长度修改#> 1: AEAPAAAPAAK 11未修改的_AEAPAAAPAAK_#> 2: AEAPAAAPAAK 11未修改的_AEAPAAAPAAK_#> 3: AEAPAAAPAAK 11未修改的_AEAPAAAPAAK_#> 4: AEAPAAAPAAK 11未修改的_AEAPAAAPAAK_#> 5: AEAPAAAPAAK 11未修改的_AEAPAAAPAAK_

作为分析的下一步,将输入文件合并为单个文件data.table的标准化列名MSstatsClean函数。它是一个通用函数,内置支持“MSstatsConvert包的用途”一节中列出的工具的输出。的类型参数等于任意一个MSstatsMSstatsTMT并表明数据是否来自标记的TMT实验。

对于某些数据集,MSstatsClean可能需要在各自的帮助文件中描述的其他参数。对于我们的示例数据集,下面的调用将输入文件合并到一个表中。

maxquant_cleaned =MSstatsClean(maxquant_importedprotein_id_col =“蛋白质”(maxquant_cleaned)肽序列修饰前体电荷#> 1: P06959 AEAPAAAPAAK未修改2#> 2: P06959 AEAPAAAPAAK未修改#> 3: P06959 AEAPAAAPAAK未修改2#> 4: P06959 AEAPAAAPAAK未修改2#> 5: P06959 AEAPAAAPAAK未修改#> 6: P06959 AEAPAAAPAAK未修改#>跑步强度得分#> 1: 121219_S_CCES_01_01_LysC_Try_1to10_Mixt_1_1 4023100 76.332#> 2: 121219_S_CCES_01_02_LysC_Try_1to10_Mixt_1_2 5132500 83.081#> 3: 121219_S_CCES_01_03_LysC_Try_1to10_Mixt_1_3 2761600 104.430#> 4: 121219_S_CCES_01_05_LysC_Try_1to10_Mixt_2_2 4091800 94.465#> 5: 121219_S_CCES_01_06_LysC_Try_1to10_Mixt_2_3 4727000 88.596#> 6: 121219_S_CCES_01_08_LysC_Try_1to10_Mixt_3_2 2258400 90.050openms_cleaned =MSstatsClean(openms_imported)(openms_cleaned)#>蛋白名肽序列#> 1: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 2: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 3: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 4: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 5: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 6: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR# > PrecursorCharge#> 1:3#> 2:3#> 3:3#> 4:3#> 5:3#> 6: 3#> PSM条件#> 1: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_4359.56536443198 Long_HF#> 2: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_6190.04195694402 Long_HF#> 3: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_4359.56536443198 Long_HF#> 4: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_6190.04195694402 Long_HF#> 5: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_6190.04195694402 Long_HF#> 6: .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3_4359.56536443198 Long_HF运行通道强度混合物techrepmix分数#> 1: 21 3_3_3 1 na 3 3_3 3#> 2: 21 3_3_3 1 na 3 3_3 3#> 3: 24 3_3_3 4 na 3 3_3 3#> 4: 24 3_3_3 4 na 3 3_3 3#> 5: 26 3_3_3 6 na 3 3_3 3#> 6: 26 3_3_3 6 1820.072 3 3_3 3

如果用户想要使用MSstatsConvert如果将数据以当前不支持的格式打包,则首先将数据重新格式化为data.table与列ProteinName, PeptideSequence, PrecursorCharge, FragmentIon, ProductCharge(与后两个可能等于NA),运行和同位素类型(在非TMT数据的情况下)或通道(在TMT数据的情况下)。此外,数据集可以包括用于过滤数据集的任何列(例如存储q值的列)。在我们的例子中,这样的附加列是来自MaxQuant文件的“changes”和“Score”。

注释列应该被称为Condition和BioReplicate。对于TMT数据,可以增加mix、techrepmix列。分数应该由分数列表示。

预处理

的目标MSstatsPreprocess功能是将清洗后的MS数据转换为可用于统计分析的格式MSstatsMSstatsTMT包。这个函数接受几个参数,每个参数对应一个预处理步骤。

maxquant_annotation =read.csv执行“tinytest / raw_data / MaxQuant / annotation.csv”包=“MSstatsConvert”))maxquant_annotation =MSstatsMakeAnnotation(maxquant_cleanedmaxquant_annotation,运行=“Rawfile”m_filter =列表col_name =“PeptideSequence”模式=“M”过滤器=真正的drop_column =oxidation_filter =列表col_name =“修改”模式=“氧化”过滤器=真正的drop_column =真正的feature_columns =c“PeptideSequence”“PrecursorCharge”maxquant_processed =MSstatsPreprocessmaxquant_cleaned,maxquant_annotation,feature_columns,remove_shared_peptides =真正的remove_single_feature_proteins =pattern_filtering =列表氧化=oxidation_filter,m =m_filter),feature_cleaning =列表remove_features_with_few_measurements =真正的summarize_multiple_psms =max),columns_to_fill =列表“碎片离子”NA“ProductCharge”NA“IsotopeLabelType”“L”))(maxquant_processed)运行PeptideSequence PrecursorCharge#> 1: 121219_S_CCES_01_01_LysC_Try_1to10_Mixt_1_1 AEAPAAAPAAK#> 2: 121219_S_CCES_01_02_LysC_Try_1to10_Mixt_1_2 AEAPAAAPAAK#> 3: 121219_S_CCES_01_03_LysC_Try_1to10_Mixt_1_3 AEAPAAAPAAK#> 4: 121219_S_CCES_01_05_LysC_Try_1to10_Mixt_2_2 AEAPAAAPAAK 2#> 5: 121219_S_CCES_01_06_LysC_Try_1to10_Mixt_2_3 AEAPAAAPAAK#> 6: 121219_S_CCES_01_08_LysC_Try_1to10_Mixt_3_2 AEAPAAAPAAK强度蛋白质名称条件生物复制实验#> 1: 4023100 p06959 1 1 1_1 l#> 2: 5132500 p06959 1 1 1_2 l#> 3: 2761600 p06959 1 1 1_3 l#> 4: 4091800 p06959 2 2 2_2 l#> 5: 4727000 p06959 2 2 2_3 l#> 6: 2258400 p06959 3 3 3_2 l#> FragmentIon ProductCharge#> 1: na na#> 2: na na#> 3:呐呐#> 4:呐呐#> 5:呐呐#> 6:呐呐# OpenMS - TMT数据feature_columns_tmt =c“PeptideSequence”“PrecursorCharge”openms_processed =MSstatsPreprocessopenms_cleaned,feature_columns_tmt,remove_shared_peptides =真正的remove_single_feature_proteins =真正的feature_cleaning =列表remove_features_with_few_measurements =真正的summarize_multiple_psms =马克斯)(openms_processed)#>蛋白名肽序列#> 1: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 2: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 3: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 4: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 5: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 6: sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> PrecursorCharge PSM条件#> 1:3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_HF#> 2:3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_HF#> 3:3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_HF#> 4:3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_HF#> 5:3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_LF#> 6: 3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3 Long_M运行通道强度混合物techrepmix分数#> 1: 21 3_3_3 1 na 3 3_3 3#> 2: 24 3_3_3 4 na 3 3_3 3#> 3: 26 3_3_3 6 1820.0721 3 3_3 3#> 4: 28 3_3_3 8 445.7412 3 3_3 3#> 5: 25 3_3_3 5 1580.9510 3 3_3 3#> 6: 23 3_3_3 3 1508.3302 3 3_3 3# >碎片离子#> 1: < na >#> 2: < na >#> 3: < na >#> 4: < na >#> 5: < na >#> 6: < na >

注释是通过MSstatsMakeAnnotation函数。它接受清理后的数据集和注释文件作为输入。此外,可以将键-值对传递给该函数,以将注释中的列名(不包括点和其他符号)从值给出的名称更改为键给出的名称。

对于编程应用程序和接口的一致性,过滤是在列表的帮助下完成的。

对于基于数值分数的过滤(例如q值过滤),列表应该包含命名为

例如,要删除小于1的强度,可以将以下列表传递给score_filtering参数:

列表列表score_column =“强度”score_threshold =1方向=“更大的”行为=“删除”handle_na =“删除”fill_value =NA过滤器=真正的滴=

对于基于模式的过滤(例如,去除氧化肽),列表应该包含命名为

对于基于精确值的过滤(例如,去除iRT蛋白),列表应该包含命名为

分数与平衡设计

最后,经过预处理,MSstatsBalancedDesign函数可以应用于处理分数和创建平衡设计。对于无标签和SRM数据,这意味着如果没有提供这些信息,将检测到分馏或技术复制。在多个分数(重叠)中测量的特征将被分配到一个唯一的分数。然后,对数据进行调整,使每个分数内的每个特征都有一行用于特定的运行。如果强度值缺失,则表示为NA

对于TMT数据,将为每个重叠的特征选择一个唯一的分数,并对数据进行调整,以便在每次运行中,每个特征对于每个通道都有一行。如果一个通道缺少强度,则表示为NA

maxquant_balanced =MSstatsBalancedDesign(maxquant_processed feature_columns)(maxquant_balanced)#> ProteinName PeptideSequence PrecursorCharge FragmentIon ProductCharge#> 1 p06959 aeapaaapaak 2 na na#> 2 p06959 aeapaaapaak 2 na na#> 3 p06959 aeapaaapaak 2 na na#> 4 p06959 aeapaaapaak 2 na na#> 5 p06959 aeapaaapaak 2 na na#> 6 p06959 aeapaaapaak 2 na na> isotope elabeltype条件生物复制#> 1 l 11 1#> 2 l 11 1#> 3 l 11 1#> 4 l 2 2#> 5 l 2 2#> 6 l 2#>运行分数强度#> 1 121219_S_CCES_01_01_LysC_Try_1to10_Mixt_1_1 1 4023100#> 2 121219_S_CCES_01_02_LysC_Try_1to10_Mixt_1_2 1 5132500#> 3 121219_S_CCES_01_03_LysC_Try_1to10_Mixt_1_3 1 2761600#> 4 121219_S_CCES_01_04_LysC_Try_1to10_Mixt_2_1 1 2932900#> 5 121219_S_CCES_01_05_LysC_Try_1to10_Mixt_2_2 1 4091800#> 6 121219_S_CCES_01_06_LysC_Try_1to10_Mixt_2_3 1 4727000昏暗的(maxquant_balanced)#> [1] 690昏暗的(maxquant_processed)#> [1] 625 14openms_balanced =MSstatsBalancedDesign(openms_processed feature_columns_tmt)(openms_balanced)#>蛋白名肽序列#> 1 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 2 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 3 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 4 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 5 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#> 6 sp|Q60854|SPB6_MOUSE .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR#>前置充电PSM混合液3 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_33 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_33 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_33 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_33 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_33 .(TMT6plex)AFVEVNEEGTEAAAATAGMM(氧化)TVR_3运行通道BioReplicate条件强度#> 1 3_3 3_3_3 1 21 Long_HF NA#> 2 3_3 3_3_3 2 22规范1068.580#> 3 3_3 3_3_3 3 23 Long_M 1508.330#> 4 3_3 3_3_3 4 24 Long_HF NA#> 5 3_3 3_3_3 5 25 Long_LF 1580.951#> 6 3_3 3_3_3 6 26 Long_HF 1820.072昏暗的(openms_balanced)#> [1] 330昏暗的(openms_processed)#> [1] 370 16

MSstatsBalancedDesign输出是data.frame类的MSstatsValidated.这样一个data.frame将由统计处理函数识别出来MSstats而且MSstatsTMT包作为有效的输入,这将允许它们跳过将数据适合这种格式所必需的检查和转换。