weizhenFrank / DeepPhospho

MIT License
5 stars 2 forks source link

Fragment type and normalization in intensity model #11

Open HR-RH opened 1 year ago

HR-RH commented 1 year ago

您好,我想请问下数据中的 "b10+1-1,H2O;2,H3PO4": 10.445889999999999”, 其中的2,H3PO4有什么含义?

gureann commented 1 year ago

这个fragment是b10,正一价,失一个水和两个磷酸基团,谱图相对强度是10.445% 在-号后面的部分是用;分隔的多个中性丢失,只有一个丢失的时候没有;,如果一个丢失也没有就也不加-

HR-RH commented 1 year ago

"b7+1-1,H3PO4": 16.82709, "b7+2-2,H3PO4": 13.477979999999999, "b7+1-1,H2O;2,H3PO4": 10.81006, 这样看代码里面的意思是,前面b7离子失去的磷酸基团个数,后面都会加入到再失去一个中性分子的b7离子,是这样理解吗?但是文章中输出的8个类型的离子组成,请问文章的结果会包含这个种类型的输出吗?

gureann commented 1 year ago

"b7+1-1,H3PO4": 16.82709, "b7+2-2,H3PO4": 13.477979999999999, "b7+1-1,H2O;2,H3PO4": 10.81006

最后的模型里没有用失水和氨的离子,磷酸基团丢失也只考虑一个,这里面的后两个离子会直接删除,不会把强度加在其它离子上

HR-RH commented 1 year ago

哦哦谢谢,那请问这样处理的原因是什么呢?

gureann commented 1 year ago

因为磷酸修饰肽段的谱图里大多数碎片还是没有中性丢失或者失一个磷酸基团的,而且我们的数据集里不是所有的谱图都标注了两个磷酸基团丢失的碎片,最后为了统一就只用了现在的八种

HR-RH commented 1 year ago

哦哦,谢谢您答复的如此快

HR-RH commented 1 year ago

您好,再请问一个问题哈。在归一化离子强度时,是用的该肽段所有的大于0的碎片离子的最大值来归一化吗?但是如上所说在结果中只是预测的8种 碎片离子,这样是合理的吗

gureann commented 1 year ago

是这样的,一个precursor里最强的fragment的intensity会标准化到1,如果这个fragment不在8种里的话会让对应的intensity matrix里最大值不是1 这里其实考虑的是即使模型没有cover某些强度可能很高的fragment,我们还是让模型学习每个fragment在整个fragmentation pattern中能获得的相对强度 这样的好处是保证每一条训练数据是一致的,比如有precursor 1和precursor 2,precursor 1的最终intensity matrix最大值是0.9,但是precursor 2刚好是1,那么如果把precursor 1的最大值也标准化到1,其实从肽段序列到最终输出的映射对两个precursor并不是一致的,因为模型学到的是一种fragmentation pattern,也就是一个碎片相对整个碎裂过程获得的相对强度

HR-RH commented 12 months ago

您好,请问参数add_phos_principle的含义是什么呀?

gureann commented 12 months ago

用这个参数会检查一遍输入的训练数据里磷酸基团丢失的碎片是不是符合要求的,这个主要是因为当时的Spectronaut(好像是14)结果里会出现一些没有磷酸修饰的碎片但是标记成丢失磷酸基团,比如一个肽段第四个残基是ph修饰的,但是Spectronaut结果里可能会有b3-98这种碎片

HR-RH commented 12 months ago

哦哦,谢谢 那参数two_stage呢?

gureann commented 12 months ago

用这个参数的话会有两个loss function,除了mse这样直接计算预测误差,增加的一个loss用来计算预测出有强度的离子是不是应该出现(如果一个谱图里某个离子是没有强度的,用这个loss是希望预测结果里这个离子也不应该出现),不过默认的这个额外loss的权重是0,所以这个参数现在虽然默认true但是没有什么用

HR-RH commented 12 months ago

嗯嗯好的,谢谢你的回答

HR-RH commented 11 months ago

您好,请问文章中报告的关于RPE1 DIA RT的结果是根据数据集Data/RT_TestData/20201010-RT_Holdout-RPE1_DIA-seed0_811.txt、Data/RT_TestData/20201010-RT_Test-RPE1_DIA-seed0_811.txt、Data/RT_TestData/20201010-RT_Train-RPE1_DIA-seed0_811.txt数据集来的吗?

gureann commented 11 months ago

是的,最后在holdout上做的测试

HR-RH commented 11 months ago

谢谢回答,请问文章是如何对不同的数据集的驻留时间进行对其的啊?再请教一下,如果需要把不同的数据集混合起来,必须要把驻留时间对其吗

gureann commented 11 months ago

这个要看具体目的了,如果一定要把多个数据集合并大多数情况应该都需要对齐 文章里是没有显式的对齐操作的,RT模型训练的时候是在多个数据集上顺序进行的,library合并的时候通过完整预测整个library里peptide的RT间接对齐了一个library里的RT分布 RT对齐其实是一个比较困难的操作,特别是大规模数据RT偏移可能非常大,如果一定要做可以先尝试一个比较简单的方法,用peptide最多的run顺序校准其它run,校准可以用分段线性拟合,一般10段就可以,具体可以根据LC条件调整

HR-RH commented 11 months ago

"b7+1-1,H3PO4": 16.82709, "b7+2-2,H3PO4": 13.477979999999999, "b7+1-1,H2O;2,H3PO4": 10.81006

最后的模型里没有用失水和氨的离子,磷酸基团丢失也只考虑一个,这里面的后两个离子会直接删除,不会把强度加在其它离子上

您好,请问这里说的 "这里面的后两个离子会直接删除,不会把强度加在其它离子上", 是指存在于数据集中,会参与 离子强度的归一化(统计最大值时),只是最后不预测他们的离子强度吗?

gureann commented 11 months ago

是的,归一化的时候用了输入数据集里的所有离子,之后实际训练和预测都只包含设定的几种离子,其它离子都是忽略的

HR-RH commented 11 months ago

b2;b3;b4;b6;b8;b9;b2-NH3;b3-NH3;b4-NH3;b6;b7;b8;b9;b6-H2O;b6-NH3;b8-NH3

{'b2+1-Noloss': 3000000.0, 'b3+1-Noloss': 500000.0, 'b4+1-Noloss': 200000.0, 'b6+1-Noloss': 70000.0, 'b8+1-Noloss': 400000.0, 'b9+1-Noloss': 300000.0, 'b2+1-1,NH3': 200000.0, 'b3+1-1,NH3': 200000.0, 'b4+1-1,NH3': 50000.0, 'b6+1-1,H3PO4': 400000.0, 'b7+1-1,H3PO4': 50000.0, 'b8+1-1,H3PO4': 500000.0, 'b9+1-1,H3PO4': 700000.0, 'b6+1-1,H2O;1,H3PO4': 100000.0, 'b6+1-1,NH3;1,H3PO4': 200000.0, 'b8+1-1,NH3;1,H3PO4': 100000.0,} 1.请问这种情况中,最后的b6-H2O;b6-NH3;b8-NH3,为什么也失去了H3PO4呢? 2.为什么maxquant给出的强度值很大,而训练的强度值较小,是做了什么处理吗? 感谢您的耐心回答

gureann commented 11 months ago

maxquant的结果里排在*后面的离子是已经失了一个H3PO4再减去标注出来的H2O或者NH3的,排在前面的只有标注的丢失

训练的时候强度都按最大值scale到小于等于1了