Looking at the IMP.pmi.restraints.crosslinking.CrossLinkingMassSpectrometryRestraint() source, the only parameters I can see are slope and length, there does
not appear to be any sigma parameter to set an inflection point where the exponential portion of the function tops out. The CrossLinkingMassSpectrometryRestraint score gets evaluated using an IMP.isd.CrosslinkMSRestraint(), where the score is calculated at
IMP.isd.CrossLinkMSRestraint.cpp at line 149 as
-log(get_probability()), where the probability is given a prior of
exp(-slope_*dist) at line 100. Taking a log of an exponent seems to indicate that the score is an
linear function of the distance, where the crosslink length is only taken into account indirectly via the
psi and
pofr variables. When I set the slope parameter as any value much above 0.025, IMP cannot start the simulation, as it results in a
frame 0 score Inf
in the simulation output, due to the unbounded exponential increase in score for far-apart randomly shuffled crosslinks. Using the SigmoidCrossLinkMS to model crosslinks
does work as expected, with an intial S-shaped step increase in score followed by a linear increase. I had to modify the SigmoidCrossLinkMS() class code to take a Hierarchy object instead of a Representation, but it seems to behave much more nicely. Fergal Duffy Center for Infectious Disease Research From: [mailto:]
On Behalf Of Riccardo Pellarin IMP.pmi.restraints.crosslinking.CrossLinkingMassSpectrometryRestraint() is indeed a sigmoidal function modulated by two parameters sigma (inflection) and psi (baselines). The maximal length of the crosslinker is passed through "length=..." in the constructor. There is a linear part, but that is just a soft bias to avoid particles getting dispersed, since the potential is flat at high distance values. The slope of the linear part is 0.01-0.02 Score Unit/ Angstrom, can be changed using "slope=..."
Riccardo Pellarin, PhD =================== Institut Pasteur CNRS UMR 3528 25, rue du Docteur Roux +33 (0)1 44 38 93 63 On Fri, Jun 9, 2017 at 1:41 AM, Fergal Duffy <" target="_blank">> wrote: I am using IMP.pmi to model a protein complex using MS crosslinks. I notice that the IMP.pmi crosslinking function, IMP.pmi.restraints.crosslinking.CrossLinkingMassSpectrometryRestraint(),
scores crosslinks basically as a linear function of crosslink distance. The crosslink length is basically irrelevant here, shorter=better. Ideally, I would like to score crosslinks as a sigmoid function, with crosslinks inside the specified ‘length’ dropping in score. I notice that there is a deprecated SigmoidCrossLinkMS()
function in IMP, which uses an IMP.pmi.SigmoidRestraintSphere to model the crosslinks. Is there a reason this is deprecated? Should I be using it? It seems to offer functionality not available elsewhere. Regards, Fergal Fergal Duffy Center for Infectious Disease Research
|