Open PMSeitzer opened 2 years ago
To start, ensure that all the right ion series are computed, and that this works in the PlainModel
and the HyperFragModel
.
NL and b- and y- ions should be exclusively for HyperFragModel
and PlainModel
- need to say this in the paper.
Use same dataset as #12 , but with hyper_frag_v2.ini
and plain_v2.ini
Carry out this work on issue-11
.
Fragmentation distributions are created here: https://github.com/SchweppeLab/CometCIDS/blob/issue-11/comet-ms/CometSearch/CometSearch.cpp#L2877-L2881
Currenly, only b-
and y-
ions are being created:
https://github.com/SchweppeLab/CometCIDS/blob/issue-11/comet-ms/CometSearch/PeptideFragmentation/MakeMS2/peptidemass.cpp#L63-L89
Need to add support for other distributions, and NL.
Then, PlainModel
and HyperFragModel
should respect these ion series, and add fragments appropriately.
This code should all be tested very carefully - for instance, it would be good to know how use_c_ions
and use_z_ions
are being used currently.
Finally, don't forget to consider https://github.com/SchweppeLab/CometCIDS/blob/issue-11/comet-ms/CometSearch/CometPostAnalysis.cpp#L104-#L202, as it looks like there may be some consideration of c-
and z-
ions.
Using branch issue-14-ions
Note that CometSearch::SearchForPeptides()
, which populates _pdAAforward
and _pdAAreverse
. This traces all the way back into CometMassSpecUtils::GetFragmentIonMass()
It appears that CometSearch::GetFragmentIonMass()
contains the ability to convert forward, reverse ions already. The trick being that _pdAAforward
is the same as ION_SERIES_B
, while _pdAAreverse
is the same as ION_SERIES_Y
.
ion series are correctly handled here: https://github.com/SchweppeLab/CometCIDS/blob/main/comet-ms/CometSearch/CometSearch.cpp#L1764-L1798
Currently, fragmentation masses are determined as a vector of masses, e.g.
<b1,b2,b3,b3...>
. The index of the position in the vector is used to determine the length of the peptide. However, if there are NLs intermixed in the vector, this assumption is no longer true<b1, b1-NL, b2, b2-NL, ...>
. This will lead, at least, to theHyperFragModel
associating the wrong distributions to the various fragment ions.At the very least, need to understand how fragment masses are generated, and properly handle neutral losses.