Sq pk programming

From Jimenez Group Wiki
Jump to: navigation, search


To Do

  • Add the ability to do EA on non HROrg species.
  • Add more web documentation, with specific examples of mass calculations.


To Do Priority

  • Do some sort of smoothing for the peak shape when user uses different left/right parameters.
  • The HR ion mass calculator, Query tool seems to need some sort of initialization before it works.
  • Remove use of HR_specName_list because it is redundant
  • for PMF prep error panel:
    • Jose wants the running median in the time series of the error and noise times series for individual sticks.
    • Do the time series plots differently so that users don't have to change axes
    • Graphs for isotopes hide isotopes
    • In prepping for PMF, nan isotopes
    • Add spike removal similar to what Qi Zhang did?
  • Ask J if we have volunteer for the keeping of the HR list
  • Generate NeighboringHRIonSignal new type of Pika error
  • Pika fitting graph - make it so that the user can resize
  • Doug wants H2O, OH, O and CO to be colored as CO2 in mass spec Org family plots.
  • Create an HR frag check panel
  • Add ability to plot in time series closed baseline sticks.
  • Check that m/z calibration panel works if one run isn't done first.
  • Add K, j41K to default list of ions to fit
  • For the time-varying peak width, have a better errror if the user doesn't select an HR ion that was used.
  • Remove N3 from default list. (Done?)
  • Add code to require and check that HR ions be formatted in a certain way - i.e. disallow H7C5 and require C5H7.
  • Change code so that for todo waves fit with different pw and ps but with the same set of HR ions, one can nicely generate time series or average mass spectra. The code should check that the set of HR ions are the same for different todo waves. If they are the same, then one should be able to proceed.
  • Add code to check that all the HR ions within each frag table element is fit. (Note: this is hard to do because of the recursive nature of frag entries!)
  • Make a Pika-specific airbeam correction?
  • Implement the "resolution" fitting function for the peak width panel as default (Pete's suggestion)
  • Allow including other families (such as SO, NO) in elemental analysis along with HROrg (Puneet & Doug)
  • Tim O made a good suggestion for instances where peaks are not fit (resulting in nans). Perhaps one could compare the squirrel signal at an integer m/z, and if the value is sufficiently small, (the raw spectra shows noise), all the peak height values could be set to 0.
  • We may want to allow a 'smoothly varying' peak width.
  • Change all peak shape candidates to have a 0 entry in the left- and right-most value so that 'peak-shape type baselines' dont' get extended beyond +- 7 PW values.
  • Fully fold in Mike Cubison's sensitivity analysis code.
  • Many parameters panel
    • add small raw spectra insets to left and right
    • add graph showing spectra-like data with window highlighting where you are
    • have run numbers update with cursor move
  • Add ability to duplicate PeakHeights graph and functionality
  • In the m/z calibration panel, currently the width and accuracy vs m/z graphs don't show a summary of all the runs. E.g. the summary of all the peak widths for all the runs with error bars in the peak shape panel very nicely summarizes this information.
    • (Jose) This could be done with a radio button on top of the graph that selects SR/AR (meaning single run / all runs)

To Do (Less Urgent)

  • In HR_peakHeights_gr, change the color of the residuals to be different from the red, orange, brown. Also add squirrel integration regions. Also, add a checkbox to add remove black lines between raw data points.
  • Perhaps shorten the names of some of the new error estimates (Pete)
  • For Pika, we need to incorporate some sort of algorithm that sets the minimum error to be 1 ion.
  • In average mass spec plots (including the 5-graph panel and the elemental analysis) Doug wants a way to 'move' isotopic child HR ions to their parent ion (i.e. j13C would be moved and grouped with the HR ion C.)
  • From the HR_peakHeights_gr, when adding a brand new mass to the table, add a note in the history. Also add a message when adding and removing masses to fit?
  • m/z calibration and masses - We need to subtract the mass of an electron from all our masses. Note from Donna: I want to leave this decision up to the HR list committee (Puneet, Niall, Delphine)
  • Generate 'Neil's graph' whereby we plot as sticks from zero amount of C and H mass as a function of number of Oxygens. Do a similar thing for the number of C's (the amount of H and Os and a function of number of Cs).
  • In PeakWidth/Shape panel, add ability to not do average PW fits using the std dev as weights
  • In the Graph 5 summaries, include one 'bar' type graph showing the fraction of each family to the total.
  • Pika on PToF spectra (gasp!)
  • There is a need to consolidate the three sets of m/z lists that exist into a single one. We currently have the list of m/z possibly used in fits,(1) ones actually selected for HR sticks (2) list of m/z used for m/z calibration, and (3) the list of isolated ions. Each list is a subset of the previous one, and we can work with a single big list, and a series of masks to select / deselect the various m/z for the different purposes.
  • If user only does the m/z calibration and does not play with the HR panel, the code calculating the HR sticks may go awry (maybe - I need to check).
  • Think about NH4 measure vs predicted and RIE for NH4 (Donna: Jose's July 2008 email).
  • Make clear what limitations there are about the total number of masses that can be fit at any m/z value.

To Discuss

  • Errors for input to PMF.


Done in 2010 Users Mtg release:

  • Doug wants a more clear warning when masses not fit (most likely due to nonmonotonicity in peak shape) in one spectra or many.
  • In Diurnal plots, x axis label is on y axis.
  • Remove any mention of "fitting with SQ baseline subtracted in the panel", and replace with "fitting on top of the SQ baseline" (Jose)
  • We need to add camels, dromedaries, and vw "bug" ions to the lists. We need some notation for these ions, let me suggest vw28, vw23, d28, d32, and c28, c32, with the comment column describing what they are. It is important that those are lowercase letters, so people don't confuse these ions with vanadium (V), tungsten (W), and deuterium (D).
  • Jose wants to add other types of errors for folks to plot/use. If the current list of errors is considered to be a,b,c,d, we also want sqrt(a^2+d^2) and sqrt(a^2+b^2+d^2).
  • In HR_PeakHeights graph perhaps color the individual peak shapes to the colors of the families.
  • Begin to implement the HR frag table. W need to introduce the concept of species. For example CO2 would belong partially to an HR-Organic and partially to the HR_air species. This also involves the use of an HR batch table, In this HR batch table users also their own RIE, CE. Note that this is a similar but slightly different concept than the family groupings.
  • Change default behavior so that we have two HR difference sticks one which is found by fitting the raw diff spectra (called HRDiff), and an OpenMinusClosed which is simply the open HR sticks - closed HR sticks.
    • Change the default behavior from fitting difference spectra to only fitting open and closed. James' point at the user's mtg is that we should always be looking at the HR_OpenSticks - HR_ClosedSticks.
    • Jose, 4-Apr-09: disagree with not fitting the diff, I think we should keep fitting it as for some peaks it is much more useful. However we should also show the open-closed fits (not just sticks) in the PIKA window. User should be able disable fitting the diff, and to use the diff results, even if the default it to use the open-closed results.
  • The peak width/shape panel needs tweaks to be more user friendly. The specific changes have not yet been worked out.

Important Bugs fixed since last release

There was an annoying bug that resulted in not being able to choose > 1 mass fragment each for the left and right-side peak shape candidate. The code was fine in 1.05 and using Igor version < 6.10. But in Igor 6.10 there was a compilation error, and the quick fix for Igor 6.10 caused this behavior. You can download PK_peakShape_1_06A.ipf at [1]. It is also downloadable form the main ToF_AMS sofware download site.


To Do Priority

  • The m/z calibration panel is too slow with the individual ion plots for large data sets.
  • Confirm that the fast mode timing is in time acquiring etc diagnostic waves (Tim O's issue).
  • Add the fast ppt link to the wiki
  • Change code to automatically set flag for MSSDiff_p to be not in memory if number of runs > x or in fast mode
  • Add the delay at the start/end of run (Tim O's issue) as a diagnostic wave. It is ParVal 88 (89 counting from 1). For now since it doesn't affect the TimeMSOpen and TimeMSClosed values, I will leave it as an optional parameter.
  • If doing an average mass spectra using the AB correction and the AB correction has nans, the result will be nan - warn the user when this happens (ditto for HR).
  • PToF diurnal time trend graphs or daily profiles?
  • The average mass spec gives different values in the legend depending on whether you truncate sticks to zero or not. - it should be the same!
  • Save PToF DC marker region 1 and 2
  • Deal with doing Avg PToF for DC marker examine plot
  • Review Batch table for PAHs
  • Add code to allow normalization of spectra
  • m/z Cal
    • Change the default of the m/z cal ions, to include more ions than just low m/z and W+ (John S)
    • ability to fix exponent in m/z cal (John S)
    • add warning if exponent is off by more than 0.1% from 0.5 (per John S)
  • In the Baseline panel, average raw spectra section, we need a way to make sure spectra of different ionization types are not averaged together for the display (currently it only distinguishes between v and w).
  • In the Baseline panel, the display shows the stick complement region smoothed twice. (it is fine for the calculation of sticks).
  • The user has the ability to remove entirely a baseline region between two amus and thus grouping two m/z values into one wide stick (Roya's issue). A warning should pop up.
  • Add Doug's threshholding diagnostics and correction factor.
  • Heringa Maarten brought up the issue about smoothing the AB correction factor when users are doing V/W mode switching. The current code does not smooth across V mode runs when users alternate between v and w mode. Some code was inserted in the squirrel panel 1.46D, but has not been implemented into the panel. There needs to be a new field in the AB corrections section of the panel to prevent smoothing across i.e. V-mode runs when adjacent V mode runs are too far apart in time space.
  • Tim O really want to have PToF min and max size regions for PToF operations.
  • Incorporate the CE algorithms as identified by Tim O, Roya, etc
  • Implement Mike Cubison's suggestion of the use of pcurser in creating new todo waves.
  • Change the field analysis to warn users to check for large CO influence in ab correction; provide a sample pre and post AB correction from Tim to demonstrate
  • Add somewhere in the help/faq something about the averaging of raw spectra and the units conversion (Donna - see James email of 11/2007).
  • Doug wants the diagnostic of Closed/Diff sticks. Anything that sticks out as being very high has a different source (CO2, O, K, C).
  • Rework the entire m/z calibration fitting routine so that we fit all plausible peaks (getting peak centers and widths) at the beginning. Then we only need to select which masses to use for the m/z calibration equation.
  • In m/z calibration panel, add vertical red lines for gaussian peak centers. Change black lines to gray. When saving a copy of the m/z calibration settings, write a message to the history window.
  • Manjula had the fantastic idea of including a > and < button when looking at individual m/z calibration peaks (could also be used for individual peak width peaks).
  • In the m/z calibration panel, think about the ability to tweak settings in conditions of high loadings (Mike C).
  • Add the ability to use parentheses as grouping symbols in the todo runs control (i.e. "(todo1 or todo1) and todo3" )
  • A better system for upgrading experiments is needed (stand-alone upgrade ipf).
  • Redo download web page (removing old copies, etc).

To Do (Less Urgent)

  • Add some sort of pre-compiler directive that helps users that don't have the hdf5 xop loaded.
  • Tim O wants the capability to write the frag matricies for import into the DAQ.
  • Doug really likes to have time series graphs be such that grids are on midnight of every day, and labels have day of week inserted.
  • In some data sets, many small intermediate files get written instead of a few big ones. (Some of Mike C's Arctas)
  • Add a note to the help web site that tells what the blue/red progress bars mean.
  • Leah noticed that when doing a recursion check when the frag waves are big (5000 m/z)her computer slowed waaay down. Revisit this functionality for big frag waves.
  • We may want to help folks who want to combine several squirrel experiments in cases, for example, when users have a 2 month campaign. Create a meta-squirrel?
  • Some want the ability to 'shut off' the automatic coloring that happens with a MS time series graph, for example.
  • Add the ability to do weekday/weekend diurnal time series plots (Folks can do this right now by making todo waves that reflect weekday/weekend periods. Still, it would be a convenience.
  • Deal with the popup menus that deal with long strings by using 'reflection'.
  • Doug wants to rename 'AB reference runs' to something else.
  • Make more consistent the todo wave creation scheme whereby users can input "todowave and not 1xxx and not 2yyy" for the todo wave formula
  • Change PToF code so that users have an option to plot the legend (for size distribution graphs).
  • For PToF size distributions, often the size range extends to smaller values than are useful. Add controls so that user can quickly zoom in and out of interested size ranges.
  • Add the ability to calculate diameter mean and median in PToF data (Manjula).
  • Occasionally after preprocessing, the status bar ends saying “Estimating space requirements” rather than “Done” (Donna can't reproduce this)
  • For DC marker corrections, Manjula wants to be able to enter nitrate, and then have squirrel figure out what m/zs this corresponds to.
  • Re-look at IE/AB calculations (Donna - see Tim O's email of Jan 2008).
  • In the diagnostic plots, perhaps the PToF airbeam wave should be nanned whenever the run doesn't have PToF data.
  • In m/z calibration panel, check the possible bug when interpolating across a todo wave.
  • Review todo wave name length limitations.
  • In the m/z calibration panel, make more clear what the nan param button does.
  • From Tim O:During manual (F3) saves, the mass spectral data (e.g. MSOpen_V, MSSOpen_V, etc.) are saved as simple data arrays with the m/z in the rows direction. During autosaving, even if only for one run, these waves are always saved with the m/z in the column (run number in the row dimesion). It turns out that Squirrel can read and process either, just not at the same time. Thus, while he can process the data separately, he cannot ask Squirrel to load and process autosaved data with nonautosaved data interspersed.
  • Incorporate some peak finding code as per Jesse's request.
  • From Ken: In the baseline fitting panel, when scrolling through the baseline fits for all runs in a todo list, add the ability to pause on a chosen run. It would also be great to select the direction in which the run baselines are scrolled - forward or backward.
  • Create Frag table default fragment text waves (Donna - this would would be good for the manual)
  • Tim O's issue with somehow getting the squirrel_index matrix messed up and getting the stick matrix data set being as wide (columns) as the raw spectra matrices. (Donna - is this replicable?)
  • Review the use of t_series_old
  • Review the use of the todo graph.... add checkboxes to remove todo waves?
  • Add code that calculates the mean/median for size distributions (Manjula)
  • Add an upper limit to when we generate normalization factors (current usage is to have user's create custom size interval).
  • Suggestion from Tim O: Since everyone needs to do size calibrations, can we get the fitting function into the squirrel code for use? Ideally, we would have two functions, one to fit velocity vs dva data (typical process for getting size calibration parameters) and one that takes the parameters and calculates the dva from velocity (i.e. same equation, just solved for dva rather than velocity). I can provide you with both, if you wish. I keep finding myself going back to either retype these in all of the time or copying for older *.pxp files.
  • Achim wants the ability to calculate sticks beyond 1000m/z for SP2. (It is a simple code change; Achim knows how to do it. It is not clear how this could be incorporated into squirrel for other users.)

To Discuss

  • Leah mentioned that in the legend for the average mass spectra plots the speciated total values do not use the RIE for each species. They are just the nitrate equivalent sum. Should we change the total values in the legend to reflect the species RIE values? Perhaps just make it more obvious in the legend? Similarly, when one truncates the sticks to zero, should the values in the legend be the sum of the truncated or the pre-truncated values?
  • Normalize w mode to v mode - One diagnostic:the ratio of v and w sticks with the x axis as m/z.
  • Change frag table of sulfate according to suggestion from Ann
    • Current frag_sulphate -> frag_sulphate_old
    • New frag_sulphate doesn't depend on frag_SO3 and frag_H2SO4 (Ann will wori up this new table)
    • Frag_SO3 and H2SO4 are kept in Squirrel for reference and if someone wants to put them back to use, but not used by default
  • Change frag_organics as per Allison's paper
  • Should we allow users to enter a negative value for the PToF vl parameter? (Liz, John J)
  • Should I add PAH to the default list of species? (i.e. in the MS average graphs)


  • Incorporate John S's method for improving m/z calibration using PFT (or PFK) (via a constant power value) 1.49E.
  • Tim O made a good suggestion that we optionally kill some waves in the ms_mats and HR_ms_mats folder when we are done with them. This interface will likely look like a checkbox in the misc tab. (This is a button in the misc tab.) 1.49E
  • In m/z calibration window, include ability to nan parameters only in runs in a todo wave.
  • In the m/z calibration panel we should use the term 'resolving power' instead of 'resolution'.
  • Allow for m/z fitting of PToF data
  • Paul W made the suggestion of naming the intermediate files using all or part of the same name as the experiment (instead of the AMS_intermediate_xx.hdf naming scheme).
  • Redo the Frag Corrections section to have just one big panel with pop-able graphs.
  • In the baseline panel the setting the R0 etc values to default button does not work. (Fixed in 1.49E)
  • The names for the average raw mass spec should be changed to not have the "_all" suffix. (done in 1.47I)
  • Add a button to the misc tab for dumping MSSDiff_p to intermediate files (Tim O Ron Brown data). (done in 1.47I)
  • Users may often run into out of memory issues when performing the Export Matricies in the PToF tab, because results will be #runs * #mz * #sizebins big. Perhaps there should be an option for exporting these matricies, but cutting things off a a max m/z value (150ish?) (done in 1.47I)
  • In the preprocess step, make clear the distinction between using DAQ sticks and recalcing sticks.(fixed in 1.47I)
  • Appending one size distribution on top of another (with a different todo wave) does not work.(fixed in 1.47I)
  • In the modify SI table, perhaps include the TofTypeVKey and TofTYpeWKey waves to help folks know that they are available for use.(done in 1.47I)
  • In baseline panel, when averaging many spectra, if run num > 1e6, temporary waves have an E+ in them (Liz Rainer data) (done in 1.47I).
  • In the MS tab, when one chooses to update an average mass spec plot, the legend should update (done in 1.47I).
  • In the MS tab, perhaps move all the average mass spec controls to the left, and the buttons to the right so that users don't hit one when they mean to hit the other.
  • Tim O's issue with HDF file generating errors for not being able to append to hdf files. The code needs to add the checking of errors generated during the routine closing of hdf files (done in 1.47I).
  • In pre-processing section, change the Diff Sticks = Open Sticks - Closed Sticks to that most users don't use it (Leah W) (done in 1.47I)

Time Trace

Not Urgent

  • Make the quick view program instructions more clear.


To Do

Get the firstBeta release out.


To Do

  • Wait for request from Delphine - nothing to do yet.