-
Notifications
You must be signed in to change notification settings - Fork 29
Experimental Artifact Suppression Parameters
I've added some new options to try to reign in artifacts. I'll give the fast how-to first and then the long explanation later.
In the Additional Deconvolution Parameters controls in regular UniDec, there are now 4 additional parameters for Z trimming. The basic idea is to constrain the allowed charge state assignments for each data point. UniDec by default allows each data point to be assigned to any number of allowed charges, which is why the core data structure is a matrix with m/z on one dimension and z on the other. These parameters all constrain the Z dimension.
-
Z Trim Top N Charges: The default is 0, which turns this parameter off. By setting the value to >0, it limits the number of non-zero charge states that are allowed per data point. For example, a setting of 3 would allow 3 possible charge states to have positive intensity at each data point. A setting of 1 is the most extreme and will limit each data point to only one allowed charge state assignment. Higher settings than 3 probably won't do much, but you can try them out anyway. A value larger than the total number of possible charge states will be waste computer time.
-
Z Trim Top X%: The default is 0, which turns this parameter off. Setting the value to >0 will remove charge states that are below a threshold intensity. For each data point, the maximum charge state is considered 1. Anything below X% (relative to the max charge state) will be set to 0. This operates only on each data point, ignoring neighboring data points. The idea is that minor charge state assignments for each peak will be zeroed out, which helps remove artifacts. Smaller values will give a more gentle effect. For example, 0.1 will zero out any charge states below 10% relative intensity, but it allows multiple charge state assignment for each data point, provided they have a reasonable intensity. 0.5 is more extreme, and 0.9 will be similar to the Top N of 1, where usually only 1 charge state is allowed per data point. The exception would be for two peaks cases where a data point is almost equally split between two charge states.
-
Z Trim Cut Percent: The default here is 0, which says to actually zero out the intensity for each m/z and z pair that is removed. I put in a softer cutoff option so that you could downplay it by multiplying by this value. In other words, you could set this to 0.1, in which case each intensity flagged by either the top X or top N above would be multiplied by 0.1 instead of multiplied by 0. Thus, it still allows intensity for those spots, just tries to downplay them and watch how the rest of the algorithm factors that in. It's a more Bayesian way of thinking. However, it doesn't seem to work. I'm not sure if it's technical or something in the algorithm, but even very low values that should be effectively the same as 0 give messy results. For now, leave it at 0, but let me know if you find any value in playing with this.
-
Z Trim Start Iteration: The default here is 3, which says to only start applying this filtering after the algorithm has run 3 iterations. It gives the algorithm time to stabilize a bit, finding which charge states should be the highest naturally, before it starts to remove minor assignments. As opposed to the Cut Percent above, this seems to be pretty flexible. Lower values like 0 give the algorithm less time to settle before applying the cutoffs and can be more extreme. Larger values do less and may waste some computational time as it initially settles into one state only for you to then disrupt it and force it resettle. 3 seems to be a good balance in early testing, but there is a lot of leeway here.