ToF-AMS Analysis Toolkit v1.63 November 4, 2019 release Notes by Donna Sueper 15 Nov 2018 New functionality: Removed obsolete controls within the indexing section. Within the Misc tab, added buttons to pull up directories within the operating systems for the DAQ files and the intermediate files. Within the Misc tab, added the functionality to generate diurnal traces of any wave within the root directory. Add two Si masses to default m/z calibration ion fits: C5H15O3Si3+, C7H21O4Si4; by default they are not chosen to be used. Added code for better font consistency across platforms. ----SQ_AMSPanel---- New functions: * gen_setFont A generic way to set fonts for panels. * sq_makeRawPToFtodo() A generic way to create a todo wave listing runs that have raw PToF data indexed. * sq_CheckMonotonicityInFileList Consolidated the checking for run number monotonicity in this stand-alone function. * sq_ApplyDeltaLogDiam Consolidated the use of applying the dlogdt calculation. * sq_plot_ptof1_im Small change to accomodate HR data. * sq_butt_IECalTable Fixed a small typo. * sq_fragPanel_check_Display Added simple sanity check. * sq_appendFragWave Added simple sanity check. * sq_correctSamplingTimeUnit Added a sanity check when the sampling interval is 0 (should not happen). * sq_checkSamplingTimeValsPToF A companion to sq_checkSamplingTimeVals which is used for MS data. * gen_igor7Str Generic code to ensure that waves etc are still Igor 7 compatible and are not ungodly long. * sq_butt_GoToSquirrel Generic code for going to a spot in the Squirrel panel. * sq_GoToSquirrel Does the work of sq_butt_GoToSquirrel * sq_butt_diurnalCalc Very generic function for diurnal calcs and plotting. * gen_CalcDiurnal Does the calc part of sq_butt_diurnalCalc. * gen_DiurnalBoxPlot Does the plotting part of sq_butt_diurnalCalc. * sq_ColorizeTrace Generic colorizing for sq_butt_diurnalCalc * ColorizeTraceProto Proto function for colorizing diurnals. * getSpeciesColorProto Used in colorizing diurnals. * sq_getSpeciesColor Used in colorizing diurnals. Modified functions: *sq_globalsHDFIndex Removed the use of global variables ams_timestamp and load_savint_units & the drop down menu which indicates if the time stamp for runs is the end of the run. The DAQ code will never change. Changed the defaults for preprocessing ePToF sticks and ePToFSum sticks. *sq_globalsMisc Added globals and code to generate any diurnal trend from wave within root. * sq_ams_panel Broke up this huge function into smaller functions (one for each tab) for general maintenance. *sq_butt_getSquirrelIndex Added check to see that run numbers within hdfs were monotonically increasing before actually loading any new files. * sq_initializeAfterGetIndex Added call to sq_makeRawPToFtodo for cases where one has raw ePToF data. * sq_remapWavesAfterMoreRuns After one has added more runs via the get index, fixed the code to handle various cases where subsequent waves (i.e. from the m/z calibration) need to be resized. * sq_makeTodoallMS Changed the default behavior such that if runs do not have any MS data (i.e. only ePToF) warnings are not thrown. * sq_file2SquirrelIndex Slightly changed the checking for run number monotonicity & closed the hdf file for easier debugging. * sq_butt_pre_process Various bits of code were modified regarding ePToF data. An error is thrown if the user wants to deconvolve ePToF data in any way other than the matrix inversion. * sq_makeRawSpectraGroups Added a case for where one has only raw ePToF data and no raw MS data (for a selected todo). * sq_ck_preProcess Of the various checkboxes within the preprocess section, consolidated and updated the view/disable cascade of options. * sq_Hz Now multithreaded; not a huge time saver but some. * sq_fillBlanks Now multithreaded; not a huge time saver but some. * sq_butt_credits Simply consolidated code. * sq_butt_corrections Added a check for time stamps for really old DAQ hdf files. * sq_checkMzFittingWaves Added another check for bad parameters. * sq_ms_airbeamCorr When there are multiple or mislabeled detector schemes code now handles this more gracefully. * sq_butt_MS_Calc Simple code cleanup. Small modification for plot options update/do nothing * sq_MSCalcPlot_Diurnal Significantly overhalled to consolidate code for generate diurnal calculations. * sq_butt_ToFConc Change for average mass spec for ePToF data. * sq_PToFePToF_Tool Cleanup. * sq_PToF_calcsection Cleanup. * sq_DeconvolveCheckProc Cleanup. * sq_setTof0_PToFePToFtitle Cleanup. * sq_HideEPToFControls The functionality is obsolete; cleanup. * sq_initializeDeconvolveRadio The functionality is obsolete; cleanup. ----SQ_Backbone---- Commented out code for journaling, as this was never fully operational. (sq_journal_new & sq_journal_end). ----SQ_MSconc---- * sq_ApplyFragWaves Bug fix for ImageTransform operation of 3D data set with only one run. ----SQ_MzCalBkgd---- *mz_butt_smoothAvgParams Added code to make smoothing of mz parameters less problematic. * mz_AppendParamControls Set defaults to the case where one does not have different mz params for open and closed. * bk_smoothcompliment For non-tofware style smoothing, slightly changed the algorithm for better stick complement (baseline) smoothing. * bk_ck_showDiffComp Hiding trace fix for baseline waves. ----TW_bslSmUnit---- No change. ----TW_ePTOFQ---- TWEPToF_setDva Correction to get Dva sizes the same when comparing ePToF and PToF. ----TW_ePTOFQ---- No change. ----------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.61 New functionality: * Displaying raw PToF spectra improved. * Various small bugs were fixed. ------- SQ_AMSPanel------- New functions * sq_getMSWaveForPToFNorm Extracted from sq_butt_ToFConc. * sq_PTOFnormTraces Extracted from sq_butt_ToFConc. * PToF_GrCaveat Returns string to warn users that they haven't subtracted DC markers. * gen_DrawVertLines Generic code for drawing vertical lines on the bottom axis. * sq_getRunPos Generic code for getting the series position, given the run number. * gen_SetDimLabels Generic code for setting dimension labels. * gen_getWinLTRB Generic code for getting window dimensions. * gen_MoveIt Generic code for moving windows adjacent. Modified functions * sq_butt_getSquirrelIndex Added code to optionally hide ePToF controls. * sq_t_series_map Fixed bug having to do with adding more runs. * sq_applyDCmarkers Added code for out of bounds errors. * sq_dcMarkersExamine Added the DC marker graph before aborting (when problems arise). * sq_butt_DVaGraph This is now optionally called from the HR PToF data set panel, code cleanup. * sq_GetPToFParams Added chamber length to list of params. * sq_plot_ptof1_av Added parameters for easy adoption for HR PToF data. * sq_plot_ptof1_im Added parameters for easy adoption for HR PToF data. *sq_dbase Added to to ensure custom diameter base is within the root folder. * sq_getThisRawMS_viaFetch Added a parameter for a single PToF bin so that it doesn't redimension badly. * sq_getThisRawMS Added the ability to get one PToF raw spectra * sq_fragPanel_check_Display Fixed bug in displaying various waves in the UMR frag panel. * sq_appendFragWave Fixed bug in displaying various waves in the UMR frag panel. * sq_fragList_convert Eliminated UserDefinedFrag code. * sq_MS_concentrationPTOFDiff Now use DVa_wave to access parameters. * sq_GetModifiedTimes Added an additional check for when users add runs. * sq_updateMSLists No longer add HR PToF data sets to UMR set ofoptions for plotting raw spectra. * sq_PToFstick Fixed a bug when recalcing baseline sticks. * sq_butt_ToFConc Changed in several places to accomodate use by HR PToF. Extracted the normalization code to be its own function. * sq_CorrectPToFTimeForTWDecon Modified for variable oversampling values. ------- SQ_FragDiag------- * squirrel_hdf_write Added a safety check for intermediate files. ------- SQ_FragDiag------- No change. ------- SQ_MS conc------- * sq_MS_concentration Added ePToF_twflag for supporting tw deconvolution. UserDefinedHzWaves code eliminated. * sq_ApplyFragWaves Added a matDFStr and ug_op flag to support HR data. ------- SQ_MzCalBkgd ------- Rearranged some code so that all the mz stuff was at the beginning. Modified functionality: * mz_makeMzCal_Waves() Changed the default number of points to fit for several ions. * mz_calibrationPanel Cosmetic changes. * bk_getPToFForBaselinePanel Added an average flag. * bk_createBackgroundValues Handles raw PToF data better. ------- TW_TW_bslSmUnit ------- No change. ------- TW_ePToF ------- No change. ------- TW_ePTOFQ ------- No change. ToF-AMS Analysis Toolkit v1.61 June 8, 2018 release Update since ToF-AMS Analysis Toolkit v1.60 New functionality: * The Baseline panel was overhauled. Old functionality rearranged, and a new Tofwerk raw spectra baseline algorithm is added (see below). This calculates better, mostly lower baselines and is most useful when generating raw spectra baselines with low signal, such as at higher m/zs raw PToF spectra. An encrypted ipf named TW_bslSmUnit has been added to the existing set of ipfs. The ability to lock the y-axis when browsing through different runs was also added to the baseline panel. * Users can now export 2D raw spectra matricies that have been aligned to the same m/z axis (see the new button in the MS tab). * Users can now opt to temporarily suspend progress bar updates, which can speed up pre-processing times by 20% (see the checkbox in the Misc tab, Odds & Ends section. * For fast mode data, partial fast cycles at the very beginning and end of the experiment will use the closest MS Closed data for preprocessing. Modified functionality: Recalculating UMR sticks now ~ 30% faster ----------------------------------------------------------------------------------------------------- The Tofwerk baselin algorthm The “smooth” baseline is a mass-calibration-independent algorithm based on a smoothed moving-average of the MS. It is robust in the sense that it is not perturbed by spurious peaks and works with poorly-defined calibration, but is not truly statistically correct in that it may not pass exactly through the middle of the baseline noise for each peak. Methodology The methodology pertaining to the Tofware "smooth" baseline is described in Timonen et al., Atmos. Meas. Tech., 2016. · A low-pass filter is applied to the MS to remove noise. · A moving average is taken over the entire manipulated spectrum using a window defined by the width parameter. · The lowest point in each moving average is taken as the baseline; the result is heavily smoothed. · An estimate of the noise in the baseline is generated by comparing multiple short sections of the MS where no peaks are present; this value, multiplied by the noise scaling parameter (default 1), is added to the smoothed moving average in order to "push" the baseline up to lie in the centre of the noise. This methodology has the advantage that · a moving average is insensitive to the position of the ion peaks in the MS; the mass calibration is broadly unimportant · it is very ease to tune but has the disadvantage that · a single estimate of the noise is applied to the entire spectrum ; the baseline can have the tendency to lie slightly below or above the true "centre of the noise" position · it does not capture the baseline well in regions adjacent to very large signals; small peaks with very large neighbours (4 order magnitude larger or so) will tend to have their MS baseline underestimated As this method is robust and easy to use, it is recommended to use it unless you require intensity inaccuracies of less than 1%. Tuning the width parameter The width parameter (which has arbitrary units) that best fits your data depends on the mass resolution of the spectrometer, good starting points are: ETOF: 40 CTOF: 25 HTOF: 15 LTOF: 8 A smaller width parameter will capture large changes in signal amplitude better than a larger value; however, at some point the baseline will tend to ride up the ion peaks as the moving average window becomes too small. Other parameters The scaling factor can be tuned to better pass the baseline through the MS noise; look in a region with low signal to best see the effect. It is not recommended to tune the lo-pass filter options. ----------------------------------------------------------------------------------------------------- ------- SQ_AMSPanel------- New: * sq_pop_tof1_datatype Used for PTof x diameter type, in anticipation of use with HR PToF * sq_checkRunInfoMonotonicity Isolated code that was in sq_file2SquirrelIndex * sq_CorrectPToFTimeForTWDecon For aligning in PToF time space the matrix and tw deconvolution methods * gen_RemoveItemsInListFromList For use with HR ions * gen_setDimLabelFromTextwave By user request, for exporting HR 2D sticks * sq_initializeDeconvolveRadio Deconvolution radio buttons appear in several places * gen_AddOrRemoveLastChar For HR mostly * gen_DoSaveFileDialog Added for 2D raw spectra * sq_completePartialFastCycles Uses sq_FillBlanksPartialCycles to determine if we need to extend MS closed to partial cycles * sq_FillBlanksPartialCycles Uses sq_PartialFastCycle for the very first and the very last fast cycle * sq_PartialFastCycle Does the work! Modified: * sq_globalsMS Added some code for saving 2D raw spectra on the same m/z axis * sq_ams_panel Added some code for saving 2D raw spectra on the same m/z axis * sq_initializeAfterGetIndex Rearranged the order of some functions to deal with ePToF data & added a high m/z sanity check * sq_makeToDoAllVW Added a global variable isL to indicate if the ToF is a long ToF * sq_makeToDoAllPToF Added a check for DAQ version & time actually spent in PToF mode to flag for possible non-existence of PToF data * sq_file2SquirrelIndex Added flag to trip if HDF5 file could not be open or if RunInfo data set does not exist. Added code to check if time stamps are duplicated (rare) * sq_butt_pre_process Added call to bk_TofwerkBLGlobals to prepare for TW baseline usage code to optionally suspend progress bar updates, did code cleanup * sq_initializeDeconvolveRadio Isolated code that switches between regular PToF and ePToF * sq_create_MS_PToF Changed to allow different oversampling for ePToF data * sq_diffCalc Now checks for nans in both MS open and MS closed data sets * sq_fillBlanks Added a check for rare index_pos = -1 * sq_preProcessEPToF Added more info for when EPToF sticks values are < 0 * sq_getToDoWaves Removes todo waves that have length 0 * sq_butt_appGraphDefs Rearranged much of this code (in the Misc tab) for nicer user experience *sq_applyDCmarkers Added optional parameter PTossibleTimeAvg to allow users to average PToF runs in DCmarker graph * sq_butt_PToFDCGr_show Added code to initialize for ePToF better *sq_GetPToFParams Added optional parameters, code to align in PToF time the tw deconvolution with matrix inversion * sq_fix_ePToF_t0 Fixed PToF time of the tw deconvolution with matrix inversion * sq_PToFstick Allows use of tw baseline algorithm * sq_MSstick Significant Code rewrite! Allows use of tw baseline algorithm and the new structure UMR_integration * sq_butt_MS_Calc Added code to export 2D raw spectra * sq_MSCalc_avgStick Added sanity checks for max m/z * sq_MSCalc_avgRaw Added code to calculate 2D raw spectra * sq_applyGraphDefs Rearranged code for nicer user experience * sq_butt_ToFConc Code cleanup * sq_calc_PTOFimage_stats Code cleanup * sq_dbase Added sanity checks * sq_getParamStr Fixed bug of using the Total (UMR) species and the use of CDCE correction waves in the batch table * sq_findMaxMinSQIndex Minor bug fix for strange data * fm_butt_DefineCycles Fixed a minor bug with the first cycle and fast cycles of length 1 * fm_butt_makeFirstFastToDos Added a statement ot the history window showing some runs removed * sq_getNewDiagValuesList Be default, new waves are now double precision * sq_FindRawMzBase Code cleanup * sq_CreateRandom Modified code to use Igor version 7's StatsSample * sq_PToF_DCGr_setVar_mz Code cleanup for ePToF * sq_ePTOF_DCMarker_viewings Removed smoothing options for ePToF matrix deconvolution * sq_DCGr_UpdateRunNumParams Added code for tw deconvolution PToF t0 * sq_PToF_DCGr_butt_plotDC Minor display bug fix for using all m/zs in region 1 that are not in region 2 * sq_EPToFDeconvolve2D Added code for ePToFSum normalization * sq_EPToFDeconvolve3D Added code for ePToFSum normalization * sq_GetMajorFileVersion Added code to exit gracefully if error * sq_EPToFMake2DSequenceInv Added code for when oversampling !=2 * sq_ChangeFastClosedTime For fast mode data, when averaging fast closed and overwriting, reset the time spent in fast closed to get better errors (Pedro) * sq_GetModifiedTimes Changed code for fast mode closed - see sq_ChangeFastClosedTime * sq_FindAdjacentRunsWithNoData Found bug for interpolating MS closed for ePToF only runs * sq_FillInMSClosedPToFOnly Now works for raw and sticks * sq_ePToFfromDAQ No longer assumes oversampling of 2 * sq_URLButton Added link to PAH paper Removed: * sq_addCntrl_RunsFromCsrs Very old, no longer used * sq_makePToFDiamCenterPts No longer used ------- SQ_Backbone------- * squirrel_fetch Made some temporary waves free and multithreaded some wave assignments for speed ------- SQ_FragDiag------- No change ------- SQ_MzCalBkgd------- New: * bk_TofwerkBLGlobals Generates width, filter globals *bk_butt_setTWToDefault Resets tofwerk baseline parameters * bk_TofwerkBLGlobals Generates globals for tw baslines * sq_UMR_integration Now performs the UMR stick generation!! * Structure UMR_integration To allow less repition of important integration code * bk_twbaseline Interface for the tofwerk baseline code * bk_ck_useLinearOrSplineOrTw Can now handle tw baselines Modified: * mz_butt_beginMzFitting Added a check for max m/z Changed code to use Raw spectra groups to remove error of potentially reaching max mz * mz_calcFitOneMassSpec Added a check for max m/z *mz_butt_fitThisRun Added a check for fast mode data so users don't think something is wrong *bk_createGlobalsBaseline Added globals for TW baseline * bk_BaselinePanel Significantly rearranged * bk_slider_mzAxis Now prompts user to recreate panel * bk_ck_SliderOrSetVar Now prompts user to recreate panel * bk_butt_viewManyBaselines Can now handle tw baselines * bk_butt_calcBkFit Can now handle tw baselines * bk_fitStickCompliment Significantly overhauled, can now handle tw baselines * bk_setUpRawSpectraThisRun Added an optional parameter to allow the use of an averaged todo * bk_ck_leftAxisLog Set a minimum non negative value as a safely when using log axis * bk_butt_calcBkFit Can now handle tw baselines * bk_createBackgroundValues Can now handle tw baselines * bk_setVar_DiffYAxis Minimum value now -25% of max * bk_populate_RawSpectraGraph() Removed a few traces that weren't all that useful * bk_autoAxis Now works for x and y axis * sq_GetPToFPointNums Added sanity checks for PToF * bk_ck_useLinearOrSpline Reworked for options when user wants to set Bl to zero beyond mz X * bk_setVar_mzStartStop Changed for more intuitive interface ------- SQ_MSconc------- New functions: * sq_2dMSRawExport Button function added in MS tab for exporting raw spectra that are on the same m/z base * sq_MS_doExport_avgRaw2D Function that does the work of sq_2dMSRawExport * sq_MzMapping Helper function for sq_MS_doExport_avgRaw2D Modified functions: * sq_sparsemult Added sanity check for mz size * sq_ApplyFragWaves Added a check for when index_pos[p]<0 ------- TW_ePToF------- Modified: * TWEPToF_globals Added optional parameter for the default oversampling value of 2, but added the option for this value to be >2 * TWEPToF_displayGr Because the eptof_oversampling wave has nonzero values when NOT in ePToF mode, added code to determine correct oversampling for real ePToF * TWEPToF_setDva Changed to add the DVa_wave parameter * TWEPToF_runSetVar Generates DVa_wave sooner * TWEPToF_updateVals Changed to add the DVa_wave parameter * TWEPToF_GetThisMatrix No longer presumes a oversampling value of 2 * TWEPToF_DoOtherDecon No longer presumes a oversampling value of 2 * TWEPToF_matDecon No longer presumes a oversampling value of 2 * TWEPToF_subtractTest Corrected a bug * TWEPToF_initializeNonePToF Generated a new wave calculating TW PToF time (disucssions with Leah and Mike C about PToF bin centers and edges) ------- TW_ePToF------- Modified: * deconv2d No longer presumes a oversampling value of 2 * tw_ePTOF_fastDeconvolve1D No longer presumes a oversampling value of 2 * tw_debug Commented out a call for a specific function in the tofware HDF xop ToF-AMS Analysis Toolkit v1.60 June 19, 2017 release Update since ToF-AMS Analysis Toolkit v1.59 ------- TW_ePTOFQ------- * deconv2d Undecommented out the normFactor line * tw_ePTOF_fastDeconvolve1D Changed global variable from PToF_DCgr_MikeNormalization to PToF_DCgr_ePToFSumDiffScaling Undecommented out the norm_flag lines ------- TW_ePToF------- * Removed the ability to show some plots via the AMS-Misc menu as they are too confusing isolated from the main TW deconvolution graph * TWEPToF_globals Initialized root:TWEPToF:mz to 28 so folks wouldn't be confused * TWEPToF_SetDimLabels Changed dimension label to scalar instead of 'scal' * TWEPToF_displayGr * Modified graph label * TWEPTOF_initialzeValDisplay Added two more value displays * TWEPToF_setDva Fixed a typo regarding number of PToF bins * TWEPToF_goButt NOw updates a popped graph it exists * TWEPToF_mzSetVar Updated new waves SmMxInvBkgd, MxInvBkgd * TWEPToF_runSetVar Updated param for call to sq_TodoHasPToF * TWEPToF_updateVals Added display of oversampling value * TWEPToF_GetThisMatrix Updated param for call to sq_TodoHasPToF * TWEPToF_FetchMatrix Updated param for call to sq_TodoHasPToF * TWEPToF_NanMatr Updated new waves SmMxInvBkgd, MxInvBkgd,Bkgd * TWEPToF_DoOtherDecon Updated new waves SmMxInvBkgd, MxInvBkgd,Bkgd * TWEPToF_matDecon Updated new waves SmMxInvBkgd, MxInvBkgd,Bkgd * TWEPToF_subtractTest Updated new waves SmMxInvBkgd, MxInvBkgd,Bkgd * TWDeconvParamMz_displayGr Added a control bar and variable to indicate which run data represents ------- SQ_MzCalBkgd------- * mz_createGlobalsMzCalibration Changed default of root:mzFitting:mz_LiveUpdate to 1 * mz_reSizeMzCalWaves Added a killwaves/z tempwave * bk_BaselinePanel Cosmetic change. * bk_setVar_resolutionParam Added checks for initial conditions * bk_createStickComplimentMask Adds checks to see if we are in m/z range * bk_getPToFForBaselinePanel Adds checks to see if we are in m/z range * bk_ck_PToFMS Added check for ePToF data * bk_getSumPToFForBaselinePanel Added check for ePToF data ------- SQ_MSconc------ * sq_MS_concentration Added code to avoid out of index errors for mapping - New code was confirmed and tested by James. * sq_make_map Added code to avoid out of index errors for mapping - New code was confirmed and tested by James. * sq_err_calc Consolidated code for determining which time waves to use. * sq_findIntegrationWidthNs Added code to avoid out of index errors for mz_start ------- SQ_FragDiag------- No change. ------- SQ_Backbone------- * sq_findIntegrationWidthNs Added code to avoid out of index errors ------- SQ_AMSPanel------- New functions: * sq_ShortPToFTimesTable Added to help users diagnose possible problem runs * sq_CheckTimeWavesForNans Added to help users diagnose possible problem runs * sq_fix_ePToF_t0 With help from Leah, finally got this straightened out * sq_appendFragWave In the HROrg_check panel the tables that displayed sections of the UMR frag table were messed up. * sq_butt_PToFReg1Only Added an option to use Region 1 only for PToF DC markers (for users who didn't go out far enough in the PToF time dimension * sq_PToF_Region1Check Updates display when users opt for Region 1 only for DC marker mzs * sq_GetModifiedTimes Consolidated place where time waves were modified for use in calculating errors * sq_GetDAQTimes Consolidated place where time waves were retrieved for use in calculating errors * sq_PToFRegion1UserOption Control function for when user opts all other mzs to be region 1 only * sq_HideEPToFControls Isolated this code for main panel display * sq_GetDvaFromPToFBins Returns complex value containing dvaStart,dvaStop * sq_FindHRPToFEdges Similar to sq_FindHRPToFEdges, only in PToF time space * sq_butt_allSavedParams New button in Misc tab for getting table of text waves containing all DAQ saved parameters (ComParValText, etc) * Constant ePToFMaxDVaNm = 5000 Somewhat arbitrary cutoff for max DVa so that size plots don't go to infinity Deleted functions: * sq_PToF_ug_CheckProc Haded been in use since 1.52 * sq_PToF_NormSanity Haded been in use since 1.52 * sq_PToF_diamAxisPopMenu Haded been in use since 1.52 * sq_EPToFFastDeconvolve1D Replaced with faster MatrixOP * sq_AMSSize Not officially in use yet * ePToF_ChangeFastClosedTime All time changes are now performed in sq_GetModifiedTimes() * fm_ChangeFastClosedTimeInFastO All time changes are now performed in sq_GetModifiedTimes() * PToFePToF_ToolYesTW Consolidated * PToFePToF_ToolNoTW Consolidated * sq_butt_ePToF Consolidated * sq_TimingTable Now with other code that checks time. Modified functions: * sq_globalsGeneral I noticed during function profiling that alot of time was being taken to update the words above the progress bar. This option now in the misc tab can disable the words from showing (and enable it again) * sq_globalsHDFIndex New global root:panel:PToF_DCgr_ePToFSumDiffScaling * sq_globalsCorrections New global root:panel:ptof_dcRegion1Allnot2 * sq_globalsPToF Eliminated global root:panel:DCgr_ck_alsoSmooth", 0) * sq_ams_panel Added new control for ptof_dcRegion1Allnot2, sq_butt_allSavedParams, don't display progress text * sq_ams_stat_upd Added check for new global root:panel:Update_ams_sqprog * sq_pop_airbeam_mz_set Added an alert so that folks remember to press the button "Reset airbeam to m/z button" *sq_timebase_check Added check to make sure entered values are >=0 * sq_ck_abAutoSet Rewrote help string * sq_butt_getSquirrelIndex Cleaned up message printed to history for 'new' runs * sq_makeToDoAllPToF Added code to display sq_ShortPToFTimesTable() * sq_butt_pre_process Significant rewrite to organize situation of ePToFNoMSClosedFlag and for ePToF/ no PToF etc * sq_findBlanksFetch Added important Sort fillblank_blanks,fillblank_blanks for end of fetch * sq_ck_preProcess Modified for all the combinations of ePToFSum etc. * sq_diffCalc Added sanity check for when ColClosed==0 * sq_fillBlanks Now added check for when Index_pos is <0 * sq_insert_Matrix Added check for when ePTOFSumDiff scaling is checked but deconvolveMike is not * sq_diagnostics Rearranged code so that time wave checks are done if Get Diagnostics is pressed again * sq_diag_list_init Changed the code for old DAQ version, ionSingleStr_auto * sq_pop_toDoList Double checks that the selected todo wave still exists (in case it was killed) * sq_toDoGr_butt_Init Removed unneccessary check for plotting * sq_butt_corrections Now uses sq_GetModifiedTimes() to check times for errors * sq_setAB Adds a wave not for indicating which mz was used. * sq_ms_airbeamCorr Added killwaves/z root:ABtodoTemp Attempted to add code for alerting users if they didn't preprocess all their MS data yet, but too problematic * sq_applyDCmarkers Added code for root:panel:ptof_dcRegion1Allnot, writeFlag * sq_dcMarkersExamine Cleaned up by use of sq_GetPToFParams * sq_butt_DVaGraph Added code for root:panel:ptof_dcRegion1Allnot * sq_DVaGraph_SetVar Code cleanup * sq_GetPToFParams Added coAdd param * sq_stickCalcPrepRegion Added check for when binarysearchInterp returns neg value * sq_PToFstick Uses maxMz instead of root:diagnostics:mFinish * sq_MSstick Uses maxMz root:diagnostics:mFinish * sq_butt_MS_Calc Added code to ensure users preprocessed raw spectra if requesting raw spectra result * sq_MSCalcPlot_Avg Doesn't reset list of species to display as all * sq_MSCalc_avgStick For instance of fast open during fast closed, won't return nans * sq_MSCalc_avgRaw Cosmetic legend change * sq_diurnalIndex Fixed out of index error * sq_MSCalc_Diurnals Fixed out of index error * sq_butt_ToFConc Added a hiCut variable for unreasonably large DVa for ePToF * sq_plot_ptof1_im Consolidated code with the use of sq_GetPToFParams * sq_makePToFDiamCenterPts Consolidated code with the use of sq_GetPToFParams * sq_update_diagPlot Cosmetic change with text10, Filament Emission * sq_run2panel Added check to see that the current graph marquee is a time wave * sq_dbase Added code for out of index error * sq_create_todo Modified to make sure todo name is legal, not "end" for example * sq_fragPanel_check_Display Added code for HROrgCheck panel table instance * sq_fragPanel_make Tightened code for HROrgCheck panel table instance * sq_populateFragTable Tightened code for HROrgCheck panel table instance *sq_ABsanity Added check that corr_fact wave actually has nonNans * sq_TasksForPMFOutput Does a check for ams_time_saved * sq_PToF_DCGr_setVar_mz Added code for root:panel:ptof_dcRegion1Allnot2 * sq_PToF_DCGr_FetchMatrix Added check for testRegion<0.9 * sq_ePTOF_DCMarker_viewings Added code for DCgr_smoothVar * sq_DCGr_UpdateRunNumParams Added code to account for update sq_GetPToFParams * sq_PToF_DCGr_butt_plotDC Added code for root:panel:ptof_dcRegion1Allnot2 * sq_PToFDCgr_GetThisMatrix Added check for testRegion<0.9 * sq_appendDCregions Cleaned up code with use of sq_GetPToFParams *sq_CreatePhaseDepCE Cosmetic changes * sq_checkPToFparamsSameTodo Added detector_Num for potentially bad case of users having SP and EI PToF data * sq_populate_DVaDiamGraph Cosmetic change * sq_MS_concentrationPTOFDiff Error in the number of points of log_d_base_tmp * sq_EPToFDeconvolve2D Code cleanup * sq_DCMarkerGr Code cleanup * DC_RecalcDeconvlButtonProc Code cleanup * sq_SetePToFExists Fixes pToF_t0 * tw_ea_makeMDTilePlot Code cleanup * sq_checkSamplingTimeVals Use sq_GetModifiedTimes() now * sq_FixFastModeTimesDAQ34 Commented out sq_makeTodoallMS() * sq_createTableTimeWaves Table is now named "TimeTable" * sq_PToF_panelsection Now doesn't create a duplicated panel * sq_PToF_calcsection Code cleanup * sq_ePToF_panelsection Code cleanup * sq_ePToFWaveNote Dealt with root:panel:DCgr_ck_alsoSmooth * sq_ePToF_2DsmoothCol Added filterfir/lo to the smooth * sq_setTof0_PToFePToFtitle Added code for whether in PToF or ePTOF * sq_EPToFScaling Fixed typos DVa_wave[%t0] + p*DVa_wave[%step] * sq_iterateOverList Added code for MSSStickflag ----------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.57 Notes by Donna Sueper 9 Jan 2017 * Tested on Igor 7 * ePToF deconvolutions in two new tw_* ipfs. * New preprocessing interface. * Can now use todo wave for AB reference period, instead of continuous run range. * UMR error generation error fixed. ------- SQ_AMSPanel------- New Global constants: Constant ePToFFractionOpen = 0.503937 // 64/127 Constant ePToFMultipleFactor = 1.98438 // = 1/0.503937 New functions: sq_fixTotalTimeElapsedInRun * For fast mode runs and some few versions of the DAQ this parameter not calculated correctly. sq_indexCheckForRunMonotonicity * Checks for monotonicity sq_makeRawSpectraGroupsePToFSum * For use within preprocessing. sq_setTof0_PToFePToFtitle * On the main squirrel panel, PToF tab, indicates to the user if/how ePToF data was deconvolved. sq_Pieber_ButtonProc * Link to Pieber paper. sq_createTableTimeWaves * To assist users for different DAQ versions and fast mode issues when generating errors using time spent in different modes. sq_dcMarkersExamine_ePToF * Takes the place of sq_dcMarkersExamine for ePToF runs. fm_FastOnlyCycles * Helps with determining if ePToF is between fast cycles. fm_setFmPreProcessWave * Creates and sets a wave in the diagnostic folder that indicates what kind of fast mode preprocessing was done. sq_PToF_DCGr_FetchMatrix * For use with ePToF data. TWDeconExists * Initially checked to see if encrypted code present. TWEPToF_SetDimLabelsProto * For use with Mike C Tofwerk stuff. DCgr_erase * For data with PToF and ePToF. sq_updateMSLists * Creates and stores global strings to indicate what kind of data i.e. MSSDiff and/or ePToF sum MS exists. sq_ePToF_SetDeconvolveType * Indicates which kind of deconvoltion if any was performed in preprocess. sq_isRunePToF * Quick true/false function. sq_FindAdjacentRunsWithNoData * For use with epToF and no MS Open sq_FillInMSClosedPToFOnly * For use with epToF and no MS Open sq_ReturnePToFFlags * Generic helper function returns lots of info about PToF settings for todo. sq_updatePrefix * Helper function for main panel. fm_SaveTimeAvg * Used for saving time averaged in fast closed. fm_ChangeFastClosedTimeInFastO * Used for saving time averaged in fast closed. sq_populate_ePTOFDCMarkerGr * Major overhaul to accomodate ePToF sq_nSecMSsamplingIntervalConst() * To help speed up things if data is constant. sq_ePToFfromDAQ As a part of the ePToF overhaul. * sq_URLButton Added URL for PAH paper * sq_EPToFScaling Code cleanup * sq_iterateOverList Added code for max m/z sanity check * sq_FindHRPToFEdges Code cleanup Modified functions: sq_globalsHDFIndex * Added new parameters for preprocessing ePTof and PToF checkboxes and options. sq_updateMSLists * Added globals for additional ePToF deconvolutions. sq_globalsMisc * Added dontColorTraces as checkbox in misc tab for time series graphs that would normally get overwritten by automatic colors (i.e. Org = green) sq_ams_panel * New preprocessing selection of data tab interface. * New PToF interface for use with ePToF data. * Added a link to Pieber paer for CO2 correction. sq_tabControl * Added new parameters for preprocessing ePTof and PToF checkboxes and options. sq_butt_getSquirrelIndex * Automatically tries other hdf index if first try of .h5 does not succeed. * If duplicate runs are detected, then a table pops up with the region of problems indicated. * For DAQ files taken with MajorDaqVersion<4 an error will pop up indicating that the timing (i.e. time spent in MS Open) may be faulty. sq_initializeAfterGetIndex * Sets some ePToF flags and corrects some waves that were problematic in the very first DAQ versions using ePToF. sq_remapWavesAfterMoreRuns * Added some ePToF waves for situations where the user added more runs after initial getIndex. sq_makeTodoallMS * Added optional displayFlag for help with ePToFSum data. sq_makeToDoallSlowMS * Modified for situations where we have only ePToF and MS Closed... do not have 'real' MSSDiff data. sq_fileCheck * Modified to prompt for missing file. sq_butt_pre_process * Majory overhauled for concise, nimble preprocessing of ePToF data sets. sq_ck_preProcess * On the main squirrel panel, the preprocessing checkboxes rely on certain data sets i.e. raw ePToF being checked. sq_Hz * Added code to speed things up with Pulser and Single Ion are constant. sq_MS_preprocess * Major overhaul to accomodate ePToF sq_diffCalc * Allows for 'weighted' diff of ePToF and MS Closed. sq_fillBlanks * Added sanity checks so uses chould preprocess fast mode data without having to explicitly open the panel (for pedro) sq_insert_Matrix * Overhaul to accomodate ePToF sq_preProcessEPToF * Previous versions of the function enabled lots of things we dont' do anymore. sq_butt_diagUpdate * Gives a warning to users that waves will be overwritten and a message printed to history. sq_CreateAttTextWaves * Fixed a small bug that ended up creating a duplicate copy of DAQ hdf attribute text waves. sq_diagnostics * Added a wave called root:diagnostics:timeResolvedBuffers. This is useful for a DAQ mode Doug W was jonesing for... to see more precisely how repeated the frist bufferss responded to open and closed switching. sq_diag_list_init * Added DAQVersionFix, DAQVersionFixMinor, PToF_delay_us, timeResolvedBuffers, HeaterBiasReadOrSet sq_butt_appGraphDefs * Added option for dontColorTraces sq_butt_corrections * Added sanity check for error calculations, and time spent in MS open and MS Closed modes. * Added ability to user todo wave for AB reference period. Cleaned up the checking of different ionization schemes or VW switching. sq_findAvgUseMaskWave * Used in finding values for AB correction. Modified to accomodate todo instead of run range for AB ref interval. sq_globalsDCMarkerGr * Major overhaul for ePToF data. sq_PToFstick * Now automtatically recaclutes ePToF Sum MS sticks if ePToF sticks are recalculated (rare) sq_MSstick * Now incorporates sampling time from non 1GHz. sq_MSCalc_TSeriesMSMatricies * Now does not assume that we will always have MSSDiff, but could have ePToF Sum sticks. sq_butt_MS_Calc * Now does not assume that we will always have MSSDiff, but could have ePToF Sum sticks. sq_MSCalc_avgStick * Now does not assume that we will always have MSSDiff, but could have ePToF Sum sticks. sq_MSCalc_Tseries * Now does not assume that we will always have MSSDiff, but could have ePToF Sum sticks. sq_diurnalIndex * Small bug found with Igor 7. sq_MSPlot_Tseries * Allows user to not automatically color traces. sq_butt_ToFConc * Major changes to accomodate ePToF. sq_plot_corr * Handles things when todo, not run interval used. sq_getParamStr * Handles the "ToTal" species. sq_butt_DVaTable * Now includes all waves pertinent to converting from PToF time to DVa fm_analysis_panel * Slightly tweaked and hopefully clarified. fm_butt_DefineCycles * Now checks for 'bad' cycles of length 0. fm_DoAvClosed * Preforms the replacement of the data with the average if the user requests. sq_exportForDataBase * Modified for cases where we don't have MSSDiff data. sq_PToF_DCGr_setVar_mz * Major overhaul. Got rid of initial ePToF code we no longer want. sq_ePTOF_DCMarker_viewings * Major overhaul. Got rid of initial ePToF code we no longer want. sq_PToF_DCGr_setVar_Run * Major overhaul. Got rid of initial ePToF code we no longer want. sq_DCGr_UpdateRunNumParams * Major overhaul. Got rid of initial ePToF code we no longer want. sq_PToF_DCGr_butt_plotDC * Major overhaul. Got rid of initial ePToF code we no longer want. fm_butt_DoUsual * Now has a checkbox to indicate if first runs in transitions are blacklisted. sq_PToFDCgr_GetThisMatrix * Major overhaul. Got rid of initial ePToF code we no longer want. sq_AddDCmarker2Plot * Accomodates ePToF data. sq_appendDCregions * Accomodates ePToF data. sq_butt_CalcTS_CDCE * Accomodates ePToF sum data if no MSSDiff data present. sq_MSvsPToF_calcWaves * Accomodates ePToF sum data if no MSSDiff data present. sq_EPToFDeconvolve2D * Major overhaul. Got rid of initial ePToF code we no longer want. sq_EPToFDeconvolve3D * Major overhaul. Got rid of initial ePToF code we no longer want. sq_DCMarkerGr() * Major overhaul. Got rid of initial ePToF code we no longer want. DC_RecalcDeconvlButtonProc * Major overhaul. Got rid of initial ePToF code we no longer want. fms_interpolateOrCopy_CheckProc * Hopefully more intuitive for user. sq_PrevNextInTodoButtonProc * works in DC marker graph and others now. sq_correctSamplingTimeUnit Added optional nSecMSsamplingIntervalVal parameter. sq_PToF_panelsection * DC marker graph now modularized. PToFePToF_ToolNoTW * For data sets with no ePToF data. sq_iterateOverList * A handy helper functions for repeated squirrel fetches of MS data of different dimensions. sq_PreProcessTab * tab in preprocess section. sq_EPToFScaling * Performs ePToF scaling through Tofwerk methodology. Deleted Functions: sq_butt_deleteFromMem * Was only used in very initial squirrel testing. sq_ck_controlSticks * A more generic control now does this. sq_butt_reviewJournal * Never fully implemented. sq_butt_UpdateIpfs * Done through independent module and separate ipf now. fm_DoNans * Performed through fetch blanks function now. sq_MSStickSpectraTypes * Incorporated into a more generic function. DeconvolveCheckProc * Incorporated into a more generic function. fms_AllorLast_CheckProc * Reworked the fast mode panel fm_showHideDetailsCheckProc * Reworked the fast mode panel sq_ePTOF_fetchConfLimit * Not calculated anymore. sq_MSPreProcessSpectraTypes * Handled through a more generic interface. PToFDataSetForMS_returnDataSet * Casualty of ePToF overhaul. Mar2015Demux_proto * Casualty of ePToF overhaul. Mar2015Demux * Casualty of ePToF overhaul. Functions consolidate to one function that handles all URLs. sq_URLButton replaces all of these: sq_butt_url sq_butt_url_FAQ sq_butt_exportDBUMRWebsite sq_butt_exportDBUMRwiki sq_butt_exportDBHRWebsite sq_butt_exportDBHRwiki sq_butt_exportMailToML sq_CEpaperURL_buttonProc sq_CEHelpButtonProc ------- SQ_FragDiag------- FD_CalcPlot_Ammonium * very slight change in calculations to reflect the mass of SO4 being 96, not 98. ------- SQ_Backbone------- squirrel_hdf_write * Reuse of the function sq_SetProcessedPaths to check for intermediate file path. ------- SQ_MsConc------- Modified functions: sq_MS_concentration Added various global variables and waves and ePToF deconvolutions to the calculations for ePToFSummed data. The important PostAvgFlag indicates if deconvolution is to be performed on the average of a data set, or on a run-by-run basis. sq_err_calc For fast mode data, the time spent in closed should be the sum of the fast closed cycle if a user is averaging the fast closed data. New functions: sq_ApplyFragWaves THe application of frag waves to generate Org, for example was isolated from sq_MS_concentration for use in ePToF deconvolutions. ------- SQ_MzCalBkgd------- Modified functions: mz_butt_beginMzFitting * Now allows user to use preprocessed raw spectra... is appropriate for fast mode data. mz_calcFitOneMassSpec * Now allows user to use preprocessed raw spectra... is appropriate for fast mode data. New functions: bk_getSumPToFForBaselinePanel Allows to automatically generate ePToF Sum for look within baseline panel ----------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.56 Notes by Donna Sueper 25 Jun 2015 * More tools for ePToF data * Bug fix for averaging MS data ------- SQ_MSconc------- Modified functions: * sq_MS_concentration Added another check for using separate open and closed m/z parameters ------- SQ_Backbone------- No change ------- SQ_MzCalBkgd------- No change ------- SQ_FragDiag------- Modified functions: * FD_GenerateFragTrends Added an optional parameter diffOnlyFlag so that only the difference spectra gets recalculated. * FD_MakeLines Significantly changed so that extra traces are not drawn on scatter plots, but instead lines are drawn using the axes (i.e. 1:1 line) * FD_NH4_Fragment * FD_SO4_Fragment * FD_NO3_Fragment * FD_Org_Fragment * fc_populate_org44_v_org43Graph * fc_populate_org29_v_org43Graph * fc_populate_org15_v_org43Graph * fc_populate_m16_v_m14Graph * fc_populate_NH417_v_NH416Graph * fc_populate_m16C_v_m18CGraph * fc_populate_m17C_v_m18CGraph * fc_populate_m39_v_m43Graph * fc_populate_m41_v_m39Graph * fc_populate_NH4MeasPredGraph * fc_populate_WaterVsTotalGraph * fc_populate_SO4FragGraph * fc_populate_NO3FragGraph * fc_populate_Org44vOrgGraph * fc_populate_NO3VOrgGraph * fc_populate_SO4vOrgGraph * fc_butt_Kplots Line drawn using axes instead of trace appended, grids added. * fc_butt_colorLegend Grids added. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.55 Notes by Donna Sueper 4 Nov 2014 * Fast mode panel slightly changed. ------- SQ_AMSPanel------- New functions: * sq_CreateAttTextWaves Stand alone function for loading attributes for ParVal etc * fms_AllorLast_CheckProc Option for now replacing only the last run with an average, instead of the entire fast closed cycle. * sq_AMSSize Calculates the AMS Size from aerodynamic diameter (for size calibrations). Not currently used. * sq_Kill_ms_mats Used after an MS_calc function to clean things up. * sq_checkSamplingTimeVals A hack of a fix to deal with a few versions of DAQ 5 where the fast mode did not record the duration of run as I expected. * PToFDataSetForMS_returnDataSet A helper function to distinguish stick vs raw PToF data sets. * PToFDataSetForMS_returnMaxCol A helper function to find the max number of columns in any PToF data set. * PToF_updateMSStickList A helper function to distinguish stick vs raw PToF data sets. * sq_FixFastModeTimesDAQ34 For issues with fast mode found by Ed and old versions of DAQ Modified functions: * sq_butt_getSquirrelIndex Added code to guide folks to opting for the .h5 extension instead of the .hdf. * sq_initializeAfterGetIndex Added call to sq_FixFastModeTimesDAQ34 * sq_file2SquirrelIndex Slight bug fix for BFSP data. * sq_butt_pre_process Added new fast mode functionality * sq_makeRawSpectraGroups Fixed a bug that had to do with series_index * sq_diffCalc Changed the writing of HR sticks to be multiples of 200. * sq_butt_diagUpdate Added function call to create attribute waves. * sq_diagnostics Added function call to create attribute waves. * sq_diag_list_init Updated several diagnostic values. * sq_butt_corrections Bug fix for DAQ setting of the ePToF_enabled. * sq_checkMzFittingWaves Slight rearrangement to assure that temp waves are killed. * sq_applyDCmarkers Now also saves the list of region 1 and 2 only mzs. * sq_PToFstick Added extra sanity check for root:diagnostics:nSecMSsamplingInterval * sq_MSstick Added extra sanity check for root:diagnostics:nSecMSsamplingInterval * sq_MSCalc_TSeriesMSMatricies Added code for use of PToF sticks data sets. But disabled for now. * sq_butt_MS_Calc Fixed type in 44 vs 43 graph. * sq_MSCalc_avgStick Added code for use of PToF sticks data sets. But disabled for now. * sq_MSCalc_Tseries Added code for use of PToF sticks data sets. But disabled for now. * sq_butt_ToFConc Bug fix for DAQ setting of the ePToF_enabled. * sq_plot_diag Removed Channel 2 threshold info cuz never used. * sq_update_diagPlot Removed Channel 2 threshold info cuz never used. * sq_changeRunNumbers Added a TYPE=2 falg for a HDF5ListGroup call. * fm_analysis_panel Added functionality to replace only the last fast closed with the fast closed average instead of the entire closed cycle. * fm_DoAvClosed Added functionality to replace only the last fast closed with the fast closed average instead of the entire closed cycle. * sq_butt_exportDBPanel Changed email from Michael L to Phil * sq_butt_exportMailToML Changed email from Michael L to Phil * sq_exportForDBRawSpectra Added code to alert for negative mz due to cases where mz cal intercept >0. * sq_ePTOF_DCMarker_viewings Bug fix for DAQ setting of the ePToF_enabled. * sq_DCGr_UpdateRunNumParams Bug fix for DAQ setting of the ePToF_enabled. * sq_PToF_DCGr_butt_plotDC Bug fix for DAQ setting of the ePToF_enabled. * sq_populate_MSvsPToFMSGraph Autscales from zero. * DC_RecalcDeconvlButtonProc Bug fix for DAQ setting of the ePToF_enabled. * sq_correctSamplingTimeUnit Added extra sanity check for root:diagnostics:nSecMSsamplingInterval ------- SQ_Backbone------- No changes. ------- SQ_FragDiag------- Modified Functions: * FD_butt_CalcBatch Added code to kill all waves in root:ms_mats after calculations. ------- SQ_MSconc------- Modified Functions: * sq_MS_concentration Added checking of duration of run * sq_err_calc Added checking of duration of run for fast mode data * sq_findIntegrationWidthNs Added extra sanity check for root:diagnostics:nSecMSsamplingInterval ------- SQ_MzCalBkgd------- * bk_createGlobalsBaseline Slight wording change in instructions. * bk_BaselinePanel Added next/previous run in todo functionality. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.55 Notes by Donna Sueper 26 June 2014 * Most important change is for ADQ card users. Previous versions of the code had incorrectly accounted for nonGHz sampling rates. ------- SQ_AMSPanel------- New functions: * sq_correctSamplingTimeUnit Modified functions: * sq_MS_preprocess Changed code to account for non 1GHz sampling * sq_insert_Matrix Changed code to account for non 1GHz sampling * sq_diagnostics Added more values into diagnostics folder * sq_diag_list_init Added more values into diagnostics folder * sq_PToFstick Changed code to account for non 1GHz sampling * sq_MSstick Changed code to account for non 1GHz sampling * sq_MSAvgGraph_updateTraces Changed label of raw avg MS to account for non 1GHz sampling * sq_butt_ToFConc Fixed small bug regarding ePToF * sq_TasksForPMFOutput Accomodated non AMS time base saving * sq_PToF_DCGr_GetMatrix Changed code to account for non 1GHz sampling ------- SQ_MzCalBkgd------- Modified functions: * mz_calibrationPanel Changed label to read "sampling time = = intercept + slope*(mass^power)" * mz_populate_DeltaTSquaredGraph Changed label to read "FWHM^2" * mz_populate_ResolutionGraph Changed label to read "FWHM at m/z = 0" * mz_populate_CalAccuracyGraph Changed label to read "Sample number" ------- SQ_MSconc ------- No change ------- SQ_FragDiag ------- No change ------- SQ_Backbone ------- No change ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.54 Notes by Donna Sueper 10 May 2014 ------- SQ_AMSPanel------- New functions: * sq_ePTOF_fetchConfLimit For ePToF data, a way to obtain confidence limits as generated by Rich's demux method * sq_MSPreProcessSpectraTypes Preprocess raw spectra based on their number of raw spectra points. * sq_PrevNextInTodoButtonProc Adds next or previous run finding buttons. for DC marker graph * sq_makeChopperDutyWave When user has both ePToF and regular PToF data, we no longer can use the single constant Chopperduty * sq_SetePToFExists Sets global variable root:diagnostics:ePToFExists to 0 or 1 when ePToF data exists. * tw_ea_CalcMDTile Function to make mass defect tile plot; copied from Harald's code in tofware. * tw_ea_cb_UpdMDTile Function to make mass defect tile plot; copied from Harald's code in tofware. * tw_ea_sv_UpdMDTile Function to make mass defect tile plot; copied from Harald's code in tofware. * tw_ea_pm_UpdMDTile Function to make mass defect tile plot; copied from Harald's code in tofware. * tw_ea_UpdMDTile Function to make mass defect tile plot; copied from Harald's code in tofware. * tw_ea_makeMDTilePlot Function to make mass defect tile plot; copied from Harald's code in tofware. * sq_checkNoDCPreprocPToF Sort of the reverse of sq_NoDCPreprocPToF; checks to see if deconvolving was performed * sq_NoDCPreprocPToF Used for when we have ePToF but for some reason user didn't want to deconvolve. * sq_MSPlot_F43vsF44 Creates triangle plot. * sq_MSPlot_F44vsF60 Creates triangle plot. * sq_RecreateFastMSRunWithinCycle special function for Taehyoung and anyone else taking fast mode data with an old DAQ * sq_GetMajorFileVersion This is needed because version 5 uses different values in ParVal, etc than in previous versions. ------- SQ_AMSPanel------- Modified functions: *sq_ams_panel Added f44 vs f43 and f44 vs f60 buttons. * sq_butt_getSquirrelIndex Added code to find DAQ version number before proceeding to far in the indexing algorithm. * sq_initializeAfterGetIndex Added code to find DAQ version number before proceeding to far in the indexing algorithym. * sq_remapWavesAfterMoreRuns Added a check for the existence of Mz calibration waves before proceeding. * sq_makeToDoAllPToF Added code to make sure PToF runs exist. * sq_makeTodosFromChangingVals Added code to make sure PToF runs exist. * sq_makeTodoallMS Added some fast mode checking. * sq_makeToDoFastOC Added code to create a slow (nonFast) mode allMS todo wave. *sq_makeToDoallSlowMS Deal with situations where one may have started a slow mode run but only got partially through a gen alt and only have a slow MS open or MS closed and not the other. * sq_butt_pre_process Added code for ePToF data. * sq_makeRawSpectraGroups small bug having to do with *series vs *index waves. * sq_insert_Matrix Added code for ePToF. * sq_preProcessEPToF Added code so that the matrix inversion deconvolution also does a DC marker subtraction. * sq_preProcessEPToF(index_pos,source,ePToF_OS,KillFlag) Added code to check for the existence of global variables typically created in the DC marker graph. * sq_diagnostics Added code for ePToF. * sq_diag_list_init Added code to check for the DAQ version. * sq_blacklist Does not kill the wave note if it is not a todo wave * sq_butt_corrections Added code for ePToF. * sq_ms_airbeamCorr Added message in abort command indicating that no AB correction was performed. * sq_applyDCmarkers Added code for ePToF. * sq_fixPToFDiagWaves Added code to look for raw ptof data. * sq_PToFstick Added code for non 1ns Hz sampling, turns out we don't needed but kept anyway. * sq_MSstick Added code for non 1ns Hz sampling, turns out we don't needed but kept anyway. * sq_MSCalc_TSeriesMSMatricies Added default setting so that if no species is entered the 'all' species is assumed. * sq_butt_MS_Calc Added code for mass defect plots. * sq_MSCalcPlot_Avg Added code for mass defect plots. * sq_MSCalc_avgRaw Added code for mass defect plots. * sq_butt_ToFConc Added code to check for ePToF. * sq_plot_ptof1_av Changed the code for custom diameter base waves. * sq_plot_ptof1_im Rearranged cod slightly for unambiguity. * sq_getParamStr Changed code slightly for bug Ann M found regarding custom CE waves. * fm_initialise_FMS Changed the wording in the panel to make more clear. * fm_butt_DefineCycles Attempts to deal with situations where a user may have blacklisted a run the the fast mode code relies on to do fast closed averages for example. * fm_butt_makeFirstFastToDos Alert the user to instances where we have only one run in the fast mode cycle. * fm_ExtrapolateClosed Added code in abort function to attempt to make problem more clear * fm_Get40to28ratios Added "//" prefix to print statements. * sq_getNewDiagValuesList Added code to ensure the existence of data folder the user wants to use. * sq_TasksForPMFOutput Changed the code to use the TimeAcquiringMSOpenInRun instead of TimeMSOpen and changed prefixes so that there no longer is MxMx junk. * sq_FillBlankSpectraTypes Added check to see that the todo wave has > zero points. * sq_PToF_DCGr_setVar_mz Added ePToF code. * sq_PToF_DCGr_GetMatrix Added ePToF code. * sq_ePTOF_DCMarker_viewings Added ePToF code. * sq_DCGr_UpdateRunNumParams Add check for ePToF data existence * sq_PToF_DCGr_butt_plotDC Changed the conditional for checking of demux function. * sq_populate_MSSCDCTopCorrGraph Changed one2one wave to exist in the panel data folder. * sq_populate_MSSCDCBotCorrGraph Changed one2one wave to exist in the panel data folder. * sq_MSvsPToF_calcClosedWaves Fixed bug whereby the average DC saved values were not called. * sq_butt_ToFvsPtoFCalcs Ensure that the user hasn't selected a custom nm base for PToF. * sq_EPToFDeconvolve2D Now passes a confidence limit, also inserted a check if ePToF wheel inserted backwards. * sq_EPToFDeconvolve3D Now passes a confidence limit parameter. * sq_DCMarkerGr Changed the way to check for the existence of the demux function. * DC_RecalcDeconvlButtonProc Added the ability to view deconvolved preprocessed ePToF sticks. * sq_remapWavesAfterMoreRuns Added code to 'expand' HR waves for serial data indexing. ------- SQ_MzCalBkgd------- *bk_setUpRawSpectraThisRun No longer using sq_smooth_nans for display. * bk_ck_PToFMS Disabled the option for using nm units. ------- SQ_FragDiag------- No change ------- SQ_Backbone------- * squirrel_fetch Initialized an acorn to have initial values of zero (typically all values are quickly overwritten anyway ------- SQ_MSconc------- Modified functions: * sq_MS_concentration For users of DAQ5, the timeMSOpen is no longer appropriate to use when finding the time spent in this mode. TimeAcquiringMSOpenInRun is now used instead. * sq_err_calc Use of source2, source3 Baseline errors for open and closed switched. * Err_minErr1ion For users of DAQ5, the timeMSOpen is no longer appropriate to use when finding the time spent in this mode. TimeAcquiringMSOpenInRun is now used instead. ------- SQ_Backbone------- Modified functions: * squirrel_fetch Added code for when HDF files are saved with .h5 extension * squirrel_hdf_write Added code for when HDF files are saved with .h5 extension ------- SQ_AMSPanel------- New functions: ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.53 Fall (August) 2013 release Update since ToF-AMS Analysis Toolkit v1.52 Notes by Donna Sueper 7 Sept 2013 * A bug was found which overestimated Diff errors between a factor of ~ 1.2 and 1.4. This was fixed. ------- SQ_MSconc------- Modified functions: * Err_minErr1ion Added code for when the AB correction factor doesn't exist ------- SQ_Backbone------- Modified functions: * squirrel_fetch Added code for when HDF files are saved with .h5 extension * squirrel_hdf_write Added code for when HDF files are saved with .h5 extension ------- SQ_AMSPanel------- New functions: * sq_update_corrTabLabels Added asterisks in tab if option checked *sq_addedNewRuns One stop shop for when new runs have been added and waves need to be lengthened * sq_makeToDoallSlowMS For use with Fast mode * sq_preProcessEPToF One stop for preprocess ePToF data * sq_ck_PToF_DCgr_DAQSticks Includes option for ePToF data * sq_ePTOF_DCMarker_viewings Includes option for ePToF data * sq_DCGr_UpdateRunNumParams Includes option for ePToF data * sq_SetDimLabelsABCorrToFType Add dim Labels for table display in panel * sq_populate_ABTable Display AB table in panel * sq_fileExtensionCheckProc for DAQ 5 * sq_EPToFMakeSequenceInv Includes option for ePToF data * sq_SeqExpand Includes option for ePToF data * sq_EPToFDeconvolve1D Includes option for ePToF data * sq_EPToFDeconvolve2D Includes option for ePToF data * sq_EPToFDeconvolve3D Includes option for ePToF data * DeconvolveCheckProc Includes option for ePToF data * DC_RecalcDeconvlButtonProc Includes option for ePToF data * DC_CopyEPtoF_ButtonProc Includes option for ePToF data * sq_parsePandDinTodoCreation New option for allowing pX and dY in todo wave creation * sq_ParseDinRunString New option for allowing pX and dY in todo wave creation * fms_interpolateOrCopy_CheckProc New option for interpolating or copying fast closed * sq_ePToFMirrorBackwardsFix ePToF fix when chopper backwards * sq_NextInTodoButtonProc For general next or previous buttons Killed/Renamed functions: * sq_setVar_ABAutoSet * sq_pop_AB_ToFType * sq_PToF_DCgr_ck_DAQSticks * sq_dcMarkers * fm_makeAllSlow * sq_PToF_DCGr_Update Modified functions: * sq_globalsCorrections Instead of global variables, use table * sq_globalsMisc Added option for .h5 file extension * sq_ams_panel Added .h5 file extension, modified AB correction tab * sq_ck_abAutoSet Instead of global variables, use table * sq_butt_getSquirrelIndex Added option for .h5 file extension * sq_initializeAfterGetIndex Added option for ePToF * sq_makeToDoAllPToF Added option for flaging runs with small acquisition times * sq_makeTodosFromChangingVals Added option for ePToF * sq_checkPToFGroupings Added option for ePToF * sq_makeToDoFastOC Added sq_makeToDoallSlowMS() at ten * sq_file2SquirrelIndex Added option for .h5 file extension * sq_RunDataSetsInFile Added option for .h5 file extension * sq_fileCheck Added option for .h5 file extension * sq_butt_pre_process Added option for ePToF data * sq_PreprocessRaw Modified to make fast mode runs faster * sq_Hz Added option if user overwrites ionSinglestr_logged * sq_MS_preprocess Added option for ePToF data * sq_fillBlanks Added option for duplicating last good closed instead of interpolating * sq_insert_Matrix Added option for ePToF data * sq_diag_list_init Added ePToF_oversampling, ePToF_enabled * sq_butt_corrections Fixed bug regarding calcing of UMR errors * sq_ms_airbeamCorr Instead of global variables, use table * sq_applyDCmarkers Added option for ePToF data * sq_dcMarkersExamine Added option for ePToF data * sq_butt_PToFDCGr_show Added option for ePToF data * sq_butt_DVaGraph Added option for ePToF data * sq_DVaGraph_SetVar Added option for ePToF data * sq_PToFstick Added option for ePToF data, added fastops for speed *sq_MSstick Added fastops for speed * sq_MSCalc_TSeriesMSMatricies Now allows use of custom time interval * sq_butt_MS_Calc Now allows use of custom time interval * sq_MSCalc_avgStick Now makes sure all runs in todo have MS data * sq_MSCalc_avgRaw Now makes sure all runs in todo have MS data * sq_butt_ToFConc Added option to NOT set frag_air to zero * sq_update_diagPlot If plot already shown, do nto change x axis start/stop * sq_findStr Added case sensitive option * sq_create_todo Added pX and dY todo syntax * sq_findMaxMinSQIndex Modified for PToF only runs * sq_getThisRawMS_viaFetch Added option for ePToF data sq_getThisRawMS Added option for PToF data * sq_loadProcs Uses InsertInclude syntax..... still not where I want things to be. * sq_stickCalcGetRegions Does another sanity check in case stick integration regions overlap. * sq_getWaveNameSuffix Added abort for when bad things happen * fm_initialise_FMS Added global variable for copy instead of interpolate for closed * fm_analysis_panel Added checkbox for copy instead of interpolate for closed * fm_butt_DefineCycles Added option for when cycles end on open, when user presses define cycle twice * fm_ExtrapolateClosed Diabled stuff written to history * fm_AvClosed Added ability to average closed while dealing with raw * fm_DoAvClosed Added ability to average closed while dealing with raw * sq_TasksForPMFOutput Can now export multiple species * sq_FillBlankSpectraTypes Added ability to copy last instead of interpolate *sq_MSStickSpectraTypes Now minor progress bar moves * sq_FindRawMzBase added number of points in raw spectra as parameter * sq_PToF_DCGr_setVar_mz Added ePToF settings * sq_PToF_DCGr_GetMatrix Added ePToF settings * sq_PToF_DCGr_setVar_Run Added ePToF settings * sq_PToF_DCGr_butt_plotDC Added ePToF settings * sq_ck_PToF_SingleRunTodo Added ePToF settings * sq_PToFDC_PopMenuProc Added ePToF settings * sq_PToFDCgr_GetThisMatrix Added ePToF settings * sq_CalcCE_fPhase Fixed typo pointed out by Will * sq_calcCDCE_extras Histogram units.... James email * sq_butt_PToF_DVaTable If user modified Dva waves, new values are displayed * sq_PToFDiffHz_calcWaves Added PToF settings * sq_DCMarkerGr Added PToF settings * fm_showHideDetailsCheckProc Changed size of fast mode window ------- SQ_FragDiag------- Modified functions: * FD_modifyBatch Now checks the length of the ceWaveList ------- SQ_MzCalBkgd------- Modified functions: * mz_createGlobalsMzCalibration Changed default to not show ppm graph * mz_makeMzCal_Waves Modified default to not use 279 * mz_setppmAxis Added sanity check that window exists * mz_individualMassGrPlacement Added sanity check that window exists * mz_butt_beginMzFitting Added max Mz sanity check * mz_reSizeMzCalWaves Removed recreation of global variable * mz_calibration modified arbitrary setting for max raw spectra mz * mz_adjustFitAxis Added window sanity check * mz_butt_filterBadFitsNow Added window sanity check * mz_fitOneRun Added fastop for speed * mz_calcFitOneMassSpec Added max Mz sanity check * mz_pop_viewVorW_PW Added fastop for speed * mz_populate_PpmGraph Added fastop for speed * bk_initializeBkWaves Added fastop for speed * bk_BaselinePanel Changed PToF us or bin number interface * bk_ck_SliderOrSetVar Added window sanity check * bk_setUpRawSpectraThisRun Added fastop for speed * bk_createStickComplimentMask Added fastop for speed * bk_fitStickCompliment Added fastop for speed * bk_butt_calcBkFit Added fastop for speed * bk_setVar_runNumberVW Added window sanity check * bk_ck_UseMassDefect Added full path name for stick recalc folder * bk_createMassDefectDefault Makes sure amus wave is big enough for spams data * mz_smoothFinalFittingParams Added fastop for speed * bk_massDefect_findPeakCenters Modified option if popmenu wasn't selected * bk_LabelBk_graph Small buf fix for PToF data * mz_butt_SetParamsToNan Added fastop for speed * mz_butt_revertMzCal_Spec Added window sanity check * bk_autoyaxis Modified for global min * bk_getPToFForBaselinePanel Added fastop for speed * bk_ck_PToFUnits Changed interface to be similar to DC marker graph * sq_GetPToFPointNums Added window sanity check ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.51 Notes by Donna Sueper 10 Oct 2012 * Several diagnostic tools were created to help evaluate PToF UMR and DC marker data. * Added controls for automatic plotting of PToF statistics and DC marker regions in PToF graphs. * Added CE panel and the infrastructure to add a CE time dependent correction wave. * Modified the squirrel baseline panel to allow for the viewing of PToF raw spectra * Modified the DC marker graph to allow for the averaging of todo waves. ------- SQ_MzCalBkgd_1_52------- New functions * LabelBk_graph Switches labels in bk graph for MS and PToF * bk_autoyaxis Button in panel for autoscaling y axis of open and diff axis * bk_getPToFForBaselinePanel Function that retrieves raw PToF spectra * bk_ck_PToFUnits Checkbox control for switching between PToF bin and time units *bk_ck_PToFMS Checkbox control for switching between MS and PToF data * bk_tab_grIterate Tab control for right bottom tab in baseline panel * bk_InputIntoBaseline Does the work of generating raw PToF spectra into baseline panel * bk_butt_SetToDCRegion2 Button in baseline panel for automatically setting 'closed' to DC 2 marker region. * sq_GetPToFPointNums Sanity check for min and max regions for a PToF run and sets wave PToFRegionsPTnum for later use Modified functions * mz_createGlobalsMzCalibration Modified panel to accomodate raw PToF spectra * mz_butt_beginMzFitting Added option for summed PToF data * mz_calibration Added option for summed PToF data * mz_fitOneRun Added option for single or summed PToF data * mz_populate_PpmGraph Made accuracy waves different colors * bk_createGlobalsBaseline Added a placeholder wave for PToF data * bk_BaselinePanel Added PToF options * bk_setUpRawSpectraThisRun Added PToF options * bk_butt_viewManyBaselines Added PToF options * bk_createBackgroundValues Added PToF options * bk_populate_RawSpectraGraph Added PToF options ------- SQ_MSconc_1_52------- Modified functions * sq_MS_concentration Added CE_corr option for CE time dependent wave ------- SQ_FragDiag_1_52------- New functions * fc_FindWaveMedians Added calc of the wave medians and appended black xs to the plots. Modified functions * FD_butt_CalcBatch Added fc_FindWaveMedians at the end * FD_modifyBatch Removed outdated use of Tof_list * FD_Check_batch Removed outdated use of Tof_list * sq_FragCheckPanel Added median waves * fc_populate_org44_v_org43Graph Added median calcs * fc_populate_org29_v_org43Graph Added median calcs * fc_populate_org15_v_org43Graph Added median calcs * fc_populate_m16_v_m14Graph Added median calcs * fc_populate_NH417_v_NH416Graph Added median calcs * fc_populate_m16C_v_m18CGraph Added median calcs * fc_populate_m17C_v_m18CGraph Added median calcs * fc_populate_m39_v_m43Graph Added median calcs * fc_populate_m41_v_m39Graph Added median calcs * fc_populate_NH4MeasPredGraph Added median calcs * fc_populate_WaterVsTotalGraph Added median calcs * fc_populate_SO4FragGraph Added median calcs * fc_populate_NO3FragGraph Added median calcs * fc_populate_Org44vOrgGraph Added median calcs * fc_populate_NO3VOrgGraph Added median calcs * fc_populate_SO4vOrgGraph Added median calcs ------- SQ_Backbone_1_52------- Modified functions * squirrel_fetch Modified code to allow for selective retrieval of PToF columns ------- SQ_AMSPanel_1_52------- Deleted functions for dealing with PToF data: * sq_PToFDataSlice * sq_PToFExtractEachBinOneRun * sq_PToFStickDiagOneRun * sq_PToFRawDiagOneRun * sq_SumPToFSizeGroups * sq_DisplayRawPToF_iToF * sq_DisplayRawPToF_Mz * sq_DisplayRawPToF_corr * sq_DisplayStickPToF_corr * sq_DisplayStickPToF_Mz New functions * sq_RunDataSetsInFile Yet another tool to flag duplicate run numbers * sq_makeRawSpectraGroups Tool to allow grouping of runs based on the number of points in the raw spectra... Good for when one wants to recalc sticks and needs to know the max mz value. * sq_PreprocessRaw Tool to allow grouping of runs based on the number of points in the raw spectra... Good for when one wants to recalc sticks and needs to know the max mz value. * sq_CreateReviewBatchTable Added check for CE correction wave * sq_GetPToFParams General helper function for retrieving PToF parameters for a run * sq_calc_PTOFimage_stats With help from TimO, calc PToF median etc. * sq_SubItemsInListToTextwave General helper function for frag list converting of user defined Hz wave * fm_showHideDetailsCheckProc New checkbox function to show or hide details of fast mode analysis * sq_FillBlankSpectraTypes Now uses RawSpectra types (length of raw spectra waves) * sq_MSStickSpectraTypes Now uses RawSpectra types (length of raw spectra waves) * sq_KillWavesInList General helper function for killing waves in list * sq_FindRawMzBase Returns a string containing the name of the wave that has the mz x axis wave for a todo wave * gen_InterpolateAcrossTime Helper function for doing a linear interpolation across nans that considers and x time wave * gen_FindFirst Helper function for gen_InterpolateAcrossTime * gen_FindLast Helper function for gen_InterpolateAcrossTime * gen_RemoveNaNsXY Helper function for gen_InterpolateAcrossTime * sq_PToFnoMSFindRuns Returns a todo wave to be used for finding MS values for PToF normalization when MS runs may be missing (Kansas data) * sq_CreateRandom Generates a random todo wave that is a subset of input wave * gen_findMedian Helper function for finding the median of a wave * sq_PToF_DCGr_Update Users can examine the average of a todo wave instead of looking at only one run. * sq_PToF_ug_CheckProc Perhaps no longer needed for PToF tab * sq_PToF_NormSanity Perhaps no longer needed for PToF tab * sq_PToF_diamAxisPopMenu Perhaps no longer needed for PToF tab * fm_butt_DoUsual A one button function for usual processing of Fast mode data * sq_ck_PToF_SingleRunTodo Checkbox for DC marker graph * sq_PToFDC_PopMenuProc Popmenu for todo wave in DC marker graph * sq_PToFDCgr_GetThisMatrix // generates PToF_A matrix to store for use in DC marker graph * sq_AddDCmarker2Plot From the main PToF tab, adds option to allow plotting of DC marker regions * sq_appendDCregions Adds DC marker regions to PToF plots * sq_CreatePhaseDepCE Generate CDCE panel * sq_butt_CalcTS_CDCE Calcs time series waves for CDCE calc with CE of 1 * sq_butt_CENH4AcidityGr In CDCE panel show Acidity plot in FragChecks Panel * sq_butt_Calc_CDCE After generating time series waves of 5 aerosol species with CE=1, find the time dependent CE * sq_CalcCE_fPhase Does the real work of sq_butt_Calc_CDCE * sq_calcCDCE_extras Calcs stats and other waves for CDCE panel * sq_butt_CEAdvPanel Advanced users panel for setting inflection points for CDCE panel * sq_create_CEis1_TSgraph Creates the time series graph of 5 aerosol species with CE = 1 after step 1 is calculated. * sq_CEpaperURL_buttonProc Link to Middlebrook CDCE paper * Sq_CETabProc Tab for CDCE panel * sq_plotCEGrs Fills in plots on CDCE panel * SQ_populate_CETSGraph Compares constant and time series CE as applied to aerosol species * SQ_populate_CECorrGraph Compares constant and time series CE as applied to aerosol species * sq_populate_CEHistGraph Histogram of CDCE * sq_CE_ButtonProc Button on panel for executing sq_CreatePhaseDepCE() * sq_CEHelpButtonProc Link to wiki * sq_butt_reviewNH4RIE Button on CDCE panel for batch table NH4 RIE * sq_populate_CEfphaseTable Generates table for CDCE panel * sq_populate_AcidityHistGraph Generates graph for CDCE panel * sq_populate_ANMFHistGraph Generates graph for CDCE panel * sq_populate_OrgMFHistGraph Generates graph for CDCE panel * sq_populate_ANMFOrgMFHistGraph Generates graph for CDCE panel * sq_populate_RelHumHistGraph Generates graph for CDCE panel * sq_populate_NH4DetLimHistGraph Generates graph for CDCE panel * sq_butt_CETypeFlagLegend Generates small panel with CDCE flag legend * SQ_getColorListSpecies Helper function for returning string containing rgb values for species * gen_Get1DWavesofLengthX Returns list of waves in current data folder of a certain length * gen_ListToWave Creates text wave from list * sq_TodoWaveHasOnlyOneDetType Returns the index value of the place where there is a change in the detecotr type * gen_Killsubwindows Helper functions for updating panels with tabs * gen_returnSelectedWave Given a control name in the top most panel return a wave reference for the wave selected * sq_butt_PToF_DVaTable Table for PToF time, DVa values * sq_DvaTab Tab control in new Dva panel * sq_GetTodoSubsetWithPToF Returns todoSubsetStr as a new wave (possibly overwritten) * sq_checkPToFparamsSameTodo Checks that all waves in todo have same PToF parameters * sq_populate_DVaDiamGraph Generates DVa graph in DVa panel * sq_populate_DVaTSeriesGraph Generates time series graph of DVa parameters in DVa panel * sq_button_MSvsPToF Button in PToF tab doing calcs for MSvsPToF panels * sq_MSvsPToF_calcWaves Does the work of sq_button_MSvsPToF * sq_MSvsPToFrenamePToF Helper function for plotting graphs in MSvsPToF panels * sq_MSVsPToFTabProc Tab for MS vs PToF (for aerosol species) * sq_plotMSvsPToFGrs Plots graph in MSvsPToF panel * sq_populate_MSvsPToFTSGraph Generates time series of MS vs PToF species * sq_populate_MSvsPToFMSGraph Generates avg mass spec of MS vs PToF species * sq_populate_MSvsPToFMSCorrGraph Generates scatter plot of avg mass spec MS vs PToF species * sq_populate_MSvsPToFTSCorrGraph Generates scatter plot of time series MS vs PToF species * sq_ViewMSvsPToF_Panel Generates MSvsPToFPanel * sq_Create1DwaveFromDataSet Called from sq_MSvsPToF_calcClosedWaves to get 1D waves * sq_populate_MSSCDCTopGraph Generates DC markef time series graph * sq_populate_MSSCDCBotGraph Generates DC markef time series graph * sq_populate_MSSCDCTopCorrGraph Generates scatter plot of time series DC marker time series * sq_populate_MSSCDCBotCorrGraph Generates scatter plot of time series DC marker time series * sq_MSvsPToFSetVarProc Sets mz variable for DC marker time series panel * sq_MSvsPToF_calcClosedWaves Creates 4 waves for the MSSCvsDC_Panel * sq_ViewMSSCvsDC_Panel Button from main AMS PToF tab * sq_button_MSSCvsDC Button from main AMS PToF tab * gen_updateone2oneCorr Helper function for autoscaling for scatter plots * sq_butt_ToFvsPtoFCalcs Does all the cals for MS vs PToF panels * sq_PToFDiffHz_calcWaves Does the single PToF bin size calcs * sq_MS_concentrationPTOFDiff Very much like MS_Conc, except results are put in memory * sq_MSvsPToF_calcPToFDiffWaves Does the single PToF bin size calcs * sq_UpdateMSSCvsPToFDCStats Stats for MSSCvsDCMarker panel * gen_removeTracesFromGraph General helper function for removing traces from a graph Modified functions * sq_globalsHDFIndex Added globals for fast mode * sq_globalsPToF Added globals for stats and DC markers * sq_globalsChecks Added text to explain median markers * sq_ams_panel Added MS vs PToF and CDCE * sq_butt_getSquirrelIndex Added option to not load fast mode * sq_checkPToFGroupings Modified to use Raw Spectra groups * sq_file2SquirrelIndex Added option to not load fast mode * sq_butt_pre_process Modified to use Raw Spectra groups * sq_fillBlanks Modified for Tim O's case of very long fast mode cycles. * sq_diag_list_init Added wave numPtsRawSpectra * sq_getToDoWaves Fixed to work when not begun in root * sq_butt_reviewBatch Modified for CECorr_lsit * sq_butt_corrections Changed DC marker calculations to always work on DAQ sticks * sq_ms_airbeamCorr Added sanity checks for when user entered nans for non autoset * sq_applyDCmarkers Changed DC marker calculations to always work on DAQ sticks and now saves DC marker values to hdfs * sq_globalsDCMarkerGr Added ability to average a run * sq_PToF_DCGr_setVar_mz Modified for using todo instead of single run * sq_PToF_DCGr_setVar_Run Modified for using todo instead of single run * sq_PToF_DCGr_butt_plotDC Modified for using todo instead of single run * sq_PToF_DCgr_ck_DAQSticks Modified for using todo instead of single run * sq_DCMarkerGr Modified for using todo instead of single run * sq_butt_DVaGraph Panel is redone to be smaller and more useful * sq_DVaGraph_SetVar Panel is redone to be smaller and more useful * sq_MSstick Modified bug for fast mode * sq_MSCalc_avgRaw Modified for 'as saved' mz base * sq_butt_ToFConc Added code for generating PToF stats * sq_plot_ptof1_av Added code for showing DC marker regions * sq_plot_ptof1_im Added code for showing DC marker regions * sq_plot_diag Added filament emission current * sq_update_diagPlot Added filament emission current * sq_diag_check_plotGroup Added filament emission current * sq_makeBlacklistMask Creates blacklist wave if doesn't exist * sq_dbase Added check for monotonicity * sq_getParamStr Added CECorr_list parameters * sq_interpolateWave Kill waves at the end automatically * sq_makeMaskFromTodofindRun Added optional opposite parameter * sq_windowIsToBePopped Automatically added a showinfo to graphs * sq_fragList_convert Added simple recursion sanity check * sq_butt_changeHDFPath Added a do alert when path becomes too long to view in window * sq_stickCalcGetRegions Added sanity check for baselineFitting data folder * sq_getWaveNameSuffix Added code to remember last suffix * fm_analysis_panel Modified and cleaned up for Kansas data * sq_TasksForPMFOutput Minor Stylistic change ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.50 Notes by Donna Sueper 24 Feb 2011 * All previous versions of squirrel did not include the baseline values in the calculation of the errors. For most data sets, the baseline contribution is very small. With this version of squirrel, users MUST recalculate their MS sticks in order to generate baseline values, and thus errors. * The code for calculating the minimum ion error, which is used in PMF, has now been added to the code. A new checkbox is added so that users wishing to do pmf can export a single igor text file with all the pertinent waves (time series, amus, Data matrix, etc) . It does not do any down-weighting, removal of blank rows, etc. * Changed the frag_organic[47] entry to be = 47 - frag_nitrate[47]. This contribution is very small; it has been changed for completeness and for the very rare instances of very high organic (100s ug/m3) signal. * Changed the defauilt behavior so that organic species includes PAHs. If users want to examin PAHs they must opt to do so. Else the PAH species will not be computed correctly. For almost all applications the PAH contribution is tiny, this is a non-issue. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.50K Notes by Donna Sueper 14 Jan 2011 * Fixed smallish bugs - one having to do with large data sets & PToF data, another having to do with normalizing PToF data outside the bounds for which data was taken. Also fixed incorrect mass values for two ions within the m/z calibration. Update since ToF-AMS Analysis Toolkit v1.50F Notes by Donna Sueper 22 Sept 2010 * Added some optional checkboxes to the m/z calibration panel for speedier update of graphs. Overhauled the fast mode data panel & code. Updated code for Igor 6.21 and userdata commands. ------- SQ_AMSPanel_1_51------- New functions: * fm_DoNans Helper function for fast mode data. * fm_butt_FastKeySeriesTable Creates optional table for fast mode data. * fm_butt_FastStartEndTable Creates optional table for fast mode data. * fm_butt_FastClosedTable Creates optional table for fast mode data. * sq_TasksForPMFOutput Helper function that gathers all waves needed for PMF and saves as a Igor text wave for importing into the PMF experiement. *SQ_ChangeOrgLessPAH Added checkboxes in frag panel to allow users to optionally select Org to be defined as Org - PAHs. Deleted functions: * fm_makeTodoFirstXFast Fast mode code was overhauled. Modified functions: * sq_globalsGeneral New variables added, old removed. * sq_ams_panel Removed the preprocess raw checkbox as users should never do this. Rearranged the Frag Checks tab. Moved the Fast mode button with the other Pre-Process buttons. * sq_tabControl Changed the tab so new creations of the squirrel panel will correctly highlight options in the pre-process section. * sq_butt_getSquirrelIndex Added a SetDataFolder root: just in case. * sq_initializeAfterGetIndex Now returns a string that can indicate if MSSDiff_p is in an intermediate file or in memory. * sq_makeTodosFromChangingVals Added some code to hopefully reduce the instances of unneccesary allPToFGrpx todo waves. * sq_makeToDoFastOC Now creates a allSlow todo wave (if needed). * sq_file2SquirrelIndex Slightly changed for instances where we may have duplicate runs. The first run of duplicate runs is used. * sq_butt_pre_process Added code to make celar if/when MSSDiff_p is in memory or interm. file. * sq_ck_preProcess Removed checkbox option that allowed users to find difference sticks via open - closed sticks. It just confused users and didn't really make any difference. * sq_diffCalc Added code to be clear when we were putting mssdiff_p matrix in memory. * sq_fillBlanks Code comment cleanup. * sq_diag_list_init Added two new parameters: fastMSTimeWithinCycle, fastMSRunWithinCycle * sq_butt_url_FAQ Updated URL. * sq_butt_corrections Added unit resolution baseline sticks for error calculations. * sq_setAB Changed where the root:diagnostics: airbeam wave gets set. Now it is done in sq_butt_reset_AB * sq_butt_reset_AB Changed where the root:diagnostics: airbeam wave gets set. Now it is done in sq_butt_reset_AB * sq_ck_controlSticks Removed the OMinusC stick checkbox * sq_verifyTodoForPToF Now checks TimeAcquiringPToFInRun because numTimesThrough sometimes >0 even though we aren't in PToF mode * sq_PToF_DCGr_butt_plotDC Added a sanity check for when the run number doesn't exist. * sq_butt_DVaGraph Small bug fix for killing a temporary wave * sq_MSstick Added code to be clearer when MSSDiff_p is in memory or intermediate files. * sq_MSCalc_TSeriesMSMatricies Function now returns a list of destination waves. * sq_butt_MS_Calc Added a sanity check for the data type Changed a variable so that it now checks for the option to export an itx for PMF analysis. * sq_MSCalcPlot_Avg Igor 6.2 change. Each userdata command is now on it's own line. * sq_MSCalc_avgRaw Silly error, I hard coded a run number when I was debugging. * sq_findRun Added a sanity check in case the lastfind was a nan. * sq_fragList_pass Small bug fix for frag entries such as blahxx-yy. * sq_fragList_convert Changed arbitrary value of the maximum recursions from 1000 to 300. In case where things went awry, it took a long time for the code to conclude that something went wrong. * fm_initialise_FMS Added globals, changed the look of the panel. * fm_analysis_panel Added globals, changed the look of the panel. * fm_butt_BaselineDiags Serious rearrangement of code prompted by Tim O's monster set of fast mode files. * fm_BslSetVarProc Added sanity check. * fm_butt_DefineCycles Added sanity check. * fm_butt_makeFirstFastToDos Serious rearrangement of code prompted by Tim O's monster set of fast mode files. *fm_DoExtrapolateClosed Added explanatory text in abort statement. * fm_AvClosed Use MatrixOp for faster execution and sanity check. fm_DoAvClosed Added a killwaves of a temporary wave * fm_DoZeros General code cleanup. * sq_fragPanel_make Modified to include radio buttons for org +=PAH ------- SQ_Backbone_1_51------- Modified Functions: * squirrel_fetch Found a bug where by chunks were incorrectly created - if (dimsize(squirrel_index,1)>8) ------- SQ_MzCalBkgd_1_51------- New Functions: * mz_individMassFitGraphs Separated out this function from a bigger function for modularity. * mz_showGraph_CheckProc A function which optionally shows or hides graphs in the m/z panel so that it can update faster. Modified Functions: mz_createGlobalsMzCalibration Created OneRunDisplayPC_GaussFit in this function instead of when the individual graphs are displayed. * mz_makeMzCal_Waves Expanded the list of ions in the default table. * mz_initializeMzCalibration Added a sanity check regarding OneRunDisplayPC_GaussFit * mz_calibrationPanel Added checkboxes for optionally displaying graphs for large data sets. * mz_setppmAxis Adds sanity check for when graph is popped. * mz_individualMassFitGraphs Significantly overhauled with the addition of the mz_individMassFitGraphs function. * mz_individualMassGrPlacement Changed to reduce the number of parameters sent. * mz_butt_beginMzFitting General code cleanup. * mz_reSizeMzCalWaves Changed code so that only one type of spectra (open or closed) is ever used. * mz_calibration Now allows the fitting of diff spectra * mz_adjustFitAxis Added a parameter for option plotting. Was a part of general reorganization of individual graphs. * mz_getOneFitEstimate Removed 2 parameters for option plotting. Was a part of general reorganization of individual graphs. * mz_fitOneRun Now allows the fitting of diff spectra * mz_calcFitOneMassSpec Code cleaned up to allow for only one type of spectra to be fit. mz_pop_viewVorW_PW Bug fix in 1.50B, wave mzInt = root:diagnostics:mzIntercept * mz_butt_fitThisRun General code cleanup. * mz_populate_FitOneMassGraph Added a vertical line for where the peak center lies. ------- SQ_FragDiag_1_51------- New Functions: * sq_butt_fragTableThis In the new frag check panel, there are button for the user to go directly to the relevant entry in the frag table. * sq_goToFragEntry From the button control, it deciphers which frag entry to go to. Modified Functions: * FD_modifyBatch Removed reference to wave/t tof_list, which is no longer used. * sq_FragCheckPanel Added buttons for going directly to the frag entry for the relevant graph. ------- SQ_MSconc_1_51------- New Functions: * Err_minErr1ion Copied from Igrid's code. Changed the names to be modular. Modified Functions: * sq_err_calc Added code for inclusion of baseline values. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.50 Notes by Donna Sueper 14 Sept 2010 * Fixed a small bug introduced in 1.50 that prevented users from averaging raw mass spec (results were nan). Update since ToF-AMS Analysis Toolkit v1.49 Notes by Donna Sueper 31 Aug 2010 * Added various bits of functionality and very minor bug fixes. * New FragCheckPanel for viewing most important plots for adjusting frag table entries. The panel currently gives a handy overview of important plots all users should examine for possible. frag table modifications. This panel was not fully vetted by important contributors before its release. * Added more PToF functionality. Not all this functionality has new buttons on the main panel paired with it. Users can now do m/z calibration on raw PToF data (the PToF bins are summed to mimic an MS mode spectra). * Fixed a very rare bug having to do with preprocessing of sticks when the DAQ settings changed such that the minimum m/z value decreased. Resulting time series and avg mass spectra values were nonsensical in the few data sets in which it occurred. ------- SQ_AMSPanel_1_50------- Deleted functions: * sq_PToF_preprocess Functionality has been moved to sq_create_MS_PToF. * sq_findMaxMz Now usurped by sq_findMaxMinMz. New functions: * sq_initializeAfterGetIndex As soon as the DAQ hdf files are indexed (within root:index:squirrel_index) this function creates todo waves, diagnostics waves,etc. This functionality was previously in the sq_butt_GetIndex function, but was isolated to be more modular for the tag software. * sq_checkPToFGroupings This function is used to check if a todo wave has PToF settings in the same group. It generates a non empty string when a todo wave overlaps more than one PToF groups * sq_create_MS_PToF A squirrel fetch function that adds all the PToF bins for a single run together for later use. * sq_MinAvgMStoZero This function is used when the DAQ settings may have been changed, and the smallest mz stick value became lower (i.e. going from a minimum m/z of 8 from a previous value of m/z of 10) * sq_findMaxMinMz A generic function that returns either the biggest or smallest value in the todo wave for the mFinish or the mStart values. * sq_findMaxMinSQIndex A function somewhat similar to sq_findMaxMinMz, only it looks to the dimension entries in the squirrel_index wave. * sq_getDetectorStr Simple function that returns the detector type ((i.e. V_EI) for a given run. * sq_PToFCollapseSizeOneRun For an individual run of PToF data, this function generates a single MS wave by summing all the PToF bins. * sq_PToFDataSlice Extracts section of PToF matrix for one run between BinStart and BinStop (not the entire PToF 'bin' dimension). This function is not currently being used but will be handy in the future. * sq_PToFExtractEachBinOneRun Creates individual ptof bin waves named PToF0, PToF1, ... PToFmaxBin. This function is not currently being used but will be handy in the future. * sq_PToFStickDiagOneRun For one run number this sums up all the PToF bins and displays two graphical comparisons. One graph is a spectra with the MS and the PToF values displayed side-by-side, one is a correlation plot. This function is not currently being used but will be handy in the future. * sq_PToFRawDiagOneRun Similar to sq_PToFStickDiagOneRun only for raw spectra. This function is not currently being used but will be handy in the future. * sq_SumPToFSizeGroups Given a 3-D PToF matrix, this function find the average across grp-many PToF bins.This function is not currently being used but will be handy in the future. * sq_DisplayRawPToF_iToF Displays Raw PToF and MS open spectra in iToF space.This function is not currently being used but will be handy in the future. * sq_DisplayRawPToF_Mz Displays Raw PToF and MS open spectra.This function is not currently being used but will be handy in the future. * sq_DisplayRawPToF_corr Displays Raw PToF and MS open correlation.This function is not currently being used but will be handy in the future. * sq_DisplayStickPToF_corr Displays stick PToF and MS open correlation.This function is not currently being used but will be handy in the future. * sq_DisplayStickPToF_Mz Displays stick PToF and MS open spectra.This function is not currently being used but will be handy in the future. * sq_SetProcessedPaths Creates and sets the global string root:processed_path containing the path of the intermediate data files. This functionality was extracted from the step in sq_butt_PreProcess * sq_SetDAQHDFpath Moved from sq_butt_getSquirrelIndex for modularity. Returns the path string for hdfDirPath. * sq_PromptForFragWaves Added code for the very rare occassion where the frag data folder and its waves do not exist. * sq_GetIntermedFileName Added new functionality so that a user can specify the prefixes of the intermediate files (instead of AMS_intermediate_xxx.hdf). * sq_generateOne2OneWave Simple function for create a wave called one2one which can be used in correlation etc plots. * sq_butt_killWavesInFolder Generic function for killing all the waves in a given folder. Can be used to kill waves in the ms_mats folder. Modified functions: * sq_globals Added the creation of data folders root:ms_mats and root:hoard to this function instead of during the preprocess step. * sq_globalsHDFIndex Added a new checkbox on the panel for user-defined intermediate file name prefixes. * sq_globalsChecks Added a new global string root:panel:FragCheckInfo for the new frag check panel. * sq_globalsMisc Added a new checkbox on the panel to kill temporary waves in the ms_mats data folder. * sq_ams_panel Added new checkboxes on HDF Index tab, misc tab. * sq_ams_prog_upd Added a new optional parameter in anticipation of merging with the ToFWerk code. * sq_ams_stat_upd Added a new optional parameter in anticipation of merging with the ToFWerk code. * sq_butt_getSquirrelIndex In 1.49E the diagnostics and misc other checking was moved to its own function sq_initializeAfterGetIndex. * sq_makeTodosFromChangingVals Now returns a counter of the number of changing data sets (allPToF_grp05, etc). * sq_file2SquirrelIndex Added code to optionally not index any BFSP data. * sq_butt_pre_process Added code to optionallyget a file prefix for intermediate file names. Redid the preprocessing of PToF data to ensure PToF groups were done as groups. Also checked the m/z min and max of stick matricies. * sq_diagnostics Added code to handle the case where newly added DAQ hdfs were acquired before runs that have already been indexed. * sq_butt_corrections Changed default behavior so that MSSDiff_p is stored in hdf, not memory. * sq_stickCalcPrepRegion Added an if statement to prevent cases when code tried to access out of bound ranges for waves. * sq_stickCalc Minor code cleanup. * sq_PToFstick Added an iToF_offset value for users who were having AP240 card timing issues with their raw PToF data (Jose@Calnex, Jill @CalTech) * sq_MSCalc_TSeriesMSMatricies Fixed a small bug whereby the entire m/z dimension was generated even though the user requested a smaller set. * sq_butt_MS_Calc Fixed a small bug for the MSTimeSeries product (i.e.for PMF) whereby the entire m/z dimension was generated even though the user requested a smaller set. * sq_MSCalcPlot_Avg Fixed a small bug whereby graph controls were appended even though the user requested no controls. * sq_MSCalc_avgStick Fixed a small bug for MS data sets of varying maximum m/z, the old code incorrectly assigned values of 0 to spectra at higher m/zs (to fill in the matrix). Code now only calculates nonzero values for the minium largest m/z. * sq_MSCalc_avgRaw Fixed a small bug for MS data sets of varying maximum m/z, the old code incorrectly assigned values of 0 to spectra at higher m/zs (to fill in the matrix). Code now only calculates nonzero values for the minium largest m/z. * sq_diurnalIndex Fixed a small bug having to do with the display of the last hour (hour 23 - 24) * sq_butt_ToFConc Added an alert for when the user want to average across PToF todo waves. * sq_update_diagPlot Changed axis labed from 'Resolution' to 'Resolving Power' * sq_plot_corr Added a bit of code from Mike Cubison for appending lines indicating the airbeam reference run periods. * sq_getThisRawMS Minor code cleanup. * sq_windowIsToBePopped Changed dimensions of window of default graph * sq_butt_transferMSSDiffpToHDF Fixed a minor bug the forgot to transfer the MSSClosed_p_err matrix to intermediate files when the MSSDiff_p_err got transferred. * sq_exportForDataBase Functionality tweaked only a small bit. * sq_exportSaveFileDB Functionality tweaked only a small bit; added legends etc to itx waves. * sq_exportDBDAQInfo Small typo fixed. InfoVal values were not being written. * sq_exportCompileDBInfo Small typo fixed. Data in DBInfo wave is now correct. * sq_butt_exportDBCreateFile Added sanity check for the use of species and HR data. * sq_exportForDBRawSpectra Appended source name to waves as per Jose's suggestion. ------- SQ_MzCalBkgd_1_50------- Modified functions: * mz_calibrationPanel Changed the placement and title of the button for naning all previous slope, intercept, etc. entries. * bk_butt_setResolutionToDefault Fixed a bug that simply initialized the R0, etc parameters if they didn't exist. * mz_butt_SetParamsToNan Changed the functionality of this button so that only the runs in the currently selected to do wave are nanned (not the entire wave). * mz_createGlobalsMzCalibration Added the ability to change Spec settings to use PToF (the MS spectra summed across all PToF bins). Also added the ability to use a constant power value (as per John S.'s m'z calibration work. * mz_calibrationPanel Updated panel for the new features. * mz_individualMassFitGraphs Allowed for the use of raw PToF spectra. * mz_butt_beginMzFitting Allowed for the use of raw PToF spectra. * mz_fittingParamGraph Allowed separate use of Open, Closed and Diff mz waves for display. * mz_fittingParamTable Allowed separate use of Open, Closed and Diff mz waves for display. *mz_fitOneRun Allowed for the use of a constant, non 0.5 value for the power parameter. * mz_calcFitOneMassSpec Allowed for the use of raw PToF spectra. * mz_pop_viewVorW_PW Began to consider situation where different detection modes are used (i.e. VUV and EI). * mz_butt_fitThisRun Allowed for the use of raw PToF spectra. * mz_setVar_runNum Replaced the use of sq_getToFIonizationStr with sq_getDetectorStr. * bk_setUpRawSpectraThisRun Slight tweak to the slider control, so max m/z ifs found for that particular run. * bk_setVar_runNumberVW Replaced the use of sq_getToFIonizationStr with sq_getDetectorStr. * mz_butt_declareParamsAsOC Allowed for the use of raw PToF spectra. * mz_butt_revertMzCal_Spec Allowed for the use of raw PToF spectra. ------- SQ_MSconc_1_50------- Modified functions: * sq_err_calc Minor bug dealing with whether the location of the error matrix is in memory or in intermediate files. ------- SQ_FragDiag_1_50------- New functions: * sq_FragCheckPanel Brand new panel that will eventually usurp the old set of "Alice's Diagnostics" plots. This panel was not fully vetted by all interested parties before it's release in 1.50. * fc_populate_org44_v_org43Graph Appends graph traces in the panel or in a popped graph. * fc_populate_org29_v_org43Graph Appends graph traces in the panel or in a popped graph. * fc_populate_org15_v_org43Graph Appends graph traces in the panel or in a popped graph. * fc_populate_m16_v_m14Graph Appends graph traces in the panel or in a popped graph. * fc_populate_NH417_v_NH416Graph Appends graph traces in the panel or in a popped graph. * fc_populate_m16C_v_m18CGraph Appends graph traces in the panel or in a popped graph. * fc_populate_m17C_v_m18CGraph Appends graph traces in the panel or in a popped graph. * fc_populate_m39_v_m43Graph Appends graph traces in the panel or in a popped graph. * fc_populate_m41_v_m39Graph Appends graph traces in the panel or in a popped graph. * fc_calcPredictNH4 Appends graph traces in the panel or in a popped graph. * fc_populate_NH4MeasPredGraph Appends graph traces in the panel or in a popped graph. * fc_populate_WaterVsTotalGraph Appends graph traces in the panel or in a popped graph. * fc_populate_SO4FragGraph Appends graph traces in the panel or in a popped graph. * fc_populate_NO3FragGraph Appends graph traces in the panel or in a popped graph. * fc_populate_Org44vOrgGraph Appends graph traces in the panel or in a popped graph. * fc_populate_NO3VOrgGraph Appends graph traces in the panel or in a popped graph. * fc_populate_SO4vOrgGraph Appends graph traces in the panel or in a popped graph. * fc_butt_wikiHelp Button in FragCheckPanel that takes the user to the wiki desctribing frag table modifications. * fc_butt_colorLegend Generates a time series color legend. * fc_butt_Kplots Supplemental plots of K fragments. * fc_butt_H2Oplots Supplemental plots of H2O fragments. * sq_butt_FragPanel Button on main squirrel panel, Checks tab for generating the new FragCheckPanel. * CalcMeanSize Function for calculating the mean DVa size of a species using PToF data. This function is handy; there is no button on the main panel to call it (yet) Modified functions: * FD_Check_batch Added Org29 and Org15 as new 'species' * FD_GenerateFragTrends Added Closed spectra of 16,17,18 for possible use in water frag table adjustments. ------- SQ_Backbone_1_50------- Modified functions: squirrel_fetch Added several local variables (min_cl) and associated functionality in anticipation of merging code with TofWerks ( code from Mike Cubison). squirrel_hdf_write Added local variables for chunks and associated functionality in anticipation of merging code with TofWerks ( code from Mike Cubison). New function * sq_journal_add_var Mike C's function for retrieving a variable's value if it exists ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.49B1 Update since ToF-AMS Analysis Toolkit v1.49A Notes by Donna Sueper 1 June 2010 * Fixed a four smallish bugs. (1) had to do with run numbers bigger than 1 million (Reddy and Tag!), (2) had to do with the Get Index using load new only - this was a bug introduced in the latest version, (3) had to do with a missing procedure on the Transfer MSSDiff_p to hdf button on the misc tab (4) had to do with the MSSDiff_p_err matrix not being stored to hdf in the MSSDiff_p matrix was stored to hdf. Update since ToF-AMS Analysis Toolkit v1.49 Notes by Donna Sueper 29 Apr 2010 * Fixed a smallish bug that crept into 1.49. The species specific time series correction waves were not applied - but is now fixed in 1.49A. Update since ToF-AMS Analysis Toolkit v1.49 Notes by Donna Sueper 21 Feb 2010 * Added code to simplify the creation of average spectra for export as .itx files into the AMS data base. * Changed the Org species to include PAHs and added another species called OrgLessPAH which has the PAHs removed. * Changed the code for averaging in the time dimension. The old code simply used as a time weight the difference in time between consequtive runs. The new code looks to DAQ values of time spent in different modes (open, closed, fast) for a more accurate time weight. * Added code to hand cases where the user selects a nonzero or non-nan save interval value in the Get Index step. New code automatically, correctly, resizes many important waves such as corr_fact and mz calibration parameter waves. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.48A Notes by Donna Sueper 25 Nov 2009 * Version 1.48A had bad PToF parameter for b (in the conversion from ToF to aerodynamic diameter). Also added a Single Ion value as is auotmatically calculated by the DAQ. * There was also a small bug with species corrrection wave - it wasn't being applied; bug is now fixed. * Small changes were made to properly load in some PToF parameters that were moved from ParVal to ComParVal. This affects data taken with DAQ 3.0.14 and higher (2009 User's meeting DAQ release). * Version 1.48B wasn't compatible with data taken from old DAQs where no ComParVal data sets exist. Now fixed. * Also two changes to the default Org frag table were made to have consistency with High Resolution Organic frag table defaults. (old Org m/z 18 =1*frag_organic[44], new = 0.225*frag_organic[44] (old Org m/z 28, new= 0 frag_organic[44] ------- SQ_MzCalBkgd_1_48.ipf------- * mz_fitOneRun In old code, often the first run was flagged as a bad run. This was a bug - the first run was not initialized properly - this has been fixed. * bk_createGlobalsBaseline Changed the default string of bk_MassWhenDeltaGT4, the mass that indicates where the stick integration region>.8 m/z. ------- SQ_FragDiga1_48.ipf------- No Change. ------- SQ_Backbone_1_48.ipf------- * squirrel_fetch Added optional PToFBinStart and PToFBinStop to the parameter list for future inclusion of more sophisticated retrievals of PToF stick and raw data (instead of the entire m/z range acquired by the DAQ). ------- SQ_MSconc_1_48H.ipf------- * sq_MS_concentration Added waves TimeMSOpen, TimeMSClosed, TimePToFSec, FastModeAvgTimeSec in the declaration for later possible use in the time-weighting functionality. Added timeweight_op flag for new time-weighting functionality. ------- SQ_AMSPanel_1_48.ipf------- New functions: * sq_t_series_map Added to deal with non-zero interval values after an initial get index, and/or the instance of more runs indexed that were acquired before or after current runs *sq_remapWavesAfterMoreRuns, With sq_t_series_map, a function that expands important waves such as corr_fact in the instances of non-zero interval values after a Get Index operaion. * sq_getColorString A multipurpose function that returns the R,G, B, color values as a string for a given species. * sq_butt_sortedOrgPlot A handy function for sorting average Org m/z values based on their contribution to the total Org signal. Has not been incorporated into a button on the top controls for an average mass spectra graph. // Function for the export to data base tool * sq_exportForDataBaseGlobals Creates globals used in the panel and as input for metadata. * sq_butt_exportDBPanel Brings to the front or creates the Export to Database tool * sq_exportForDataBase Does any squirrel averaging in preparation for saving to the database itx file. * sq_exportSaveFileDB Creates the file that users will submit to the database. * sq_exportDBDAQInfo Creates a waves containing the ParVal, InfoVal, and optionally the ComParVal values and attributes for later inclusion in the database file. * sq_exportCompileDBInfo Creates a text wave containing all the metadata information (PI, vaporizer temperature, etc) * sq_butt_exportDBPath Button control function that prompt user for file path to put the database file. * sq_butt_exportDBCreateFile Button control function that users push to create the database file. For HR data, execute functions are used so as to not rely of pika ipfs being available. * sq_butt_exportDBUMRWebsite Button the connects the user to the UMR data base web site. * sq_butt_exportDBUMRwiki Button the connects the user to the squirrel wiki FAQ about the data base & the export tool. * sq_butt_exportDBHRWebsite Button the connects the user to the HR data base web site. * sq_butt_exportDBHRwiki Button the connects the user to the pika wiki FAQ about the data base & the export tool. * sq_butt_exportMailToML Button that starts an email message to send the file to Michael Lechner. * sq_exportDBUMRorHR Control function for the radio buttons selecting UMR or HR spectra * sq_exportDBSigType A control function for manipulating filename for C, V, W, or HR type. * sq_exportDBToDo Popup Menu for todo wave selection - updates data type, if C, V, W, or HR. * sq_exportDBSource Control function that updates the name of the database file with the source descripter (i.e. OleicAcid) * sq_exportForDBRawSpectra Prepares average raw spectra if a supplimental file is creates. Modified functions: * sq_globalsCorrections Readded code for ptof_dcMarkersPtWave, as James used it when he redid the DC marker corrections in 1.46A * sq_globalsPToF Changed the default of root:panel:tof1_norm to not use the normalization factors. * sq_globalsChecks Changed the default of root:panel:fDiag_useAirbeam to use the AB correction factor.. * sq_ams_panel Added a button the MS tab, Average spectra section for the export to database functionality. * sq_butt_getSquirrelIndex Got rid of old useless global variables root:index:datapos, root:index:dataold and instituted a better method of dealing with new runs or more blank runs during a Get Index execution with a non zero autosave value. * sq_makeTodosFromChangingVals Added an upper limit to the number of PTOF grouping todo waves that can be created. * sq_file2SquirrelIndex Fixed a bug whereby the ComParVal data set wasn't being indexed properly. This bug did affect anything unless a user tried to dump this data set for a few later runs. * sq_butt_diagUpdate Bug fixed in 1.48A, C, that had to deal with using ComParVal data sets. * sq_gen_t_series Duplicates t_series into root:diagnostics:t_series_old for instances when we need to redimension waves from a non-zero autosave Get Index. * sq_diagnostics Bug fixed in 1.48A, C, that had to deal with using ComParVal data sets. * sq_diag_list_init Bug fixed in 1.48A, C, that had to deal with using ComParVal data sets. Did some reorganizing to make debugging easier. * sq_checkMzFittingWaves Small bug fix for a non-zero autosave Get Index. * sq_setAB Redimensions the airbeam wave for a non-zero autosave Get Index. * sq_insertStick_check Small but potentially very bad bug for situations where the mz start value (set in the DAQ) was not monotonically increasing. * sq_MSCalc_TSeriesMSMatricies Added a new timeweight_op flag. * sq_MSCalc_avgStick Added a sanity check in case the user mistyped (i.e. ogr, instead of Org) * sq_MSAvgGraph_updateTraces Small bug fix for negative average mass spectra. * sq_MSplot_DiurnalBoxPlot Corrected typo that labeled left, instead of the botoom axis, Diurnal Hour. * sq_butt_ToFConc Added time weight functionality. * sq_diagostics_check_MarkerType Added a modify gaps for the case of non-zero interval Get Index calls. * sq_butt_DVaTable Killed an unneccessary abort statement. * fm_butt_MSSDiags Changed old variable ms0_ck_convert2ug to new variable ms0_ion2mass ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.47D 2009 Users Meeting Release Notes by Donna Sueper 28 Oct 2009 ----------Begin In a Nutshell---------- * Two tools have been added to help with out-of-memory types of errors: (1) Move MSSDiff_p (and MSSDiff_err if existing) to intermediate hdf files. There is a new button on in the misc tab to accomplish this. Once a user makes a decision to put this in intermediate hdf files, it will always remain so; there is currently no 'undo' button. (2) Creation of 2-d matricies now allow a maximum m/z range. Often users who want to perform PMF do not need the full m/z range of data that was taken. A new checkbox allows users to specify the maximum m/z range. * In generating 2-D time series mass spectra matricies (in the MS tab), if the user requests ug/m3 units, then the specie's RIE and CE are now correctly applied. In previous versions, these 2-D matricies were in Nitrate equivalent units (RIE and CE =1). This scalar factor has no bearing on any previous PMF results, but user's should be aware of this. * Fixed a bug whereby the wave root:diagnostics:TimePTOFSec was calculated incorrectly. This wave was never used in calculations, yet, but will likely be used in the future for generating PToF errors. * Added the ability to do baseline subraction for PToF stick recalculation, and reworked the baseline algorithms to make it go faster. (Thanks James!) *Slightly changed the default resolution parameters to be the same for all tof types, (C,V, W) to R0 = 350, dm = 50, m0 = 75. ------- SQ_AMSPanel_1_47.ipf------- Deleted functions: * sq_smoothAcrossNans * sq_smoothMaxTime James reworked his sq_smooth_nans function to more cleanly handle these cases. New functions: * sq_FromMemToHDF A squirrel fetch function to move a data set such as MSSDiff_p to an intermediate file. This is useful in experiments where there are many (>70,000) runs and this matrix takes up too much memory. * sq_butt_transferMSSDiffpToHDF A button on the misc tab of the AMS panel to begin the move of MSSDiff_p and MSSDiff_err_p, if it exists, to intermediate files. * gen_removeSpacesTextWaves A general purpose function for removing spaces in text waves. It is used to clean up frag waves. * gen_FindWaveInTableGraph A general purpose function that returns the name of a graph or table window that contains a wave. It is useful for when you want to kill a wave but a window lurks somewhere thatis using it. * sq_getNewDiagValuesList A new fetch function for retrieving any parameter from the infoVal or ParVal or ComParVal data sets for all runs. Will be useful when we find we need a parameter that wasn't extracted in the diagnostic list. * sq_recalcTimePTOFSec Fixes the wave root:diagnostics:TimePTOFSec that was calculated incorrectly in previous versions. Modified functions: * sq_initializeResolutionParams Changed the parameters to be the same for all ToF types (C, V, W): R0 = 350, dm = 50, m0 = 75. * sq_globalsHDFIndex Added a new global recalcSticks_UseBkFit_pTOF_ck for PToF baseline subtraction, and changed the default for the global recalcSticks_OC_MS_ck so that it is not checked by default. * sq_globalsMS Added ms0_promptForTSMSmaxmz that gets the max m/z value so that the 2D time series mass spectra (i.e. input for PMF) uses maximum m/z value, not the maximum stick value. * sq_start_popup Added a line that refreshed the todo wave list upon AMS panel creation. * sq_ams_panel Added buttons, variables etc to the AMS panel. * sq_pop_getVariable Killed a line for a global that is no longer used. * sq_butt_getSquirrelIndex Made a change for sp2 data, so that the max m/z doesn't automatically cut off at 1000 m/z. Alsof fixed a small bug with imt_series when one tries to process only one run. * sq_makeTodosFromChangingVals Reworked to allow the creation of PToF 'group' todo waves. Whenever an important parameter is changed, a new PToF todo wave is formed. * sq_file2SquirrelIndex Fixed a small bug that occurred with a data set that had only one run with no MS data and just PFoF data. * sq_butt_pre_process Added a flag to inidicate if the user wants to put the MSSDiff_p matrix in memory or not. James added a global bk_UseCubicSpline and recalcSticks_UseBkFit_ptof_ck for PToF stick recalculation, baseline subtraction. * sq_fillBlanks Fixed a bug introduced in 1.47 that had to do with the interpolation of closed spectra (typically for fast mode data - Eiko's issue). * sq_diagnostics Fixed a bug in the calculation of TimePTOFSec, and added notes to the diagnostic waves to indicate what data set and column they were extracted from. * sq_butt_addToBlacklist Fixed a small bug found in1.47 and fixed in 1.47C. * sq_butt_csrSetRunIntervals Fixed a small bug that occurrs with large run numbers (>1e6) * sq_butt_appGraphDefs Added a /z flag to a modifyGraph command so that it doesn't give an error (Paul W request) * sq_MSAvgGr_25butt Slight bug fix so that all combinations of sticks and/or raw spectra will have the axes expanded or shrunk. * sq_butt_corrections James redid the sq_interpolateWave function; it has another parameter. * sq_ck_controlSticks James added checkboxes on the main AMS panel for recalcing PToF sticks with a baseline removed. * sq_applyDCmarkers Added a line to kill W_ExtractedRow when the function is finished. * sq_dcMarkersExamine Added code to prevent run number strings from going bad at high runs (>1e6). * sq_PToF_DCGr_setVar_mz Added code to prevent run number strings from going bad at high runs (>1e6). *sq_stickCalc James redid the baseline calculation part of this. * sq_MSstick James redid the baseline calculation part of this. * sq_PToFstick James redid the baseline calculation part of this. * sq_MSCalc_TSeriesMSMatricies Added a parameter for the max m/z value. * sq_butt_MS_Calc Added a prompt to get the max m/z value if 2d tseries mass spectra matricies were requested. * sq_MSCalcPlot_Avg Fixed a few small display bugs found by Leah W. * sq_MSCalc_avgStick Killed an obsolete global ms0_ck_AvgMSSpeciesErr and made sure that the correct RIE and CE were applied in the legend totals. * sq_MSCalc_avgRaw Renamed the average raw spectra as Leah W suggested. * sq_MSAvgGraph_updateTraces Added a parameter for clearer updating of this troublesome graph. * sq_MSAvgGraph_updateLegend The name of the graph is now passed as a parameter to avoid strange things happening (to other, non-top window graphs). * sq_MSplot_DiurnalBoxPlot Added the plot window name to commands to avoid strange things happening (to other, non-top window graphs). * sq_MSPlot_Tseries Accomodated the "Do nothing" option for graph output. * sq_butt_ToFConc Added some code so that if a user chose Append as a graph output it makes sense. * sq_plot_ptof1_av Added the plot window name to commands to avoid strange things happening (to other, non-top window graphs). * sq_MSAvgGraph_updateControls Added a /z flag to a ModifyGraph command so it won't choke if a wave isn't plotted (Paul W request). * sq_getParamStr Initialized a local string to prevent a rare bug. * sq_interpolateWave Completely reworked by James. This very old stuff needed spiffing up. * sq_findLast Fixed a bug about calling the wrong wave. * sq_getThisRawPToF_viaFetch Fixed a small bug that occurrs with large run numbers (>1e6) * sq_getThisRawPToF Fixed a small bug that occurrs with large run numbers (>1e6) * sq_butt_modifySI Added the ionization type wave to this table * sq_getThisRawMS_viaFetch Fixed a small bug that occurrs with large run numbers (>1e6) * sq_getThisRawMS Fixed a small bug that occurrs with large run numbers (>1e6) * sq_interpolateWaveSameMode James added a 'kill' parameter. * sq_repeatLastNonNanSameMode James added a 'kill' parameter. * sq_roughAvgRawSpec Fixed a small bug that occurrs with large run numbers (>1e6) * sq_roughAvgRawSpecNonp Fixed a small bug that occurrs with large run numbers (>1e6) * sq_fragPanel_compareFrags Fixed a small bug having to do with the initialization of a local string (Amber's issue). *sq_AreNansInWaveList Fixed a small bug that occurrs with large run numbers (>1e6) * fm_butt_MSSDiags Fixed a small bug that had to do with a missing colon on the end of a path string. ------- SQ_backbone_1_47.ipf------- * squirrel_fetch Upon the urging of Tim O, added some checks to see that HDF5 files were really closed after we sent a command to close them. Also added one more case-sensitivity check for data set names in hdf files. * squirrel_hdf_write Removed an old check about the existence of data sets in memory. We now may want to write MSSDiff_p, which traditionally resides in memory, to an intermediate file. ------- SQ_FragDiag_1_47.ipf------- * FD_butt_CalcBatch Added a new sanity check for the existence of the MSSDiff_p matrix. ------- SQ_MSConc_1_47.ipf------- *sq_MS_concentration Killed a dummy wave that was used for debugging. Added a function call to remove blanks in frag waves. Previously, blanks could have resulted in an error. Fixed an error in version 1.47D that had to do with calculting errors using sparse matricies. (It is noted as a fix in version 1.47H in the code). * sq_err_calc Now allows for the saving of this the MSSDiff_Err matrix to an intermediate file instead of to memory. ------- SQ_MzCalBkgd_1_47.ipf------- New functions: * bk_smoothcompliment Written by James, a cleaner way to do smoothing than the old smooth_nans. Modified functions: * mz_butt_beginMzFitting Added the killing of myCoeffWave, myConstraintWave, which were left hanging out in the root folder. * mz_adjustFitAxis Sets the min value in small peak graphs to be 0. * mz_getOneFitEstimate Fixed a small bug that occurrs with large run numbers (>1e6) *mz_butt_filterBadFitsNow Many functions called within now need another parameter after the changes James made to sq_RepeatLastNonNanSameMode and sq_InterpolateWaveSameMode. * mz_fitOneRun Made the coefficient wave double precision. Also added the important /g flag to the curve fits so that the initial guesses in the coefficient wave are used. Oy! * bk_createGlobalsBaseline killwaved root:baselineFitting:pt_peak which is no longer used. * bk_BaselinePanel Changed the title of a tab from "Advanced Options" to "More Options" Changed the max m/z value to be 5000. * bk_setUpRawSpectraThisRun Fixed a small bug that occurrs with large run numbers (>1e6) * bk_fitStickCompliment James added to parameter to the function call for smoothing and smoothing method identifiers. James significantly redid this code. * bk_makeBkZeroBeyondMassX James added a flag for PToF data. * bk_butt_calcBkFit Many function called within have a new number of parameters due to James rearranging of baseline code. * bk_createBackgroundValues One function called within have a new number of parameters due to James rearranging of baseline code. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.47 Notes by Donna Sueper 2nd Oct 2009 ----------Begin In a Nutshell---------- A bug in the calculation of errors was introduced in verion 1.47 which was released in July, 2009. The species errors were underestimated. They were calculated incorrectly by the ommission of a square term for the species-specific multiplicative matrix. All other calculations (for time series, average mass spectra, etc) were are and correct. ------- SQ_MSconc_1_47.ipf------- * sq_MS_concentration Users can search for 1.47D in the code to find the place where the species matrix is now squared before the cross product of the squared error matrix. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.47C Update since ToF-AMS Analysis Toolkit v1.46 Notes by Donna Sueper 21st August 2009 ----------Begin In a Nutshell---------- * This version fixes two minor but annoying bugs: (1) For average mass spectra plots where the units of species sticks are ug/m3, the values in the legend are incorrect. The error is that the average species values in the legend are the nitrate equivalent values, not the species-specific ug/m3 values. The legend values should have incorporated the species-specific RIE and CE when the units are ug/m3, as it was in all previous versions of squirrel (and the quad software, I believe). To be clear, the species sticks are always in Nitrate equivalent units (in Hz or ug/m3). This bug has been fixed, so that the legend now correctly reflects the species-specific RIE and CE values when units are ug/m3. (Once again the species sticks were/are correct; it is just a legend display issue). (2) The blacklisting button didn't work. This is an obvious error, as the user was faced with a strange window/error/message when the blacklist button was pressed. This made it impossible for folks to add new blacklisted runs to experiments. For experiments that were updated from earlier versions, the blacklisted runs were retained, were still blacklisted. ----------End In a Nutshell---------- ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.46 Notes by Donna Sueper 21st July 2009 ----------Begin In a Nutshell---------- * The MS and PToF tabs have had makeovers. All old functionality exists, with some new minor features. * Error bars in MS time series and average plots are now available. * James Allen changed the code that does the 'species frag matrix multiplication of the stick spectra matrix' so that it now uses sparse matricies, thereby speeding some calculations up. The new version of the code has been tested quite a bit and all seems well. The time-dependent frag functionality & all user interface parts work just the same. * Fixed a bug that showed up in the version 1.46 of the baseline panel.(This bug was identified quickly after the 1.46 release and and was treated using SQ_MzCalBkgd_146A.ipf). * A pesky error that appeared when pre-processing PToF sticks when the todo wave does not have PToF sticks has been fixed. * Changed the default settings for a parameter used in determining the stick integration region for v and w modes. Old code: resolution_R0 = 500, new code:resolution_R0 = 350. Many users changed this setting in the baseline panel to this smaller value. Any user changes to this value will be retained, will not be overwritten. * Changed the interface/functionality for calculating average raw spectra with the baselines removed. Now users can generate the average raw spectra, and the average baseline spectra (instead of only looking at the raw - baseline). * Removed old-school and little understood functionality of flagging and changing numerically negative frag matrix entries. This is not practical with time-dependent frags, and this functionality was too hidden from the user. * Added Mike Cubison's code for dealing with transitions to/from fast mode data. Thanks Mike! ----------End In a Nutshell---------- ------- SQ_AMSPanel_1_47.ipf------- Changed constant string value for the default list used in PToF mass spec plots, PTOFAVE_SPECIES_DEFAULT_LIST, so that it no longer has the Air species, because we don't calculate it anyway. Renamed functions: * sq_butt_MS_avg, sq_butt_MS_conc,sq_butt_diurnalPlots now all call one new function, sq_butt_MS_Calc, to do the first-level sanity checks before any time-consuming squirrel fetch functions are called. * sq_plotDiurnalBoxPlot now renamed sq_MSplot_DiurnalBoxPlot, to keep the same function naming scheme. * sq_graph_pop is now named sq_MSAvGraph_pop * sq_graph_control now named sq_MSAvgGraph_addControls New functions: Added many new functions that deal with fast mode diagnostics and pre-processing. Many new functions are simply smaller, encapsulated versions of code used to generate familiar MS values, such as time series waves..... * sq_MSCalc_TSeriesMSMatricies Function called from sq_butt_MS_Calc to generate the 2-D MS spectra (the heavly lifting of the former "Export Matricies" button). * sq_MSCalcPlot_Avg Function called from sq_butt_MS_Calc to generate and possibly plot old fashioned average mass spectrum. * sq_MSCalc_avgStick Function called from sq_MSCalcPlot_Avg to generate average stick spectra * sq_MSCalc_avgRaw Function called from sq_MSCalcPlot_Avg to generate average raw spectra * sq_MSAvgGraph_updateTraces Average mass spectra plots can get tricky with stacking, "all" and negative spectra waves, and the ability to append new species. Hopefully this new function will allow cleaner tracking of this code. * sq_MSAvgGraph_updateLegend Average mass spectra plots legends can be tricky as well. * sq_MSCalcPlot_Diurnal Function called from sq_butt_MS_Calc to generate and possibly plot old fashioned diurnal plots. * sq_MSCalc_Diurnals Function called from sq_MSCalcPlot_Diurnal to generate old fashioned diurnal waves. * sq_MSplot_DiurnalBoxPlot Function called from sq_MSCalcPlot_Diurnal to possibly plot old fashioned diurnal waves. * sq_MSCalcPlot_TSeries Function called from sq_butt_MS_Calc to generate and possibly plot old fashioned time series plots. * sq_MSCalc_Tseries Function called from sq_MSCalcPlot_TSeries to generate time series waves. * sq_MSPlot_Tseries Function called from sq_MSCalcPlot_TSeries to possibly plot time series waves. * sq_MSAvgGraph_updateControls One function to deal with most of the controls in average mass spec graphs. * sq_MSAvgGraph_StdDev New set variable control on average mass spec plots (This control had been italicized and residing on the main ams panel.) * sq_MSAvGraph_pop New pop function for displaying one or all of the average mass spectra * sq_MSAvgGraph_showHide New checkbox function for showing or hiding the raw and/or negative spectra. * sq_MSAvgGr_25butt A new control in average mass spec graphs allow for expanding or shrinking the y axis by 25%. * sq_getWaveNameSuffix A function possibly called from sq_butt_MS_Calc to request input of a wave name suffix from the user. * sq_ABsanity A function possibly called from sq_butt_MS_Calc to test the existence and length of the airbeam correction factor wave. * sq_smoothAcrossNans A function not yet called from anywhere yet, but created and tested in anticipation of smoothing across V and W mode switching (as in smoothing the airbeam). * sq_smoothmaxTime A helper function for sq_smoothAcrossnans * sq_frag_matrix2D With the new usage of sparse matricies, the ability to generate a static copy of the a species frag table has been removed. Hence, this old version of sq_frag_matrix has been retained for possible later use. * sq_AreNansInWaveList A helper function to be used to check if new m/z parameters have nans for runs in a todo wave. *sq_RemoveNaNs A squirrel copy of the Wavemetrics RemoveNans function. * gen_IntersectLists An all-purpose function for returning the intersection of two string lists. ** Fast mode functions ** * gen_createFolders Generic helper function for creating data folders and any offspring data folders. * sq_butt_FastMSPanel Button control on main AMS panel for generating FastMode panel. * fm_initialise_FMS Sets up fast mode globals and panel * fm_analysis_panel Generates the fast mode panel * fm_mjc Squirrel fetch function from Mike Cubison for changing default values of MSClosed_p. Is not called from fast mode panel but retained for posterity. * fm_mjc_revert Squirrel fetch function from Mike Cubison to undeo fm_mjc. Is not called from fast mode panel but retained for posterity. * fm_butt_help Simple help button on Fast mode panel. * fm_butt_BaselineDiags Button on main Fast mode panel. Does calcs and brings to front fast mode baseline panel. * fm_baselineDiagsGraph Creates FastModeBaselineGraph * fm_BslPopMenuProc Function on fast mode baseline graph. * fm_BslSetVarProc Function on fast mode baseline panel to choose fast mode cycle. * fm_butt_MSSDiags Button on Past mode panel. Does LOTS of calcs on raw and stick spectra for fast mode cycles. * fm_butt_plotMSSDiags Button on main Fast mode panel for plotting the values found in previous MS diagnostics calculate button * fm_MSSCheckProc Checkbox control on Fast mode diagnostics plot * fm_MSSPopMenuProc Popup menu control on Fast mode diagnostics plot * fm_MSSSetVarProc Set variable control on Fast mode diagnostics plot to choose fast mode cycle * fm_makeAllSlow Create the generic todo wave for slow runs * fm_butt_DefineCycles Step 3 button on FastModePreProcessPanel, Find FMS cycles button * fm_butt_DoBlacklist Step 2 button on FastModePreProcessPanel, blacklisting button * fm_butt_makeFirstFastToDos Step 1 button on FastModePreProcessPanel, Make FMS todos button * fm_makeTodoFirstXFast A generic todo function that extracts the first x number or runs after transitions * fm_ExtrapolateClosed Very important function called from within the preprocess step that alters the MSClosed_p data set * fm_DoExtrapolateClosed Does the work of fm_ExtrapolateClosed * fm_AvClosed Very important function called from within the preprocess step that alters the MSClosed_p data set * fm_DoAvClosed Does the work of fm_AvClosed * fm_DoZeros Function called from within the pre-process code to deal with zeros * fm_MergeFS Mike Cubison's method of 'glueing' species waves from slow and fast mode. Functionality not currently accessible via any panel. Constants in the ConvFactorList are unique to his experiment - Users need to adjust these values themselves!!!!! * fm_Get40to28ratios Functionality not currently accessible via any panel, is used to examine air in fast/non-fast. Modified functions: * sq_globalsCorrections Changed a global string to explain that the error matrix is in units of Hz. * sq_globalsMS Removed several globals and added a few new ones to deal with the new interface in the MS tab * sq_start_popup Added code specifically for the todo wave popup on the main ams panel. * sq_ams_panel New code for the MS tab, removed non-working error bar buttons in the misc tab. * sq_pop_getVariable Added some code specifically for the some popup menus on the MS tab. * sq_butt_getSquirrelIndex Added some code that handles an error in the imt_series wave when there is only one run in the entire experiment. * sq_makeTodoallMS Changed an abort statement to a print statement in the case where one has only PToF data, no MS data. * sq_file2SquirrelIndex Fixed small bug that had to do with the case where one has only PToF data. * sq_butt_pre_process Added more sanity checks. * sq_diffCalc Small bug (an extra ":") when checking to use raw spectra. * sq_diag_list_init Added these waves to the set of waves loaded from InfoVal ParVal, etc: ratio40over28,ratio32over28,reflectronBackPlateVolts, reflectronGridVolts,MCP_V_set. Also fixed the MCP_V wave (wrong values were being read in) * sq_pop_toDoList Added the ability to automatically set the todo wave in the Pika panel, if it exists. * sq_butt_ToFSpeciesDefault Changed to reflect the new defaults for PToF mass spec averages. * sq_butt_ToFSpeciesMSDefault Changed to reflect the new defaults for PToF mass spec averages. * sq_butt_MSAveSpeciesDefault Minor change having to do with the reorganization of the MS tab. * sq_butt_appGraphDefs Minor change having todo with new userdata settings for MS average graphs. * sq_butt_corrections Added more sanity checks. * sq_ms_airbeamCorr Added a sanity checks for when the auto-set was not selected but the user entered bad values. * sq_verifyTodoForPToF Removed some code that generated bogus error messages. * sq_applyDCmarkers James optimized this code made it a bit faster. * sq_initializeResolutionParams Changed the default setting from resolution_R0 = 500 to resolution_R0 = 350 * sq_plot_ptof1_MS Now gives default names for graphs instead of Graph0, etc. * sq_plot_ptof1_av Now gives default names for graphs instead of Graph0, etc. * sq_plot_ptof1_im Now gives default names for graphs instead of Graph0, etc. * sq_ck_mzBase Minor change having to do with the new MS tab reorganization. * sq_butt_modifySI Simple formatting change to the table. * sq_frag_matrix James significantly reworked this to use sparse matricies. ------- SQ_MSconc_1_47.ipf------- * sq_MS_concentration James reworked the code to use sparse matricies instead of the old-fashioned matrix multiplication (i.e. for sticks x org frag matrix). Also added code to handle the case where the user wants to find the average raw mass spectra and the average raw baseline spectra. * sq_err_calc No longer puts the closed err in memory; instead it writes it to hdf. ------- SQ_Backbone_1_47.ipf------- * squirrel_fetch Minor and rare bug when DAQ hdfs may be corrupted (not all standard data sets exist) has been fixed. ------- SQ_MzCalBkgd_1_47.ipf------- * bk_BaselinePanel Added < and > to buttons to be able to shift the x-range by constant amounts. * bk_ck_SliderOrSetVar Small change to add for the small > and < buttons. * bk_createBackgroundValues Fixed a bug the came up in 1.46 and fixed in SQ_MzCalBkgd_1_46A.ipf that had to do with wave names of stick integration regions. ------- SQ_FragDiag_1_47.ipf------- No change. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.46 Update since ToF-AMS Analysis Toolkit v1.45 Notes by Donna Sueper 2nd Mar 2009 ----------Begin In a Nutshell---------- * Added some code from James Allen that prevents some out of memory errors that can occur when using time-dependent frags on large data sets. Also changed code to use cross products for * Fixed small bug that shows up when using the Igor beta version 6.10 Beta 05 that happened in the baseline panel. * Added still more sanity checks in the pre-process step. ----------End In a Nutshell---------- ------- SQ_MSconc_1_46.ipf------- Edited functions: * sq_MS_concentration() Added some code from James that deals with time-dependent frag waves and very large data sets. New function: * sq_crosswithdep() Performs a cross product with the new time-dependent frag scheme. ------- SQ_MSconc_1_46.ipf------- Edited functions: * sq_butt_preprocess() Added some code to make some sanity checks more robust. ------- SQ_MzCalBkgnd_1_46.ipf------- Changed the name of a global variable, root:baselineFitting:bk_ck_showDiffNeg, because it was in conflict with the function of the same name - this error does not show up in Igor 6.04 but in Igor 6.10 (Beta 5 and possibly earlier) ------- SQ_FragDiag_1_46.ipf------- No change. ------- SQ_Backbone_1_46.ipf------- No change. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.45 Update since ToF-AMS Analysis Toolkit v1.44 Notes by Donna Sueper 27th Feb 2009 ----------Begin In a Nutshell---------- * Changed all the code for the frag diagnostics (in the 'Checks' tab) so that all the waves get written to the root:quantifChecks data folder. This means that the time series waves such as Org, NO3, etc, will not get overwritten in the root folder. This also means that for newly created frag diagnostics plots, users need to re-press the gold "Calculate loadings for all species *except* those button"first. All the frag diagnostics graphs are less buggy. * Created a more streamlined method for finding stick integration regions. These regions are defined firstly, and only once, in m/z space. Then for individual runs, the m/z values are translated into point space. The time savings for calculating sticks this new way is ~10 - 20%. The baseline fitting panel now allows for optional viewing of baseline and stick integration regions. * Added many and various checks to handle the case of users not being in the root directory when performing an operation. * Added ability to view table of runs not fit nicely in m/z calibration panel. Also added ability to save and import copies of the values in the m/z calibration panel table. Added default guesses for m/z calibration to make it go faster (5 - 10%) * Completely redid how diurnal calculations were done. Things are now cleaner, simpler, faster. * Added a feature to the baseline panel, whereby now users can enter in extra stick complement (baseline) regions. ----------End In a Nutshell---------- ------- SQ_MSconc_1_45.ipf------- Edited functions: * sq_err_calc() Added some code to ensure the consistency of stick matrix dimension ------- SQ_backbone_1_45.ipf------- Edited functions: * squirrel_tidyHDF() Changed code so that an unexecuted statement throws an abort instead printing an error to the history window. * squirrel_mem_write() Changed code so that an unexecuted statement throws an abort instead printing an error to the history window. * squirrel_hdf_write() Changed code so that an unexecuted statement throws an abort instead printing an error to the history window. * squirrel_fetch() Changed code so that an unexecuted statement throws an abort instead printing an error to the history window. Also added code to check for case insensitivity when loading data sets ------- SQ_FragDiag_1_45.ipf------- Changed all the plotting and calculation functions to that all waves are created in the quantifChecks data folder. They now can be manipulated at will without affecting previous time series waves such as Org, etc, which were created via the MS tab, time series section. New, small modular functions: * FD_CreateFzColorBywave() Creates the colorby f(z) waves * FD_setColorScale Displays the colorscale wave on the top plot * FD_PopMenuProc Keeps track of global variables when popmenus are accessed These functions were extracted from the old FD_plot_generator, which did all of them (in one function): * FD_CalcPlot_Ammonium() * FD_CalcPlot_Sulfate() * FD_CalcPlot_Nitrate() * FD_CalcPlot_Organics() * FD_CalcPlot_WaterVsInorganics() * FD_CalcPlot_OrgVsSO4() * FD_CalcPlot_NO3vsOrg() Removed from the code obsolete functions: * FD_NH4_diag_plot() Now named FD_CalcPlot_Ammonium, similar to other fragment species plots. * FD_NH4_Meas_Pred() This graph is duplicated in the ammonium fragment plot, so no need for it. * FD_Mass_TimeTrend() No need for it - users can plot time trends via MS - time series section of AMS panel. Changed the string constant FD_COLORWAVES_LIST to refer to waves in the quantifChecks data folder. ------- SQ_FragDiag_1_45.ipf------- Killed, now obsolete functions: * bk_setVar_mzStart() X axis of baseline plot is now controlled by one of two methods: a set variable or the old-fashioned slider. * bk_adjustMzAxis() X axis of baseline plot is now controlled by one of two methods: a set variable or the old-fashioned slider. * gen_makeGraphicShadedRegionWave() The essence of this code is now in bk_createGlobalsBaseStickComp, a cleaner, slicker version. New functions: * bk_createGlobalsBaseStickComp() Overwrites some existing global strings so that users are not confused when they update their squirrel from 1.44 * bk_setVar_mzStartStop() New set variable for choosing the mas m/z, or right-most value in the baseline plot. * bk_ck_SliderOrSetVar() Checkbox control fot the X axis of baseline plot: a set variable or the old-fashioned slider. * bk_makeStartStop() Makes waves root:baselineFitting:Region_startMz and root:baselineFitting:Region_stopMz, which are independent of m/z fitting parameters. * mz_butt_copyMzTable() Button function on m/z calibration panel now allows users to save a copy of the entries in the m/z panel table for future reference or import. * mz_butt_loadMzTable() Button function on m/z calibration panel now allows users to import a copy of the entries in the m/z panel table. Edited functions: * mz_makeMzCal_Waves() Changed the names of default masses from pthalate149 to C8H5O3 and pthalate279 to C16H23O4 * mz_calibrationPanel() Added buttons for copying and importing waves to the m/z calibration table. Changed the wording for declaring separate open and closed m/z parameters. * mz_butt_beginMzFitting() Added code to ensure waves declared in root folder. Added code that allows user to view runs (in a table) not fit well by code. * mz_reSizeMzCalWaves() Added a sanity check for the creation of masses that were entered into the table but were chosen not to fit (Puneet's error) * mz_calibration() Added code that allows user to view runs (in a table) not fit well by code. * mz_getOneFitEstimate() Added initial guesses and constraint wave to make it go faster. Added code to keep trackof badly fitted runs * mz_setVar_estimateFiltered() Added code to ensure waves declared in root folder. * mz_fitOneRun() There seemed to be some wierd problems associated with using the globals K0, K1, etc, so the code was changed to use a user-defined wave myCoeffWave that holds the coefficients * mz_populate_FitOneMassGraph() Added a check for the existence of waves from new masses entered into the m/z calibration table (Puneeet's error) * bk_createGlobalsBaseline() Created a few new globals for setting the x-axis max value * bk_initializeBkWaves() Removed the use of now obsolete wave OneRunRawSpectraInteg * bk_BaselinePanel() Made a new checkbox for controlling the max value of the x-axis. Also changed macro type from Windowxx:panel to a regular function. * bk_slider_mzAxis() Changed code to allow users to set max x value to a set variable. * bk_setUpRawSpectraThisRun() Removed the use of now obsolete wave OneRunRawSpectraInteg Also uses the new scheme in function sq_stickCalcGetRegions for finding the stick integration and baseline regions in m/z space. * bk_createStickComplimentMask Major overhaul - baseline regions are now defined in m/z space. * bk_butt_viewManyBaselines() Added code to ensure waves declared in root folder. * bk_createBackgroundValues() Uses the new scheme in function sq_stickCalcGetRegions for finding the stick integration and baseline regions in m/z space. * bk_setVar_runNumberVW() In the panel a string with the tof type (V or W) and ionization type is displayed. * mz_setVar_runNum() In the panel a string with the tof type (V or W) and ionization type is displayed. * bk_ck_removeMoreStickCompMz() Reset some global strings via bk_createGlobalsBaseStickComp * bk_removeExtraStickComplPanel() Removed intimidating warning about it being for advanced users. * bk_ck_UseMassDefect() Minor code change so that som global variables retain values even after window is closed. * bk_massDefectPanel() Minor change to make the use of the 'CH' versus 'CH2' more clear. * bk_populate_RawSpectraGraph() Added stick integration and baseline regions in graph on new right axis. * bk_ck_showDiffComp() Fixed a small bug that users complained about - not seeing the 'green trace'. * bk_ck_showDiffIntegRegion() Using new waves for identifying stick integration and baseline regions. * bk_ck_showDiffNeg() Minor code cleanup. ------- SQ_AMSPanel_1_45.ipf------- Killed, now obsolete functions: * sq_todoWaveAddRuns() * sq_todoWaveRemoveRuns() * sq_norm_generateSpeciesMSValues() * sq_findStrInTextWave() Renamed functions: * gen_Num2Str2Char() used to be called sq_Num2Str2Char() * sq_butt_csrSetRunIntervals() used to be called (typo) sq_butt_csrSetRunIntevals() New functions: * sq_makeTodosFromChangingVals() New, versatile function that creates new todowaves based on when a value in a wave changes. This is useful for finding todo waves when PToF settings change. * gen_RepeatLastNonNan() General function used in sq_makeTodosFromChangingVals * sq_makeTodoallMS() Creates a todo wave that has MS data (for use when we have runs of only PToF data, for example). * sq_stickCalcPrepRegion() Given the (fixed) start and stop m/z values for a stick integration region, finds the point values (translated from m/z space to point space). * sq_diurnalIndex() A function for finding the runs that are within each hour for diurnal calculations. * sq_plotDiurnalBoxPlot() Copied and modified the canned version from the Wavemetrics "Percentile and Boxplot" ipf. * gen_fBoxPlot_graphAxNm() Helper function for sq_plotDiurnalBoxPlot * sq_butt_plotABcorrFact() New button so that users can view/plot the AB correction factor after it has already been calculated. * sq_stickCalcGetRegions() New function for creating waves for the baseline and stick integration regions. * sq_getToFIonizationStr() General helper string function - given a run, returns the tof type Modified the string constant IONIZATION_TYPE_LIST to add for new ionization types, MAB and SP2. Modified functions: * sq_ams_panel() Added button for plotting AB correction factor, misc tweaks * sq_butt_getSquirrelIndex() Changed print statements to history window to abort statements. Added two new function calls to automatically create some todo waves - allMS and allPToFxx Added an alert that warns users about the fact that the correction factor may need to be redone if new runs were added. * sq_makeToDoIonizationType() Now uses the string constant IONIZATION_TYPE_LIST * sq_butt_pre_process() Added code to ensure waves declared in root folder. Added code so that the squirrel journal and the history window print important parameters for recalcing sticks. Added a bit of code to tell users when saving the experiment takes a long tim (i.e. Tim O's Ron Brown exp) Fixed small bug that had sometimes to do with MSClosed_p not being created before it is accessed. * sq_fillBlanks() Code rewrite for cases when a small todo wave is chosen and the code want to fill in all the 'blank' values previous/after the first/last run in the todo wave. * sq_gen_t_series() Changed code to add another sorting wave - keeps things from going bonkers in the wierd case that we have two different runs with the same time stamp. * sq_diag_list_init() Added DAQSamplingType for use when folks need menu switching info * sq_butt_addToBlacklist() Added an alert so that users don't accidentally blacklist runs. * sq_butt_toDo_edit() Added a sanity check so that if users press this button before a "Get Index" step, things are handled gracefully. * sq_butt_toDo_graph() Added a sanity check so that if users press this button before a "Get Index" step, things are handled gracefully. * sq_toDoGr_butt_Init() Added code to ensure waves declared in root folder. * sq_butt_ToDoFromRuns() Added code to ensure waves declared in root folder. Fixed minor bug that occurred when overwriting a todo wave - the wrong todo wave was printed to history as being overwritten. * sq_butt_dump2mem() Added code to ensure waves declared in root folder. * sq_butt_corrections() Minor code cleanup * sq_checkMzFittingWaves() Added a sanity check so that if the user has new runs (from a recent "Get Index" operation, the user flags that fact that the m/z calibration may not have been done on the new runs. * sq_ms_airbeamCorr() Minor code cleanup * sq_verifyTodoForPToF() Fixed an annoying bug soon identified after 1.44 release. * sq_DCMarkerGr() Minor code change - the old code made this window huge. * sq_VDa_plot() Minor code change - the old code made this window huge. * sq_MSstick General code cleanup & added lots more comments. Instead of saving AmuPtPeak, AmuPtStart, AmuPtEnd to intermediate files, saved the point values in data sets called StickPtStart, StickPtStop. Assumes the use of the new sq_stickCalcGetRegions scheme. * sq_PToFstick() Assumes the use of the new sq_stickCalcGetRegions scheme. * sq_butt_MS_avg() Added code to ensure waves declared in root folder. Added code to warn users when the airbeam correction factor is used, but there may be new runs added since it was calculated. Removed the "total' species if it was in the species list. * sq_butt_diurnalPlots() Reworked using sq_diurnalIndex(); makes calcs faster. * sq_butt_MS_conc() Added code to ensure waves declared in root folder. Added code to warn users when the airbeam correction factor is used, but there may be new runs added since it was calculated. * sq_butt_ToFConc() Added code to ensure waves declared in root folder. Added code to warn users when the airbeam correction factor is used, but there may be new runs added since it was calculated. * sq_plot_ptof1_MS() Added code to ensure waves declared in root folder. * sq_plot_ptof1_av() Added code to ensure waves declared in root folder. * sq_plot_ptof1_im() Added code to ensure waves declared in root folder. * sq_makePToFDiamCenterPts() Added code to ensure waves declared in root folder. * sq_plot_diag() Fixed a bug that crept in when users added more runs after the initial 'Get Index' button press. * sq_diagostics_check_MarkerType() Added code to ensure waves declared in root folder. * sq_plot_corr() Minor code cleanup * sq_tbase() Added sanity check when the user-chosen time interval is 0 * sq_makeOneRunToDo() Added code to ensure waves declared in root folder. * sq_create_todo() Added code to ensure waves declared in root folder. * sq_makeMaskFromTodofindRun() Added sanity check to ensure that the mask wave has the same dimensions as t_series. * sq_butt_modifySI() Added ionization type to the table. * sq_butt_DVaTable() Added run numbers and key wave (to indicate if PToF data exists for that run) to the table * sq_butt_reviewJournal() Added code to ensure waves declared in root folder. * sq_ck_controlSticks() Fixed a small panel display bug. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.44 (User's Mtg Release) Update since ToF-AMS Analysis Toolkit v1.43 Notes by Donna Sueper 3th Sept 2008 ----------Begin In a Nutshell---------- * Fixed serious bug in error calculations (James). * Fixed serious bug in PToF mass spectra calculations - old code was just plain wrong. * Added button for diagnostics plot * Added ability to pre-process raw spectra without pre-processing sticks. * Changed the order in which the sub-tabs in corrections tab appears, and changed the code so that the flow rate correction is performed before the airbeam correction (if selected). * When pre-processing PToF data and applying DC markers, automatically checked the todo wave for PToF data and performed the operation on only PToF runs. * Fixed several small errors having to do with some Frag checks (Alice's diagnostics graphs). * Completely redid the way PToF normalizations are calculated - more info is not printed to the history to help users. * Correct labels on PToF graphs. * Added a checkbox in the Misc- Graphing section for users to display graphs with gaps or not. * Fixed a bug that crept in to version 1.43 (but not earlier ones) whereby if a user changed the frag table and immediately performed an average mass spec, the frag numerical matricies were not updated. * Changed the default in the pre-process so that the DC marker corrections are applied. * Changed some display features in baseline panel. ----------End In a Nutshell---------- ------- SQ_AMSPanel_1_44.ipf------- * sq_getAMSWin Changed old-school execute usage. * sq_globalsHDFIndex Changed default so that DC markers are applied in pre-process step. * sq_globalsMS Changed default so that when doing an average mass spectrum, only sticks are calculated, instead of sticks and raw. * sq_globalsChecks Fixed small bug with name of t_series wave being t_series instead of tseries. * sq_globalsMisc Added two global variables so that popup menus in this tab work like popup menus in other tabs, with global variables keeping track of user choices. * sq_start_popup Simple change from using one characer variables to longer ones. * ams_panel_credits Removed old email addresses for Silke and Ed. * sq_tabControl Changed the order of appearance of sub tabs in Corrections tab. * sq_makeToDoIonizationType Fixed small bug for pre-2006 RonBrown data using VW switching. * sq_butt_pre_process Changed code so that users could preprocess raw without sticks. Changed warning for when preprocessing PToF and todo wave has runs with no PToF data. Changed code that sets default DC markers so the old-school (and confusing) defaults of 0 now have the real bin numbers. * sq_ck_preProcess The checkbox control will now allow raw to be selected without sticks. * sq_diag_list_init Added waves for new values saved in DAQ for light scattering. * sq_butt_ToDoFromRuns Added sanily checks in case the user wanted to make todo waves with the reserved names of 'new' or 'blacklist'. Added a warning for when todo wave name > 16 characters. Added a line to the history to indicate when/how todo wave was created. * sq_pop_dump2memList Removed all data sets with a "_d" suffix - this feature was more useful in the very very early stages of squirrel, now it is a nuisance. * sq_butt_dump2mem General code cleanup, added a statement to history. * sq_butt_deleteFromMem General code cleanup, added a statement to history. * sq_butt_appGraphDefs Added ability to set display of 'gaps' or not. * sq_butt_corrections Changed to order of execution so that the flow rate correction is done first (before it's possible use in AB correction). Added code for checking the existence of PToF runs in todo waves and hopefully handles it all with less aggrivation to the user. * sq_checkMzFittingWaves Added a parameter to make this functio todo-wave dependent. * sq_ms_airbeamCorr Fixed a bug that Tim O had when dealing with old (2005) V/W mode switching data. * sq_DCMarkerGr Made prettier. * sq_VDa_plot Made prettier. * sq_butt_MS_avg Added a sanity check so that if user entered 'total' as a species it didn't mess things up (Carly issue). Added a print statement to the history window if users choose to export matricies. After some discussion, decided to not change the definition of 'negative' stick - version 1.44 is the same as 1.43 and previous. The suggested change would have alerted users to individual species sticks being negative. * sq_butt_MS_conc Added a samity check so that if a user entered 'all as a species it didn't mess things up (Carly issue). * sq_butt_ToFConc Code cleanup. Code change as to how normalization factors are calculated - a separate function call is no longer used. Added a print statement when matricies were exported. * sq_plot_ptof1_av Correct axis labels!!! * sq_plot_ptof1_im Correct axis labels!!! * sq_findRun Added sanity check and extra code for Igor 6.02 glitch. * sq_butt_modifySI Added sanity check for when user presses this button before the Get Index press. * sq_interpolateWaveSameMode Slight change to handle v/w switching better. * sq_repeatLastNonNanSameMode Slight change to handle v/w switching better. * sq_frag_matrix Added some comments of possible code code changes for historical purposes. * sq_fragPanel_butt_CheckRecurs Added some comments of possible code code changes for historical purposes. Funtions removed: * sq_butt_findPToFNormFactors The way the normalization is done no longer requires a separate step. The button was removed from the panel. Funtions added: * sq_butt_diagPlot Separate button in the HDF Index tab to display diagnostics plot without re-pressing the Get Index button. * sq_verifyTodoForPToF Added a function to check the number of runs in the current todo wave that do not have PToF data. * sq_changeRunNumbers A function not called by any code, but is included as a template for how to deal with DAQ HDF files whereby the run numbers overlap (due to harsh power failure, etc). * sq_LoadAttributesFromHDF Nice function to have around. Loads the attributes (descriptive text) for data sets in DAQ HDFs. Funtions renamed: * ams_panel is now sq_ams_panel ------- SQ_MSConc_1_44.ipf------- sq_MS_concentration James found and fixed the PToF mass spec bug and the error bug. * sq_ptof2dva Changed default behavior when the first 'middle' PToF time bin stamp is negative, result is nan. ------- SQ_Backbone_1_44.ipf------- * squirrel_fetch Now aborts when having trouble opening or reading an intermediate HDFs (Manjula's issue). The old-school way was to use print statements. * squirrel_hdf_write Now aborts when having trouble writing to intermediate HDFs (Manjula's issue). The old-school way was to use print statements. ------- SQ_FragDiag_1_44.ipf------- * FD_butt_CalcDiags Changed the method for retrieving user choices so that it is now similar to all other popupmenus in Squirrel. * FD_butt_CorrelationPlot Fixed small bug with axis label. * FD_plot_generator Fixed small bug with axis label. ------- SQ_FragDiag_1_44.ipf------- * mz_initializeMzCalibration Added some code to handle the case where the m/z calibration was performed, then more HDFs were indexed. * mz_calibrationPanel Made prettier. * mz_butt_beginMzFitting Added sanity check for a filter threshold. * mz_fittingParamGraph Made prettier. * mz_setVar_estimateFiltered Added code to take into consideration selected todo wave. * mz_butt_fitThisRun Changed default behavior for fitting one run so that the graphs are always displayed regardless of 'live update' option. * bk_createGlobalsBaseline Added ability to show where open - closed is negative. * bk_initializeBkWaves Added ability to show where open - closed is negative. * bk_BaselinePanel Reorganized, added more viewing options. * bk_setUpRawSpectraThisRun Added ability to show where open - closed is negative. * bk_butt_calcBkFit Always calculateds the raw Difference background spectra, fit across stick integration region. * bk_createMassDefectDefault Changed mass defect default waves for all tungsten peaks. * bk_populate_RawSpectraGraph Added ability to show where open - closed is negative. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.43 (General Upgrade & Bug Fix) Update since ToF-AMS Analysis Toolkit v1.42 Notes by Donna Sueper 4th Feb 2008 ----------Begin In a Nutshell---------- * Many small cosmetic changes to allow for properly-sized and properly placed objects in panels, graphs, etc. due to Igor 6.03 changes to native GUI format. * Added ability to append a suffix to wave names automatically generated by MS time series calculations. * Added ability for speciated average mass spectra (by James). * Added DC marker checking/viewing before pre-processing. * Changed the default setting in the airbeam correction so that the flow correction is performed. * Added minimal capability to review squirrel journal entries. * Added a button to make upgrading squirrel experiments easier, but this functionality will only work for Igor versions 6.10 and better (6.10 is currently available as a Beta versions). * Frag table is dressed up. *Removed automated capability for IE/AB correction - this correction is still available, but the user has to formulate this correction themselves (instead of Squirrel trying to do it for you). ----------End In a Nutshell---------- ------- SQ_AMSPanel_1_43.ipf------- * Renamed all constants to be all capital letters for easier identification. * Changed string constant FRAG_PANEL_LIST to reflect better ordering of frag waves Funtions removed: * sq_splitdiags Obsolete. Funtions added: * sq_butt_UpdateIpfs() Button in misc tab for updating squirrel ipfs. * sq_currentProcsVersion() Retireves current squirrel version. * sq_newProcsLocation(ipfPrefix) Prompts user for location of new squirrel ipfs. * sq_loadProcs(newVersionStr, ipfPrefix) Loads new squirrel ipfs. Relies on commands being sent to the operation queue via the Execute/P command. * sq_updateIpfs() Does the entire killing and loading of ipfs and main panel. * sq_butt_reviewJournal() Button in main panel that displays a table of journal entries. * sq_updateSquirrelJournalWaves() Updates waves displayed in sq_journal_table. * sq_makeToDoFastOC() Makes todo waves for fast mode open and closed. * sq_findBlanksFetch() Rewrite of this functionality to keep things more modular. * sq_butt_PToFDCGr_show() New button function for HDF-tab check DC marker and Corrections-PToF DC marker check. * sq_fragPanel_check_bold() Makes all entries in fragPanel bold. Functions modified: * sq_globalsMS() Added global variable for wave name suffix for MS time series. * ams_panel() Sized things nicely for Igor 6.03. Set variable for time interval now has limits (no negatives, wierd values allowed). Added checkbox for suffix for MS time series waves. Added PToF DC marker setting/viewing button before pre-processing. * sq_butt_getSquirrelIndex() Major code cleanup and reorganization. Added code for "fast mode" todo wave creation. * sq_makeToDoIonizationType() Minor code cleanup. * sq_file2SquirrelIndex() Now names the ParVal attribute wave correctly. * sq_butt_pre_process() Considerably reworked to allow the generation of preprocessed (MSSOpen_p) data sets. Added sanity check that the get index button was already pressed. * sq_diffCalc() Added sanity check and flexibility for raw spectra. * sq_insert_Matrix() Instead of making only the first m/z column blank, all columns are blank up to the first real data point. * sq_diagnostics() Cosmetic changes. * sq_diag_list_init() Added fast mode keys. *sq_butt_toDo_graph() kbcolorizetraces change for Igor 6.03. * sq_todoGr_butt_PlotTodos() kbcolorizetraces change for Igor 6.03. * sq_butt_appGraphDefs() kbcolorizetraces change for Igor 6.03. * sq_ms_airbeamCorr() Bug fix for wierd cases where user enters non-existent runs for the AB reference. * sq_dcMarkersExamine() Significantly reorganized to avoid crazy-making series of pop-ups asking for dc marker approval in pathological cases. No longer is interfaces with DCMarker graph. * sq_butt_DVaGraph() Significantly overhauled. Is now the same as the HDF tab - check PToF DC marker graph. *sq_initializeResolutionParams() Simply added comments that show the values Silke used in her thesis. * sq_MSstick() Added some code to consider fast mode data. * sq_butt_MS_avg() Changed the way it handled error matrix types. * sq_butt_MS_conc() Included code for wave name suffixes and error matricies. * sq_butt_ToFConc() Added sanity check when user wants to use MS correction factor but it doesn't exist. * sq_fragList_convert() General code cleanup. * sq_frag_matrix() Added some minimal recursion checks. * sq_fragList_pass() General code cleanup. * sq_run2panel() General code cleanup. Added code to make it work correctly when run numbers get huge. * sq_getParamStr() General code cleanup. * sq_findIE2ABratio() Significant code rewrite - much of the old functionality is no longer available because the old code made too many assumptions about how the user entered values in the IE,AB table and about the airbeam correction reference period. * sq_FragPanel_check_Display() Now accomodates user-defined frag waves. * sq_FragPanel_make() Made very fancy, hopefully more useful. ------- SQ_Backbone_1_43.ipf------- * squirrel_fetch() Slight reordering os some code to more intuitively deal with rare hdf file errors. James fixed a rogue findvalue error. * squirrel_hdf_write() Cosmetic change for new constant names. * squirrel_tidyHDF() Cosmetic change for new constant names. ------- SQ_FragDiag_1_43.ipf------- * FD_plot_generator() Added some sanity checks in case the time-series waves weren't generated. * FD_GenerateFragTrends() Added code to deal with the optional MS time series wave naming. Removed the non-functioning auto update code * FD_IEetalProjectGr() Several minor graphical bug fixes. ------- SQ_MSConc_1_43.ipf------- * sq_MS_concentration() Change by James A to include data type case "0", speciated mass concentration (average). ------- SQ_MzCalBkgd_1_43.ipf------- *mz_calibrationPanel() Cosmetic changes so that item fit nicely in panel with Igor 6.03. Fixed the bug about the ability to pop the Delta t squared graph. * mz_butt_beginMzFitting() Added some code to check that the chosen todo wave is current. * mz_calibration() Fixed bug dealing with index_pos (squirrel fetch) numbers being -1. * bk_createGlobalsBaseline() Code cleanup. * bk_BaselinePanel() Cosmetic changes so that item fit nicely in panel with Igor 6.03. * bk_createStickComplimentMask() Small bug dealing with background values fixed. * bk_butt_viewManyBaselines() Added some code to check that the chosen to do wave is current. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.41 Notes by Donna Sueper 10th Sept 30 2007 ----------Begin In a Nutshell---------- * Time-dependent frag modifications! * Added todo waves graph to help users keep track of todo waves. * Many bug fixes. * Renamed all squirel procedure files to begin with SQ_ prefix. ----------End In a Nutshell---------- Killed Functions: * Panels() Renamed AMS to avoid confusion with the Igor Panel menu. * sq_initializeAMSPanel() No longer needed. * sq_ms_airbeamCorrNonRB() Incorporated code into sq_ms_airbeamCorr() New Functions: * AMS() Replaced the old Panels function. * sq_todoGr_butt_PlotTodos() Button in todoGraph for plotting a selection of todo waves. * sq_toDoGr_butt_Init() Initializes todoGraph. * sq_update_diagPlot() Updates diagnostics plot. * sq_diagostics_check_MarkerType() In diagnostics plot, checkbox control for displaying waves as markers or lines. * sq_diag_check_plotGroup() In diagnostics plot, checkbox control for displaying selected diagnostic waves. * sq_diag_popMenu_ModeType() In diagnostics plot, poopmenu control for displaying different modes (as in v/w switching). * sq_butt_DVaTable() New button for displaying DVa parameters. * sq_butt_exportAsItx() New button in Misc tab for exporting frag or batch files as an itx file. * sq_FragPanel_butt_pop() In new frag table display allows user to simply create table. * sq_FragPanel_setVar_fontSize() In new frag table display allows user to enlarge font of all waves. * sq_FragPanel_setVar_colWidth() In new frag table display allows user to enlarge column width of all waves. * sq_FragPanel_check_Display() In new frag table display allows user to display a subset of frag waves. * sq_FragPanel_make() Creates new window contable new frag table. * sq_gen_removeAllTraces() Generic function for removing all traces from a window. Added a new string constant for use in generating the frag table. StrConstant FRAG_PANEL_LIST Modified Functions: * sq_getAMSWin() Slightly modified to account for removal of sq_initializeAMSPanel. * sq_globalsHDFIndex() Changed the default for the preprocessing of the PToF sticks so that the dc markers aren't calculated by default. * sq_globalsMS() Killed an autoupdate global variable that is no longer needed. * sq_globalsPToF() Killed some variables that are no longer needed and added some that could be created with helper graphs. * sq_globalsMisc() Changed default stick width to 2 as per Doug's request. * ams_panel() Removed AutoUpdate checkboxes that aren't likely to be implemented. Added the ability to save frag and batch files as itx in the Misc tab. Changed the intercept for the flow rate to allow for negative numbers. In the corrections tab, added a button for a Dva table. * sq_butt_getSquirrelIndex() No longer breaks the diagnotic waves into different ionization types (v/w switching). * sq_makeToDoIonizationType() Deleted old code. Fixed bug having to do with V and W mode that James found. * sq_splitdiags() This functionality is now obsolete. Code retained just in case bits may be useful later. * sq_butt_import_index() Commented out calls to sq_splitdiags() * sq_butt_pre_process() Commented out calls to sq_splitdiags() * sq_butt_toDo_graph() Completely revamped. Added a check for the existence of window. Added a control bar, listboxes, radio buttons. * sq_butt_ToDoFromRuns() Added a check that alerts user if the number of runs in recently created todo wave is zero. * sq_butt_reviewBatch() The wave root:frag:tof_list is no longer included in the table. * sq_butt_reviewFrags() Completely revamped. Added control bar, checkboxes, etc. * sq_recalcDA() Small bug by James found and fixed. It was a problem the first time it was executed, then was fine. Commented out calls to sq_splitdiags() * sq_butt_reset_AB() Commented out calls to sq_splitdiags() * sq_ms_airbeamCorr() Significant overhaul. Combined code that was previously segregated between projects with different ionization schemes. Also fixed problems that sometimes occurred with v/w switching as found by Rami. * sq_butt_DCgraph() Slightly reorganized for clarity. * sq_applyDCmarkers() Fixed an error dealing with indexing and whether PToF data exists. * sq_fixPToFDiagWaves() James added a fix using l_series. * sq_initializeResolutionParams() Fixed a bug whereby these parameters were re-initialized whenever the background panel was created. * sq_stickCalcPrep() Fixed a bug that showed up when a global variable didn't exist. * sq_butt_MS_conc() Changed the name of the conc waves for non-as-saved-times to be more intuitive (as per Doug). * sq_butt_ToFConc() No more backup frag_air kloodge. * sq_fragList_convert() Slight change to address frag_air backup old kloodge. * sq_frag_matrix() Slight change to address frag_air backup old kloodge. * sq_fragList_pass() Slight change to address frag_air backup old kloodge. * sq_checkFragMod() Slight change to address frag_air backup old kloodge. * sq_plot_diag() Significantly revamped for easier display. * sq_butt_IEetalProjectGr() Changed the popmenu for mode display. * sq_findRun() Changed to accomodate Igor 6.02 FindValue change. * sq_tbase() Changed name of time base that is automatically created with the non-as-saved time option. * sq_getParamStr() James modified? * sq_butt_changeHDFPath() -------SQ Mz Cal and Bkgd 1.41.ipf, now SQ_ MzCalBkgd_1_42.ipf------- New functions: * bk_MassDefectPanel_CH_ck() A checkbox indicating whether the use wants to use a mass defect wave following the CH or CH2 'line' for higher masses. * mz_butt_SetParamsToNan() A button in the panel that allows the user to clear the m/z fit parameters to nans. Modified functions: * mz_calibrationPanel() Added an option to set all m/z fit parameters to nan (re-initialize). The value display boxes for the daq and fit parameters were flipped. * bk_BaselinePanel() Slight wording change. * bk_ck_UseMassDefect() Added global variables for the CH and CH2 mass defect options. * bk_massDefectPanel() Checkboxes have been added for the CH and CH2 mass defect options. * bk_createMassDefectDefault() Added the ability to use a CH or CH2 line. --------- SQ MS concentration 1.41.ipf , now SQ_MSconc_1_42.ipf -------- Renamed functions: * sq_make_map was make_map * sq_dtdlogdp was dtdlogdp * sq_ptof2dva was ptof2dva * sq_map2dist was map2dist * sq_findIntegrationWidthNs was findIntegrationWidthNs New function: * sq_convertNmToTime() Simple function for translating nm to PToF time for plots Modified functions: * sq_MS_concentration() James added the functionality of using waves in the frag tables. Added a ton of comments throughout to help with debugging. Changed a small bug whereby when the user opts to not convert sticks to ug/m3, the code does not apply the RIE and CE values to the data (Eben's issue). * sq_err_calc() Simple change incorporating renamed functions ---------Squirrel FD 1.41.ipf, now SQ_FragDiag_1_42.ipf ---------- Renamed functions: * FD_pop_ToFTypeMode now FD_popMenu_ToFTypeMode() A popup menu control function on the project diagnostics plot for daq menu switching (v/w mode). Killed functions: * FD_butt_IECheck() This was moved to AMSPanel ipf. Modified functions: * FD_butt_CalcBatch() Changed so that a warning pops up if the non-saved time resolution is used. * FD_IEetalProjectGr() Slight change for popmenu for mode switching. ----------Squirrel 1.41.ipf, now SQ_Backbone_1_42.ipf---------- No change. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.40 Notes by Donna Sueper 10th July 2007 ----------Begin In a Nutshell---------- * This release incorporates a few small but valuable enhancements. Most enhancements are to the m/z calibration and the baseline panels. * Users can now "pop" graphs and tables from panels. * Users now modify have a tool to handle the situation where the paths to the raw or intermediate files have changed. This is done via the button "Change Paths for HDF files" on the Misc tab. * The PToF normalization method has changed, so that now a normalization factor is found for every run that has PToF data in the todo wave. In the case of an average size distribution, then, the average of the normalization factors is used (instead of finding the normalization factor of the averaged data). * When finding averaged raw spectra, users now have an option to remove the baseline from the raw spectra. * Many small but annoying bugs were fixed. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.40.ipf ----------- Deleted functions: * sq_norm_findPToFtoMSNormal() Instead of finding one normalization factor for a todo wave, we now find the normalization factors for each run and average them if need be. This functionality is now found in sq_butt_findPToFNormFactors(). * sq_norm_normalizePToF2Ms() The application of the normalization factors has changed, so this needed to be changed. * sq_norm_PToFMSNormTable() Since the PToF normalization factors are now calculated by finding the factor for each run (and then possibly averaging these factors) a table is no longer needed. When normalization factors are created, the user has the option of viewing these factors via the graph option drop down menu in the PToF tab. * sq_dcMarkersPrepare2Plot() This code has been moved to sq_butt_DCgraph(), a more sensible place. * sq_pop_tof1_dataType() Instead of having a separate function for this one panel control, the more versatile, existing sq_pop_getvariable() function is used. * sq_pop_tof1_graphOption() Instead of having a separate function for this one panel control, the more versatile, existing sq_pop_getvariable() function is used. New functions: * sq_checkTodoForPToF() This is a general purpose function which checks whether the existing todo wave has runs which do not have PToF data. If this is the case, the user is then presented with a prompt to ask whether to continue with the operation or not. It is called in the preprocess, corrections - apply DC markers, and find PToF Normalization factors steps. * sq_butt_findPToFNormFactors() A new button function that finds the PToF normalization factors - one for factor each species for each run in the todo wave. * sq_makePToFDiamCenterPts() A general purpose function for finding the diameter centers from waves that indicate diameter edges. * sq_norm_getLoadingPToF() A helper function for finding the loading for one PToF run. * sq_ValidateImageAxisWave() A function that is used to ensure that the xwave and ywave used in image plots are monotonic. * sq_makeMaskFromTodofindRun() This general purpose function makes a simple mask wave of nans and 1s corresponding to whether a run is in the todo wave * sq_KillProcs() A useful function for upgrading existing experiments. sq_KillProcs("1.40") would kill all functions with a "1.40" in their name. * sq_butt_popThis() A useful general purpose function for popping graphs or tables from panels. * sq_WindowIsToBePopped() A useful general purpose function for popping graphs or tables from panels. * sq_butt_changeHDFPath() A useful function for the case when the hdf files for an experiment have changed. Modified Functions: * ams_panel() Changed the interface for finding normalization factors, added a button in the misc tab, fixed an annoying bug having to do with V/W mode switching in the corrections/airbeam section. * ams_panel_credits() Changed Tim Onasch's email address. * sq_globalsPToF() Killed global variable root:panel:tof1_viewNormTable which is no longer used. * sq_butt_getSquirrelIndex() Adds a check that the todo wave is increasing and that there are no duplicate run numbers. This very atypical condition has happened for very old data sets. * sq_makeToDoIonizationType() Changed the logic of this around quite a bit so that all cases (W only, for example), is handled correctly. This function set the popup menu in the corrections/airbeam tab. * sq_butt_pre_process() Added a check for situations where one wants to preprocess PToF sticks, but some runs may not have PToF sticks. * sq_butt_checkMz() Changed the code so that updating mzFitting panel is cleaner. * sq_findBlanks() Added lots of comments and fixed one small bug. * sq_fillBlanks() Fixed one small bug having to do with filling in the very last run (if it has blanks). * sq_pop_toDoList() Added a line to handle future HR functionality. * sq_pop_dump2memList() Changed code from an execute statement that fills in the values in a drop down menu to a global variable. * sq_butt_corrections() Added a check for the selection of the todo wave when applying DC markers. * sq_pop_AB_ToFType() Added an "Initialize" drop down option for use when updating existing experiments and recreating the ams panel. * sq_dcMarkersExamine() Change dthe functionality a bit so it isn't so the creation of the DCMarker graph is in a separate function. * sq_butt_DCgraph() The graph creation is now isolated here. * sq_dcGraph_setVar() Handles all cases, even runs with no PToF data, more gracefully. * sq_doesPToFDataExist() A general purpose function for returning 1 or 0 if the run as PToF data or not. * sq_dcMarkersPlot() Handles all cases, even runs with no PToF data, more gracefully. * sq_applyDCmarkers() Added an "objection override" variable so the user doesn't get hit with a barrage of queries about abnormal PToF settings. * sq_butt_DVagraph() Changed the logic so that it first checks if the window exists before creating or overwriting globals. * sq_VDa_plot() Minor text change. * sq_MSstick() Removed some obsolete comments. * sq_butt_MS_avg() Added some code for doing this calcuation on the error matrix, not MSSDiff_p. The user interface for this is not in place yet. * sq_butt_diurnalPlots() Now the code works for the currently selected todo wave. * sq_butt_ToFConc() The application of normalization factors has been changed. * sq_plot_ptof1_av() Added comments. Changed the code to hand "Update" and "Append" graph options. * sq_plot_ptof1_im() Added a call to sq_ValidateImageAxisWave so annoying Igor messages about non-monoticity won't appear. * sq_graph_addControls() Minor code cleanup. * sq_graph_pop() Changed for more versatility. * sq_graph_control() Changed code in mass spec plots so that when negative sticks are chosen not to be plotted, they are given line lenth of 0 instead of being removed. * sq_vet_blanks() Fixed a small bug and cleaned up code. * sq_create_todo() Slight change for increased flexibility. * sq_butt_checkfiles() Added comments, formatting. * sq_updatePath() This changes of the location of hdf files by changing the text in the text wave root:index:file_index. * sq_findIE2ABratio() If the airbeam correction factor has not been found yet, the function will exit without doing any calculations. * sq_butt_IECalTable() Added a column for v or w mode calibrations as per Tim O's request. ---------- SQ Mz Cal and Bkgd 1.40.ipf ---------- New Functions: * mz_butt_declareParamsAsOC() New function for declaring separate m/z parameters for open and closed spectra. * mz_populate_FittingChoicesTable() New function that allows for popping of this item from panel. * mz_populate_FitOneMassGraph() New function that allows for popping of this item from panel. * mz_populate_ParamRatioGraph() New function that allows for popping of this item from panel. * mz_populate_DeltaTSquaredGraph() New function that allows for popping of this item from panel. * mz_populate_ResolutionGraph() New function that allows for popping of this item from panel. * mz_populate_PpmGraph() New function that allows for popping of this item from panel. * mz_populate_CalAccuracyGraph() New function that allows for popping of this item from panel. * bk_Tab() Changed the name and order of stick complement (step 1) items. * bk_TabFit() New tab feature for the fitting parameters. * bk_populate_ExtraBkRegionTable() New function that allows for popping of this item from panel. * bk_populate_MassDefectTable() New function that allows for popping of this item from panel. * bk_populate_FindPeakCenterTable() New function that allows for popping of this item from panel. * bk_populate_RawSpectraGraph() New function that allows for popping of this item from panel. Modified Functions: * mz_createGlobalsMzCalibration() Checks the existence of globals instead of automatically creating/overwriting them. * mz_makeMzCal_Waves() Minor change of default mz_DeltaNum values for higher m/zs. * mz_calibrationPanel() Many changes to incorporate the pop buttons, new features and a more intuitive interface. * mz_setppmAxis() The name of the graph in the panel has changed. * mz_individualMassGrPlacement() Minor change to accomodate pop buttons. * mz_butt_beginMzFitting() MInor code cleanup. * mz_reSizeMzCalWaves() Added code to more cleanly update small, individual m/z graphs in panel. * mz_calibration() Fixed the tricky and sometime problems with the live update. * mz_butt_revertMzCal_Spec() Added functionality to change all step 1 parameters to defaults, not just the waves. * mz_fitOneRun() Added new functionality allowing to use previous run's results for the fit instead of the logged values, and a scalar which dictates the region to look for peaks. * mz_smoothFinalFittingParams() Minor bug fix. * bk_createGlobalsBaseline() Incorporated all the functionality of bk_initializeBackground. Now there is only one funtion for creating all globals needed for background panel. * bk_BaselinePanel() Added a tab function for the baseline fit sections. * bk_butt_rawSpectraThisRun() Added a call to ensure the current data folder is root. Initialized new waves indicating stick integration region. * bk_butt_calcBkFit() Now also calculates waves indicating stick integration region. * bk_createBackgroundValues() Slightly changed the functionality to find stick complement values. * bk_setVar_runNumberVW() Changed the name of some controls for tab functionality. * bk_ck_useLinearOrSpline() Changed the name of some controls for tab functionality. * bk_removeExtraStickComplPanel() Added the functionality to insert background regions. Changed the wording of the instructions. Added the ability to pop table. * bk_massDefectPanel() Added the ability to pop table. bk_makeBkZeroBeyondMassX() Added functionality to set baseline to a non-zero value after some given m/z Deleted Functions: * bk_initializeBackground() This functionality now absorbed into bk_createGlobalsBaseline. ---------- SQ MS concentration 1.40.ipf ---------- No change. ----------Squirrel FD 1.40.ipf ---------- No change. ----------Squirrel 1.40.ipf ---------- No change. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.40 (Igor 5 Compatibility Release) Update since ToF-AMS Analysis Toolkit v1.39 Notes by Donna Sueper 3rd May 2007 ----------Begin In a Nutshell---------- * Minor changes to syntax were made to three ipfs to allow Igor 5 compatibility. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.38.ipf ----------- * sq_findIE2ABratio() Changed syntax for Note command. ---------- SQ Mz Cal and Bkgd 1.38.ipf ---------- * bk_massDefectPanel() Eliminated the ModifyTable statsArea commands. ---------- SQ MS concentration 1.38.ipf ---------- No change. ----------Squirrel FD 1.38.ipf ---------- * FD_IEetalProjectGr() Minor changes to the ModifyGraph zcolor commands. ----------Squirrel 1.38.ipf ---------- No change. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.39 (New Features Release) Update since ToF-AMS Analysis Toolkit v1.38 Notes by Donna Sueper 2st May 2007 ----------Begin In a Nutshell---------- * Added the ability to calculate errors. * Added two new subtabs in the Corrections tab. One allows the ability to create a new flow rate values. The other allows for the entry of IE calibration values and an ion efficency correction (using IE/AB ratio values). * In the batch table changed the names of the m43, m44, m57 species to Org43, Org44, Org57. This is important, because users who update experiments, instead of starting from a new template, need to change the names of these species in the batch table themselves. * Changed frag_organic to exclude PAH contributions and included a new frag_PAH based on the latest PAH analysis. The PAH species end at m/z 478, because that is the last entry in the NIST database (L.C. Sander and S.A. Wise, Polycyclic Aromatic Hydrocarbon Structure Index, NIST Special Publication 922, 1997). Email Katja (Katja.Dzepina@colorado.edu) for more info. This is important, because users who update experiments, instead of starting from a new template, need to import the new frag_organic and new frag_PAH wave themselves. * Changed the creation of the main AMS panel so that it always checks for the existence of each panel global variable and then initializes only the new variables. This helps forlks to upgrade squirrel experiments, so that they only need to kill and then recreate the panel. * Added several waves that are created when the diagnostics waves are extracted from the HDF files in the Get Index step. These new waves are used to calculate errors. * Added the ability to create species specific, time series spectra (the type of 2 dimensional matricies that one would use for Qi's analysis, for example). * Color coded and sorted the frag waves in the frag table. * Added the ability to find peak centers for use in baseline (and therefore stick) calculations. * Added the ability to find m/z calibration parameters at a run when there is no raw closed spectra. ---------- SQ Mz Cal and Bkgd 1.38.ipf ---------- New functions: * bk_massDefect_findPeakCenters() A new panel whereby one can choose to find peak centers within a m/z range. * bk_butt_findPeakCenters() Function that tries to find peak centers (for possible use in subsequent mass defect waves. * bk_butt_copyFoundPeakCenter() Copies found peak centers to the mass defect wave. Renamed functions: * RemoveFromStickComp_butt_End() This is now named bk_removeFromStickComp_butt_End. * MassDefect_butt_End() This is now named bk_massDefect_butt_End. * sr_MassDefectPanel() This is now named bk_massDefectPanel. Obsolete (removed) functions: * sq_BaselineStick() now commented out because it is no longer used. The functionality had been moved in sq_MSstick. Modified functions: * mz_calibrationPanel() Added a bit more explainatory text. No longer shows tools automatically. * mz_reSizeMzCalWaves() 1.39 now allows the fitting of runs where only the open spectra (not closed) exists. So this function resizes things appropriately for this situation. * mz_getOneFitEstimate() Changed a conditional to allow for when one want to do m/z fitting when there is only open spectra for current run. * mz_fitOneRun() Creates fits when there is no closed spectra for current run. * bk_setUpRawSpectraThisRun() Reorganized a bit. Cleaned up old comments. Added a check to make sure that the run number was valid. * bk_ck_UseMassDefect() Added more explanatory text. ---------- SQ MS concentration 1.38.ipf ---------- New functions: * sq_err_calc() Written by James, finds the error matricies. * findIntegrationWidthNs() To calculate errors, one needs to know the integration widths, in ns units, of the sticks. That is what this function does. ----------Squirrel FD 1.38.ipf ---------- New functions: * FD_pop_ToFTypeMode() A drop down menu to choose v or w mode (or other menu dfiened groups of data) in the IEetalProjectGr. Renamed functions: * fDiag_butt_IECheck() This is now named FD_butt_IECheck. * IE_et_al_Project_Panel() This is now named FD_IEetalProjectGr (It is a graph, not a panel). * sq_IEetalPanel_butt_end() No longer needed. Modified functions: * FD_plot_generator() Removed the string variable declarations for fDiag_colorby and fDiag_colorname that are no longer needed. * FD_MakeRatios() Included a wave declaration for t_series. ----------Squirrel 1.38.ipf ---------- * squirrel_hdf_write() Changed code to remove [inf] usage. ----------SQ AMS Panel 1.38.ipf ---------- Obsolete (removed) functions: * sq_Hz_ptof() We now only have one function that handles both MS and PToF data, sq_Hz(). * sq_GetDiagMore() This has been commented out, and not deleted, from the code. There is the possibility that this type of functionality will be useful for other purposes, later. * sq_DiagnosticsMore() Along with sq_GetDiagMore(), this function may be used at a later date. But for the time being this code has been merged with the standard sq_Diagnostics function. New functions: * sq_globalsGeneral() I broke up the monster function that creates all the globals into smaller functions. Each of these functions creates and initializes global variables only if they do not exist. * sq_globalsHDFIndex() Creates all the globals that are not connected to a panel control and also creates all globals associated with the HDF Index tab. * sq_globalsCorrections() Creates all globals associated with the Corrections tab. * sq_globalsMS() Creates all globals associated with the MS tab. * sq_globalsPToF() Creates all globals associated with the PToF tab. * sq_globalsChecks() Creates all globals associated with the Checks tab. * sq_globalsMisc() Creates all globals associated with the Misc tab. * sq_initializeGlobalNVar() Used by all sq_globalsXXX function for checking the existence of a numeric variable. * sq_initializeGlobalSVar() Used by all sq_globalsXXX function for checking the existence of a string variable. * sq_norm_generateSpeciesMSValues() This function is used when one wants to normalize PToF data to MS data. It calculates the average values for MS data. * sq_norm_findPToFtoMSNormal() This function is used when one wants to normalize PToF data to MS data. It calculates the average values for PToF data. * sq_norm_normalizePtof2Ms() This is the main function that is called when one wants to normalize PToF data to MS data. * sq_norm_PToFMSNormTable() Generates a table of the PToF to MS normalization factors for each species. * sq_butt_IEetalProjectGr() Button function from Checks tab for generating IEetalProjectGr graph. * sq_roughAvgRawSpecNonp() Same as sq_roughAvgRawSpec, only uses no processed ("_p") data. Can be called from bk_setUpRawSpectraThisRun. * sq_findNewFlowRate() New feature in 1.39 that allows for simple calculation of a new flow rate. * sq_findIE2ABratio() New feature in 1.39 that allows for the calculation of IE/AB ratios at IE calibrations. * sq_IE2ABGr() Plots IE/AB values at calcualtions. * sq_mapTimeValueToTSeries() This is used in the translation of the user-input calibration times to the nearest run number. * sq_butt_IECalTable() Generates a simple table for the user to input or view ionization efficiency calibration values. Modified functions: * sq_initializeAMSPanel() * sq_globals() Changed significantly; now all globals are created in separate sq_globalsXXX functions. * sq_start_popup() Added more comments. * ams_panel() Changed the name of a tab from Frag Checks to Checks (IE calibration values are also addressed in this tab). Added another button for the viewing or editing of IE cals in the Checks tab. Included two new subtabs in the correction panel. Removed the non-working time stamp popup menu in the misc tab. In the corrections tab, made important checkboxes in bold font. * sq_tabControl() Added two subtabs in the corrections tab. * sq_ams_stat_upd() Simple variable declaration change. * sq_ck_abAutoSet() Removed some obsolete code. * sq_setVar_ABAutoSet() Removed some obsolete comments. * sq_butt_GetSquirrelIndex() Removed some obsolete comments. Changed code to remove [inf] usage. * sq_File2SquirrelIndex() This function has been changed so that runs with neither MS or PToF data (BFSP only runs) can be properly indexed. Step 2 is now commented out and a step 1Z has been inserted. * sq_butt_pre_process() Removed some obsolete comments. * sq_MS_preprocess() Slightly changed to handle PToF Hz preprocessing more cleanly. * sq_diffCalc() Added some comments. * sq_fillBlanks() Removed some obsolete code. * sq_insert_Matrix() Slightly changed to handle Hz conversion more cleanly. * sq_butt_diagUpdate() Removed some obsolete comments. * sq_diagnostics() Added some "new only" functionality. And forces a recreation of the diag list waves every time. We added some new parameters to be used for the error calculations in 1.38B. * sq_diag_list_init() Added the following waves to assist in possible future error calculations: "SavingIntervalTime;SecsInPTof;SecsInMS;PercentTimeMSOpen;FractionBuffersSavedMSOpen;FractionBuffersSavedMSClosed;SampledTime;TimeMSOpen;TimeMSClosed;TimePTOFSec" * sq_butt_reviewFrags() Columns are now color coded for easier viewing * sq_butt_corrections() Added the calculate new flow rate and IE/AB ion efficency corrections. * sq_ms_airbeamCorr() Deleted some obsolete comments. Inserted a wave note in the ion_eff wave to check for IE/AB ratio correction. * sq_dcMarkersPlot() Deleted some obsolete comments. * sq_butt_DVagraph() Small wording change. * sq_PToFstick() Changed the code controling the possible calculation of Hz conversion. * sq_butt_MS_avg() Added functionality for exporting matricies (of the type that are used in Qi's analysis, for example. Also slightly change the code that updates existing graph. * sq_butt_ToFConc() Added functionality for normalizing the PToF data to the MS data. * sq_plot_ptof1_av() Removed some obsolete comments. * sq_plot_ptof1_im() Removed some obsolete comments. * sq_smooth_nans() Added a sanity check for the length of the input wave. * sq_run2panel() Removed some obsolete comments. * sq_ck_diamBase() Added code to disable non-applicable controls when chosing a diameter base. * sq_tbase() Changed code to remove [inf] usage. * sq_run2panel() Changed code to remove [inf] usage. * sq_todoWaveAddRuns() Changed code to remove [inf] usage. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.38 (Major PToF Bug Fix Release) Update since ToF-AMS Analysis Toolkit v1.37 Notes by Donna Sueper 9th Feb 2007 ----------Begin In a Nutshell---------- * This is a bug fix release for PToF data. No bugs or features were added that affects the MS analysis. * The major bug that was found had to do with pre-processing PToF sticks. If the user opted to NOT recalculate the PToF sticks (which is the default, because recalculating the PToF sticks takes a very long time) AND the PToF duty cycle correction checkbox was checked, then the PToF duty cycle wasn't actually being applied. In general, this error resulted in PToF sticks that were slightly too high for m/z > 28 and slightly too low for m/z < 28. In particular the duty cycle correction is sqrt(28/mz). If users wish to apply a duty cycle correction to their pre-processed PToF sticks they can execute "sq_CorrectPre138PToFSticks()" in the command line. This function will extract the data set PToF_stick_p and apply a duty cycle correction to it. This is the recommended fix for those who have not recalculated their PToF Sticks and do not wish to re-preprocess their PToF sticks. * Another major bug had to do with the preprocessing of PToF sticks when the user recalculates the PToF sticks AND there existed runs where no PToF data was acquired. For the runs where no original PToF data existed, or where the raw PToF hdf files were unavailable, the recalculated PToF sticks were set to 0 (incorrect) instead of nan (correct). This resulted in PToF loadings that were too low, due to the erroneous zeros. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.37.ipf ----------- New Functions: *sq_GetDiagMore() A simple function for extracting miscellaneous parval or info val parameters. It is not called from the ams panel, but rather is a functionality that may be useful to some non-beginning squirrel users. * sq_DiagnosticsMore() The squirrel fetch function that is the muscle behind sq_GetDiagMore. * sq_CorrectPre138PToFSticks() A function for applying the duty cycle correction to all PToF sticks. Should be performed once, on a data set where the PToF sticks have already been pre-processed. Is a function to fix a bug in earlier versions whereby the duty cycle correction had not been applied when preprocessing PToF sticks, even though the checkbox had been checked. * sq_CorrectPre138PToFSticksFetch() The squirrel fetch function that is the muscle behind sq_CorrectPre138PToFSticks. * ams_panel() Simple version number (1.38) change. * sq_File2SquirrelIndex() Corrects a bug when analyzing old Heidi-converted data sets. These hdfs did not setting the AMSType variable parameter correctly. This sometimes resulted in squirrel setting the stick integration resolution parameters to v/w type instead of the c-type. * sq_butt_pre_process() Important and major bug found in the pre-processing of PToF sticks. When a user chose to NOT recalculate the PToF sticks, previous code did not apply the duty cycle correction even the checkbox was checked. * sq_Hz_ptof() Removed old comments. * sq_insert_Matrix() Removed old comments. * sq_butt_DCgraph() Fixed an error that occurred when first displaying the graph and the very first run did not have PToF data. * sq_ApplyDCmarkers() Added some comments, debugging statements. * sq_FixPToFDiagWaves() Fixed smallish bug having to do with indexing. * sq_initializeResolutionParams() Added a check for the non-nan-ness of the AMSType. * sq_StickCalc() Added some comments, debugging statements. * sq_PToFstick() Important bug fix for checking the non-nan-ness of raw PToF data before trying to recalculate the sticks. Previous versions set the PToF stick values to 0, not nan, when recalcing sticks and no raw PToF files were accessible. * sq_butt_ToFConc() Added some comments, debugging statements. * sq_plot_ptof1_av() Found a bug with Liz A that had to do with improper indexing, which sometimes caused the diameter bins to collapse to 0. ----------- SQ AMS Panel 1.37.ipf ----------- ---------- SQ Mz Cal and Bkgd 1.37.ipf ---------- No change. ---------- SQ Mz Cal and Bkgd 1.37.ipf ---------- ----------- Squirrel FD 1.37.ipf---------- No change. ----------- Squirrel FD 1.37.ipf---------- ----------- SQ MS concentration 1.37.ipf ---------- * sq_MS_concentration() Minor change to prevent redimensioning some results unnecessarily; this non-ideal feature was introduced in 1.37. ----------- SQ MS concentration 1.37.ipf ---------- ----------- SQUIRREL 1.38.ipf ---------- No change. ----------- SQUIRREL 1.38.ipf ---------- ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.37 (Minor Bug Fix Release) Update since ToF-AMS Analysis Toolkit v1.36 Notes by Donna Sueper 20th Feb 2007 ----------Begin In a Nutshell---------- * This is a bug fix release with very few new features, but with a modest number of relatively minor bug fixes. * The calculation of negative sticks for average MS spectra plots had an error; it is now fixed. * Users should be aware of some non-ideal squirrel behavior when pre-processing PToF data for runs that have no PToF data. See comments for function sq_makeToDoAllPToF() below. * A new todo wave called allPToF may be created at the Get Index step. See comments for function sq_makeToDoAllPToF() below. * Changed the default setttings for the cToF 'resolving power'. These values are used when recalculating sticks. See comments in sq_initializeResolutionParams below and discussion of stick calculation found at http://cires.colorado.edu/jimenez-group/ ToFAMSResources/ ToFSoftware/SquirrelInfo/LearningAids/SquirrelTutPre_v01.pdf * Many features were tested using Igor 6.0.1.3 - no problems were found! ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.37.ipf ---------- New Functions: * sq_makeToDoAllPToF() Creates a new todo wave called allPToF that contains only runs with PToF data. Users should be aware that if pre-processing PToF data (raw or sticks) squirrel will create placeholders for PToF data for all runs in the selected todo wave. This can result in generating a set of intermediate data files whose total size is greater than the total size of original hdf files. For example, if you took PToF data at every 4th run, the total size of all intermediate data files will be ~ 4 x bigger than the total of original hdfs because squirrel has created naned PToF data for the runs where no PToF data existed. It PToF data exists at every run, the total size of the intermediate files should be ~ equal to the total size of the original hdfs. Currently the way around this is to PToF preproccess only runs that have PToF data. To facilitate this a todo wave called allPToF consisiting of only runs where PToF data exists is needed. It is created by sq_makeToDoAllPToF(). This function is executed when you press the Get Index. The todo wave allPToF will be killed if it is identical to the all todo wave (because it is unneccessary). Later versions of Squirrel may have a more elegant way around this issue. * sq_doesPToFDataExist() A simple common function that returns a 0 or 1 whether PToF data exists for a given run. * sq_GetThisRawPToF() A function similar to sq_GetThisRawMS for extracting the PToF data for a single run. Currently this is not used in any analysis code - it is a simple debugging tool for users. * sq_GetThisRawPToF_viaFetch() A function similar to sq_GetThisRawMS_viaFetch, it is a simple fetch function that does the work of sq_GetThisRawPToF(). Currently this is not used in any analysis code - it is a simple debugging tool for users. * sq_UpdatePath() A function supplied by Pete DeCarlo for use in replacing entries in the.file_index wave with a new file location prefix (i.e. "H:" drive instead of "C:") This code is not executable from the panel, and is supplied as a convenience for advanced users. * CUlogoNew() A logo that doesn't have a black background. * ARILogoNew() A logo that doesn't have a black background. Modified functions: * ams_panel() New logos. In the PToF tab, the GP/PP boundary variable is now italicized because it is never used in the calculations (yet?) * ams_panel_credits() New logos. * sq_butt_GetSquirrelIndex() Added call to sq_makeToDoAllPToF(). * sq_File2SquirrelIndex() Removed the data set called "Notes" from indexing considerations. Also removed the suffix "_01" from consideration. Both are consequences of the new data acquisition software changes. And more such changes are to come. * sq_butt_appGraphDefs() The function now checks the todo wave name and removes it from consideration when coloring a wave. For example, an average mass spectra graph created from a todo wave named NO3isHigh will NOT have all the waves colored as nitrate. * sq_recalcDA() Wave declaration bug found by James. Old code gave an error the first time it was executed, but not on subsequent execution. No data anlysis was affected. * sq_ms_airbeamCorrNonRB() When smoothing the airbeam with v/w mode switching, a wave declaration error popped up. It is now fixed. * sq_dcMarkersPrepare2Plot() Minor wording change in panel. * sq_butt_DCgraph() Added some conditionals for the existence of PToF data for a given run. * sq_dcGraph_setVar() Cleaned up code to check for existence of PToF data. * sq_dcMarkersPlot() Minor code cleanup. * sq_DVaGraph_SetVar() Changed the display indicating the existence of PToF data to coincide with the DC marker graph aid. * sq_butt_MS_avg() Bug found by James in the calculation of 'negative' sticks. Now when viewing an average mass spectra graph the black negative stick values are either: (0) zero, (1) absolute value of negative values in the original sticks or (2) the absolute value of the (sum of species) - original sticks, only when this value is negative. The previous version had entries in this negative sitck wave calculated incorrectly. * sq_butt_MS_conc() Commented out left label axis. * sq_butt_ToFConc() Now allows the user to bypass the DVa graph aid and use the logged versions of vl, vg, etc parameters. Added a check to determine if PToF data exists for runs in todo wave. * sq_plot_ptof1_av() In previous versions parameters for the first run in the todo wave were used to set the diameter wave. A new check was added to find the first run with PToF data, and the parameters for this (PToF) run is used. * sq_plot_ptof1_im() Unit labels added. * sq_dbase() Slight change to account for large size particles in wave name. * sq_initializeResolutionParams() Changed default values: if (AMSType==0) // c tof type resolution_R0 = 380 //^ changed from 300 in 1.36G resolution_dm = 50.213 //^ changed from 30 in 1.36G resolution_m0 = 75 //^ changed from 50 in 1.36G else // v or w resolution_R0 = 500 resolution_dm = 50.213 //^ changed from 50 in 1.36G resolution_m0 = 75 endif This affects users who recalculated sticks and used the default 'resolution' parameters to do so. ----------- SQ AMS Panel 1.37.ipf ---------- ----------- SQ Mz Cal and Bkgd 1.37.ipf ---------- * mz_createGlobalsMzCalibration() Added a global variable for displaying non-graphed masses. * mz_initializeMzCalibration() Minor change to display max mass range in some graphs in panel. * mz_calibrationPanel() Initializes a string variable. Minor cosmetic changes. * mz_individualMassFitGraphs() Fixed the problem whereby if < 4 masses were displayed, the code wouldn't find a fit for a run. * mz_butt_beginMzFitting() Commented out unnecessary line. * mz_reSizeMzCalWaves() Reorganized some code to allow for smoother execution when a user inserts new masses in the m/z fitting table. * mz_butt_revertMzCal_Spec() Now includes an alert. * mz_fitOneRun() Fixed the problem whereby if < 4 masses were displayed, the code wouldn't find a fit for a run. ----------- SQ Mz Cal and Bkgd 1.37.ipf ---------- ----------- Squirrel FD 1.37.ipf---------- * FD_Check_batch() Eliminated the heavy-handed change to the frag_org. The frag_org wave remains unchanged during the execution of the code. ----------- Squirrel FD 1.37.ipf---------- ----------- SQ MS concentration 1.37.ipf ---------- * sq_MS_concentration() Fixed a bug that Steve H helped find that happens when the custom diameter base is only one interval long. (Igor automatically eliminates the single dimensions which is bad.) ----------- SQ MS concentration 1.37.ipf ---------- ----------- SQUIRREL 1.37.ipf ---------- No change. ----------- SQUIRREL 1.37.ipf ---------- ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.36 (Bug fix Release) Update since ToF-AMS Analysis Toolkit v1.35 Notes by Donna Sueper 5th Nov 2006 ----------Begin In a Nutshell---------- * A bug fix release for 1.34 & 1.35. * Version 1.35 had a bug that had to do with the airbeam correction and the setting of the ion efficiency wave. * Raw hdf files with only one run in them now work. * The airbeam correction no longer has to be performed to proceed with the final frag checking diagnostics. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.36.ipf ---------- Modified functions: * sq_globals() Moved globals set in FD ipf to this section. Deleted some extraneous globals. Changed the initialization of sq_toDoList. * ams_panel() Added a checkbox to the Frag Checks tab. * sq_makeToDoAllVW() Deleted old commented code. * sq_File2SquirrelIndex() Fixed indexing problem that occurs when an hdf file has only one run. * sq_butt_toDo_graph() Added axis labels. * sq_butt_MSSpeciesDefault() Minor variable name change. * sq_ms_airbeamCorrNonRB() Fixed a significant error that creeped into version 1.34 and 1.35 that had to do with the setting of the IonEff wave. * sq_butt_diurnalPlots() Added code so that wave created using the Percentile and Box Plot.ipf functions no longer have a dependency. * sq_plot_corr() Added a graph window name. ----------- SQ MS concentration 1.36.ipf ---------- No Change/ ----------- SQ Mz Cal and Bkgd 1.36.ipf ---------- * mz_adjustFitAxis() Added a vew more points to the x axis for the small, individual m/z fitting graphs. * mz_fittingParamGraph() Graph Window name change. * mz_butt_fitParamGraph() Checks for existence of window before creating a new one. * mz_butt_fitParamTable() Checks for existence of window before creating a new one. ----------- SQUIRREL 1.36.ipf ---------- * squirrel_fetch() Modified to accomodate hdf files with one run in them. ----------- Squirrel FD 1.36.ipf ---------- Added standard GNU liscensing info in comments in beginning. Eliminated FD_MakeFinalDiagnosGlobals() function. * FD_GenerateFragTrends() Added the ability to choose whether to use airbeam correction factor or no. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.35 (Bug fix Release) Update since ToF-AMS Analysis Toolkit v1.34 Notes by Donna Sueper 16th Oct 2006 ----------Begin In a Nutshell---------- * A bug fix release for 1.34, the user's mtg version. * Added functionality to view the PToF diameter calculations. * Removed all references to PAH frag wave from other frag waves. * When recalculating ptof sticks, a warning now pops up to alert the user that this takes a long time. * Added a button in PToF tab for a mass spectra default species list. * Important buttons are gold in the m/z calibration and baseline panels. * Fixed all typos that read 'TOF' instead of 'ToF' * Now all button presses don't give unexpected behavior if current data folder is not root. * When entering a custom diameter base, it is now clear that the values are edges, not centers. * There was a bug in the calculation of PToF image plots when a non-default size bin option was selected. * The airbeam correction is fixed. It didn't work in 1.34 as it did in previous versions for non 2006 Ron Brown data. * Blacklisting runs is fixed. It worked in 1.33, but not in 1.34. * Path strings are no longer global strings, so Japanese characters in file paths should not be a problem. * In DCMarker graph the string which indicates whether PToF data exists for a run has been fixed so it always works. * For Mac OS X users, on occasion when a user presses the "Get background values for this run" Igor hangs (the wheel keeps on spinning forever) A fix is in place. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.35.ipf ---------- New functions: * sq_butt_ToFSpeciesMSDefault() A new button in the ptof tab for setting the species default for mass spec graphs * sq_ms_airbeamCorrNonRB() A version of the old airbeam correction function, for use in all non-2006 Ron Brown data. James made many corrections to this function for the Ron Brown data, and the two versions are easily interchangeable. * sq_FindAvgUseMaskWave() A helper function for sq_ms_airbeamCorrNonRB(). * sq_FixPToFDiagWaves() A few PToF waves in the diagnostic folder need to be massaged - the logging software does not give expected values. * sq_butt_DVagraph() A new button in the main panel for viewing the PToF diameter parameters. * sq_DVaGraph_SetVar() A set variable control function for the DVa graph. *sq_VDa_plot() A function that creates the DVa graph. * sq_makeBlacklistMask() A helper function that makes a mask wave, 1s everywhere except where the run is not in the blacklist wave. Modified Funcions: * sq_globals() Added a global string for help with airbeam correction. * ams_panel() Slightly modifed the Corrections-PToF tab, Corrections-Airbeam tab and the PToF tab. * sq_butt_GetSquirrelIndex() Changed code so that the use of the gloab string hdfPath_last is obsolete. This was done to solve the problem of having Japanese characters in the path. * sq_makeToDoAllVW() Deleted obsolete code having to do with blacklisting runs. * sq_makeToDoIonizationType() Modified code so that it will work for non-2006 Ron Brown data. * sq_splitdiags() Added another conditional, the existence of the wave ionizationType, so that it won't be used in non-2006 Ron Brown data. * sq_butt_editRunIndex() Changed code so that it doesn't create another table if one already exists. * sq_butt_pre_process() Made sure current data folder is root. * sq_butt_diagUpdate() Added a sanity check tof the existence of the all todo wave and added a function call to sq_FixPToFDiagWaves() * sq_Diagnostics() Deleted obsolete, commented code. * sq_diag_list_init() Changed name of some ptof diagnotic waves to have an "_logged" suffix to distinguish between those that may be modified by the user. * sq_butt_addToBlacklist() Changed code so that newly blacklisted runs are actually removed from all other todo waves. Need to check with James on this when he gets back. * sq_butt_toDo_edit() Minor window name change. * sq_butt_toDo_graph() Sets current data folder to root before it does anything. * sq_butt_csrSetRunIntevals() Sets current data folder to root before it does anything. * sq_butt_MSSpeciesDefault() Variable name change. * sq_butt_ToFSpeciesDefault() Variable name change. * sq_butt_corrections() Sets current data folder to root before it does anything. Deleted obsolete, commented code. * sq_recalcDA() Significant change - now the PToF aerodynamic diameter values are changed only for the runs in the current todo wave. * sq_ms_airbeamCorr() Significant change - Uses a separate function for non-2006 Ron Brown data. * sq_dcMarkersExamine() Commented out section of code having to do with the ptof_step & ptofCoAdd. Now the PToF diagnostic waves are fixed in a separate function sq_FixPToFDiagWaves. * sq_butt_DCgraph() Added a sanity check for the existence of PToF data for a run. * sq_dcGraph_setVar() Uses a new, better method for checking the PToF parameters for an individual run. * sq_ApplyDCmarkers() Deleted obsolete, commented out sections of code. Uses a new, better method for checking the PToF parameters for an individual run. * sq_butt_MS_avg() Added graph labels. * sq_butt_diurnalPlots() Added graph labels. * sq_butt_MS_conc() Deleted obsolete, commented out sections of code. Added graph labels. * sq_butt_ToFConc() Deleted obsolete, commented out sections of code. * sq_plot_ptof1_MS() Added graph labels. * sq_plot_ptof1_av() Added code to check for the existence of user-modified PToF parameters. Added graph labels. * sq_plot_ptof1_im() Added code to check for the existence of user-modified PToF parameters. Added graph labels. * sq_plot_diag() Added a check for the existence of the ionizationType to flag non-2006 Ron Brown data. * sq_plot_corr() Added graph labels. * sq_GetThisRawMS() Deleted obsolete, commented out sections of code. ----------- SQ MS concentration 1.35.ipf ---------- * sq_MS_concentration() Fixed a bug that occurs when the user makes a PToF image plot with a user-defined diameter bins. ----------- SQ Mz Cal and Bkgd 1.35.ipf ---------- * mz_calibrationPanel() Gold bottons! Fixed all typos that read 'TOF' instead of 'ToF' Sets current data folder to root before it does anything. * bk_BaselinePanel() Gold bottons! Fixed all typos that read 'TOF' instead of 'ToF' * bk_createStickCompliment() Important bug fixes for Mac OSX users. On occasion when a user presses the "Get background values for this run" Igor hangs (the wheel keeps on spinning forever). I have contacted Wavemetrics about the problem, but a workaround is in place. ----------- Squirrel FD 1.35.ipff ---------- No change. ----------- SQUIRREL 1.35.ipff ---------- No change. ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.34 (User's Mtg Release!) Update since ToF-AMS Analysis Toolkit v1.33 BETA 14 Notes by Donna Sueper 17th Sept 2006 ----------Begin In a Nutshell---------- * Many bug fixes and enhanced features. * James programmed the ability to average raw spectra in a physically meaningful, careful way. * The Quantification/Frag diagnostics (also known as Alice's diagnostics) now put into it's own ipf and has tab name of Frag Checks * The baseline panel got an overhaul with many new options. * New, darker green for organic! * Suggested frag wave change (From Qi, seconded by all) implemented (31,-frag_nitrate[31]) * Fixed a PToF bug DC marker bug ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.34.ipf ---------- New functions: *sq_sqprog_upd() New function by James to add the blue progress line next to the red. *sq_splitdiags() Nice function by James which splits key diagnostics according to detector type *sq_butt_import_index() Functionality requested by Tim O to mport the index from another experiment (file index only) *sq_preProc_check() Generate a todo wave based on the preprocessing requirements of a data type *sq_diag_list_init() Prepare the list of diagnostics to make. Makes the diagnostics code more streamlined. *sq_checkFragMod() Check to see if frags have been changed since vector creation *sq_graph_pop() Helper function for averaged spectra graphs to allow selection of species to display *sq_ck_mzBase() Function controlling the m/z base radio buttons *sq_roughAvgRawSpec() A non-employed function for a very simple, rough raw spectra averaging *sq_butt_checkfiles() Check for bad file locations and correct Modified Funcions: * sq_globals() New global variable for new blue progress button, new only checkbox on Get Index, applyDC marker checkbox, preprocess new only checkbox, a few mz averaging controls * ams_panel() New blue progress bar, new Get Index related buttons, orange buttons, mz averaging section * ams_panel_credits() Tim finally gets some credit for his expert Igor skills & input, especially with the Frag Checks section * sq_tabControl() New Frag Checks tab * sq_ams_prog_upd() Blue and red progress bars * sq_ams_stat_upd() Blue and red progress bars * sq_pop_getVariable() New if statement added by James regarding ms0_graphtype * sq_harvest_files() Tweaked by James * sq_butt_GetSquirrelIndex() Incorporate the checkboxes and new buttons in the Get Index section * sq_makeToDoAllVW() Tweaked by James * sq_makeToDoIonizationType() Added set data folder call, reorganized a section to prevent a bug crash for the non Ron Brown data * sq_File2SquirrelIndex() Incorporate the checkboxes and new buttons in the Get Index section * sq_butt_pre_process() Added functionality for optional DC marker application in preprocess step * sq_ck_preProcess() Checkbox control function for graying out the recalc sticks- dependent checkboxes * sq_MS_preprocess() Reworked a bit by James to try to make things faster. Includes the execution of DC marker option for ptof sticks * sq_insert_Matrix() James tinkered to include functionality of DCMarker application * sq_gen_t_series() Very mInor adjustment in creation of waves. * sq_Diagnostics() James tinkered to speed things up and the allow for the functionality of the new only checkbox * sq_getToDoWaves() Slight change by James * sq_butt_ToDoFromRuns() Commented out section removed * sq_butt_credits() Tim finally gets some props * sq_butt_reviewBatch() New title for tof_list column * sq_butt_appGraphDefs() James tweaked to include gdef_cursors and gdef_cbut * sq_setAB() Included important {if(index_pos[i]==-1);continue;endif} section * sq_butt_reset_AB() Included sq_splitdiags function call * sq_ms_airbeamCorr() James implemented a detectorsused global variable * sq_dcMarkersExamine() Bug fix; ptofCoAdd wave and imput values used * sq_StickCalcPrep() Implements the ability to use a mass defect * sq_MSstick() Implements the ability to use a mass defect and/or "no-man's land" regions * sq_butt_MS_avg() James implemented his special raw averaging spectra algorythm * sq_butt_diurnalPlots() Small bug fix regarding wave names, air_bck commented out * sq_butt_MS_conc() James tweaked to allow time axis averaging * sq_plot_diag() James redid, made more coherent and modular * sq_graph_addControls() Removed extra, old commented out sections * sq_graph_control() James added a drop down menu to view individual species in gr_sticks * sq_scale_hook() Removed unsued code * sq_graph_auto_scale() James tweaked * sq_graph_minNonZero() James changed if statement * sq_findRun() James significantly reworked * sq_interpolateWave() Changed to the faster Interpolate2 functionality * sq_todo_AND() James redid * sq_todo_OR() James redid * sq_todo_NOT() James redid ----------- SQ MS concentration 1.34.ipf ---------- * sq_MS_concentration() Fixed TimO's found error of map2dist(k,0,0,mass_tmp_err Incorporated the raw spectra averaging Various bug fixes by James * make_map() Bug fixes by James * dtdlogdp() Bug fixes by James * ptof2dva() Bug fixes by James ----------- SQ Mz Cal and Bkgd 1.34.ipf ---------- New functions: * mz_SetppmAxis() Created to adjust axis in panel for C and non-C tof data types * bk_Tab() Created a tab system in the first step in the panel because we were running out of run! * bk_NanExtraFromStickCompliment() Added functionality so that m/z regions can be removed from consideration (for ghost sister peaks, dreomedaries, camels) * bk_ck_RemoveMoreStickCompMz() Checkbox for bk_NanExtraFromStickCompliment functionality * bk_RemoveExtraStickComplPanel() Small panel popped up by bk_ck_RemoveMoreStickCompMz() for users to input custom m/z 'blank' regions * RemoveFromStickComp_butt_End() Added a simple button for bk_RemoveExtraStickComplPanel panel * bk_butt_end() Added a simple button for main baseline panel * bk_setVar_DiffYAxis() A simple function for easier graph axis manipulation * bk_butt_MassDefectDefault() A button for MassDefect Default wave. It is likely that in later versions, more mass defect options will be available for default ( * bk_ck_UseMassDefect() Checkbox for bk_CreateMassDefectDefault functionality * sr_MassDefectPanel() Small panel popped up by bk_ck_UseMassDefect() for users to input custom m/z 'blank' regions * MassDefect_butt_End() Added a simple button for sr_MassDefectPanel panel * bk_CreateMassDefectDefault() A function that creates MassDefect waves which are used to slightly adjust the peak centers from the integer value to values that follow the defect caused by the (CH)n lines. For lower m/zx (< 100) the default also includes some metals. Modified functions: * mz_createGlobalsMzCalibration() 3 new waves were added for Jose's ppmGuidelines * mz_calibrationPanel() Jose now has his long awaited ppm lines! Added a new set variable to separate out the num of runs that have nans (for a given todo wave) from the num or runs that exceed the threshold * mz_individualMassFitGraphs() Removed the option to do this for PToF because this needs to be tested more. * mz_butt_beginMzFitting() Removed the option to do this for PToF because this needs to be tested more. * mz_calibration() Changed the way that FilterNumNans gets set. * mz_butt_filterBadFitsNow() Slightly change so that the 'bad' fits are separated into nan or beyond the threshold * mz_setVar_estimateFiltered() Change so that the 'bad' fits are separated into nan or beyond the threshold * mz_fitOneRun() When one does individual runs through the button interface, the right-hand side graphs do not change. * bk_createGlobalsBaseline() Added more global strings and variables for 2 new panels * bk_initializeBackground() Created new waves to allow for the fitting of the raw difference spectra * bk_BaselinePanel() New options and tab control interface * bk_setUpRawSpectraThisRun() * bk_createStickCompliment() * bk_butt_calcBkFit() ----------- SQUIRREL 1.34.ipf ---------- * squirrel_fetch() Bug fixes by James * squirrel_mem_write() Bug fixes by James ----------- SQUIRREL FD 1.34.ipf ---------- * Functions now isolated in it's own ipf * Renamed all _dd waves with the more descriptive _smth suffix FD_Check_batch() * Fixed bugs for CE for Inorg, m30, m31, m39, m41 ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.32 BETA 13 Notes by Donna Sueper 13th Aug 2006 ----------Begin In a Nutshell---------- * Another bug fix release. Version 1.32 had some annoying features that cropped up when one pre-processed ptof sticks and no ptof sticks were saved for some runs. This has been fixed. * There was significant discussion and progress made regarding resolution parameters. This resolution setting govern the stick integration area. Values are set by default in the baseline panel and changed by users. * The baseline calculations have been fully tested & implemented. The checkbox to indicate whether to preform baseline corrections for the sticks has been moved to the main panel. * Included some code for the identification of runs using different ionization methods. (It also includes some code that is used for the TexAQS 2006 Ron Brown deployment but the specific changes are minor.) * Separated the old data folder named mzFittingBk into two separate data folders, mzFitting and baselineFitting. * The code governing the calculations of sticks has been slightly reorganized & made modular. ----------End In a Nutshell---------- ----------- SQ AMS Panel 1.33.ipf ---------- New functions: sq_dcGraph_setVar * A function for the dc helper graph to let the user know how many times the daq software cycled through to obtain a ptof run. A value of 0 indicates no that there is no ptof data for that run. sq_initializeResolutionParams * Consolidated code so that the default values for the resolution parameters are set here. sq_StickCalcPrep * Finds the mz_begin, mz_start and mz_peak waves which indicate peak integration areas in point space. This simply made the code more modular. sq_makeOneRunToDo * A very simple function for making a todo wave of only one run. Is used mainly in the mz cal and mz baseline panels. sq_findAvgStdMatrix * A useful function for calculating the average & standard deviation of a matrix. It will be used for later baseline diagnostic calculations. Changed functions: sq_globals() *Cleaned up old comments. ams_panel() * Renamed "Check background" button to "Check baseline" sq_makeToDoIonizationType() Use to make todo waves that separate out runs using different ionization methods. sq_butt_GetSquirrelIndex() * AMSType global variable now set in sq_File2SquirrelIndex sq_File2SquirrelIndex() * AMSType global variable now set here instead of sq_butt_GetSquirrelIndex sq_butt_pre_process() * Rearranged the code governing baseline calculations, mostly to avoid sticky issues that crop up when raw closed spectra is not saved for some runs. sq_butt_checkMz() * Renamed the data folder from mzFittingBk to mzFitting. sq_butt_checkBk() * Renamed the data folder from mzFittingBk to baselineFitting. sq_ck_preProcess() * Changed the behavior governing which checkboxes are grayed out when other are checked in the pre-process step in the main ams panel. sq_MS_preprocess() * Changed the logic to better accomodate baseline corrections. Also incorporated mzFittingBk data folder name change. sq_Diagnostics() * Added a new wave, ptofNumTimesThrough that indicates whether ptof data was saved for a particular run. sq_checkMzFittingWaves() * Incorporated mzFittingBk data folder name change. sq_setAB() * Commented out a line that wasn't being used. sq_ck_controlSticks() * Added a line to include consideration of baseline fitting. sq_dcMarkersExamine() * Fixed code so that it checks for existence of ptof data for a particular run. sq_dcMarkersPrepare2Plot() * Added some global variables used in the dc helper graph. sq_butt_DCgraph() * Added feature that indicates the number of times through a ptof cycle for a given run number. sq_dcMarkersPlot() * Added text & text display sq_ApplyDCmarkers() * Slightly streamlined; checks for the existence of raw ptof data. sq_StickCalc() * Made more modular to account for the new sq_StickCalc_prep() function and for baseline fitting. sq_MSstick() * The mz_start & mz_end waves are now sent as parameters instead of being calculated here. sq_PToFstick() * The mz_start & mz_end waves are now sent as parameters instead of being calculated here. sq_plot_ptof1_im() * Fixed error that came up when different runs had different number of ptof bins. sq_vet_blanks() * Deleted old commented out code. sq_GetThisRawMS() * Replaced section of code with call to sq_makeOneRunToDo sq_MS_concentration ----------- SQ MS concentration 1.33.ipf ---------- sq_MS_concentration() * Added some /z s to wave declarations to prevent debugging error when existence is challenged. ----------- SQ Mz Cal and Bkgd 1.33.ipf ---------- Every function was changed to accomodate the change from one data folder named mzFittingBk to two separate folders called mzFitting and baselineFitting. mz_CalibrationPanel() * Included an optional sleep parameter at Jose's request. bk_BaselinePanel() * Included an optional sleep parameter at Jose's request. * Included a display variable that tells the user when integer amu range goes beyond .8 amu. * Included a button to allow the user to view the baseline fitting for all runs in todo wave. bk_butt_FindStdDev() * Included a warning to alert the user that the standard deviation parameters would not be used if linear interpolation was selected. bk_slider_mzAxis() * Changed the starting point of this variable to be smaller. bk_ck_LeftAxisLog() * Changed the default setting to be off. ----------- SQUIRREL 1.33.ipf ---------- No change. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.31 BETA 12 Notes by Donna Sueper 27th July 2006 ----------Begin In a not-so-small nutshell---------- * This is a significant bug fix release. Problems were found in the ptof calculations and in calculations where a c-tof (not v/w) AMS was used. * A lengthy and healthy discussion was had about the options for units of PToF sticks. The decision was made to retain Hz; this is the same as in previous versions. More explicitly, PToF sticks are in units of dI/dpTOF, and to convert to MS equivalents, one needs to multiply by chopper frequency, divide by duty cycle (and integrate over the appropriate axis - pToF or logD). More details and discussion will be posted on the web shortly. * Because this was a major release, I took the liberty to rename globals and functions and clean up various bits of code. * Reworked the entire dc marker section of the code. ----------End In a nutshell---------- Renamed the folllowing globals: wave root:diagnostics:vg -> root:diagnostics:ptof_vg wavevroot:diagnostics:vl -> root:diagnostics:ptof_vl wave root:diagnostics:dx -> root:diagnostics:ptof_dx // better named ptofSize_D* root:diagnostics:ChopperF -> root:diagnostics:ChopperFreq root:diagnostics:b -> root:diagnostics:ptof_b ionstr -> ToFPulserInHz ion_user -> ionSingleStr //^ Avg. Single Ion strength, bits*ns; user modified ion -> ionSingleStr_logged //^ Avg. Single Ion strength, bits*ns; as saved by the daq software IonEff -> ionEff_logged //^ Ionization and Transmission Efficiency; as saved by the daq IonEff_ref -> ionEff //^ Ionization and Transmission Efficiency; as used in airbeam and conc calculations. Added the following globals: root:panel:ptof_dcRunNumber (variable) root:panel:ptof_dcUseBinNumUnits (variable) root:panel:ptof_dcMarkersPtWave root:diagnostics:ptofCoAdd root:diagnostics:ptofNumSpectraPerChop root:diagnostics:ionizationType (doesn't exist if using an older daq) root:diagnostics:tps_Drift (doesn't exist if using an older daq) root:diagnostics:tps_setFileMajor (doesn't exist if using an older daq) root:diagnostics:tps_setFileMinor (doesn't exist if using an older daq) root:diagnostics:ch1ThresholdVolts root:diagnostics:ch2ThresholdVolts root:diagnostics:ch1FullScaleVolts root:diagnostics:ch2FullScaleVolts root:diagnostics:Res14 root:diagnostics:Res28 root:diagnostics:Res91 root:diagnostics:Res184 Renamed the folllowing functions: harvest_files -> sq_harvest_files gen_t_series -> sq_gen_t_series File2SquirrelIndex -> sq_File2SquirrelIndex sq_runMe -> sq_initializeAMSPanel SQfilecheck -> sq_filecheck SqDiagnostics -> sq_Diagnostics SQrecalcDA -> sq_recalcDA SQfilecheck -> sq_fileCheck SQApplyDCmarkers -> sq_ApplyDCmarkers SQMSstick -> sq_MSstick SQPTOFstick -> sq_PTOFstick SQRun2panel -> sq_Run2panel sq_getWin -> sq_getAMSWin sq_abAutoSet_CheckProc -> sq_ck_abAutoSet sq_butt_MS2Default ->sq_butt_MSSpeciesDefault sq_butt_tof1Default -> sq_butt_ToFSpeciesDefault sq_butt_msave_def -> sq_butt_MSAveSpeciesDefault ----------- SQ AMS Panel 1.32.ipf ---------- Renamed these constants: sq_MSAVEDEF -> sq_MSAveSpeciesDefault sq_mstseriesdef -> sq_MSTSeriesSpeciesDefault sq_tofave -> sq_ToFAveSpeciesDefault New functions: sq_makeToDoIonizationType() * Made specifically for use in 2006 Ron Brown data set to distinguish between different ionization sources. In the version of squirrel that will incorporate menu switching, this will be redone or removed. sq_Hz_ptof() * During the PToF Hz discussions, and alternative method for converting to Hz units was suggested. It is commented out but may be useful later. PToF Hz sticks still use the same formula as for MS Hz conversion in this version of the software. sq_dcMarkersExamine() * A function that updates a plot for new dc marker selections. It's only purpose is to assist the user in dc marker selection, it doesn't do any calculations. sq_dcMarkerPrepare2Plot() *Used to set some globals to prepare for sq_dcMarkersPlot() sq_butt_DCgraph() * A new button on the Corrections-PToF tab. It calls other functions to generate a graph to aid in dc marker selection. sq_dcMarkersPlot() * Plots a graph that shows where the dc markers are in PToF-time space. sq_FindStrInTextWave() * A handy function suggested by Tim O that prints out rows in a text wave that contains the given string. One good use is the printing out of entries in the InfoText or ParStr waves in searching for a daq saved parameter. Functions that have been commented out and are on the way to complete elimination: sq_butt_deleteIndex() sq_checkFragMod() Modified functions (beyond function renaming as indicated above): sq_globals() * For some reason cor3_chamber global was initialized to 0.395.. This has been changed to initialize to 0. ams_panel() * Reworked the Corrections-PToF-DC markers section. Renamed some variables in the tab, added a checkbox and a button. sq_butt_GetSquirrelIndex() * Added call to sq_makeToDoIonizationType at the end. Used for new daq. sq_file2SquirrelIndex. * Major overhaul. Wave references have been changed and there was a big cleanup. Now has a plentitude of comments. sq_butt_editRunIndex() *Changed the name of table it generates to RunIndexTable sq_butt_pre_process() * Slight change to sq_insert_Matrix call in MSS and PToF sticks section. sq_insert_Matrix() * Commented out variable ionstr_op, because it was doing the same thing as the hz_op. * Added code to handle MS and PToF Hz conversion separately. Since we are keeping PToF Hz conversion the same, it doesn't matter, but code retained if we want to change. sq_butt_diagUpdate() * Changed call to sqDiagnostics fetch function to not include MSSDiff. sq_Diagnostics() * Added the many new waves and variables indicated above. * Many waves were renamed, as indicated above. sq_pop_dump2memList() * Changed error message consisting of print statement to history to an abort statement. sq_butt_reviewBatch() * Named the resulting window ReviewBatchTable. * Noted that root:frag:calfac_list is reset (via a dependency) when opening batch table. It should also be noted that calfac_list is never used, it is displayed for user convenience. sq_butt_reviewFrags() * Named the resulting window ReviewFragTable. sq_ms_airbeamCorr() * Modified code so that if deselects autoSet, no reference runs need be identified. * Fixed some bugs dealing with when using c-tof and non-autoset. sq_ApplyDCmarkers() *Major reorganization of the code. Things are more modular, and there is now some sanity checks included in the selection of dc markers. sq_baseline_remove() * Code now includes the correct calulation for resolution for c-type tofs. sq_MSstick() * Code now includes the correct calulation for resolution for c-type tofs. sq_PToFstick() * Code now includes the correct calulation for resolution for c-type tofs. sq_StickCalc() * Code now includes the correct calulation for resolution for c-type tofs. sq_butt_MS_avg() * Changed plotting code so that last non negative stick is plotted as sticks to zero, for more sensible mass spec graphs. * global variable ms0_ck_trunc2zero was misidentified, is now fixed. sq_butt_TofConc * Commented out a useless if conditional statement at the end. sq_plot_ptof1_MS() * Changed code so that if 'Update' plotting option is selection, no new graphs are generated. sq_plot_ptof1_av() * Changed code so that if 'Update' plotting option is selection, no new graphs are generated. sq_plot_ptof1_im() * Changed code so that if 'Update' plotting option is selection, no new graphs are generated. sq_plot_diag() * Changed code so that the SinglIonStr_logged wave is always plotted, never the user modified SinglIonStr * Added the plotting of ch1ThresholdVolts et al. sq_GetThisRawMS_viaFetch() * Completely redid... Much more efficient now, doesn't have to go through long todo wave. sq_GetThisRawMS() * Completely redid... Much more efficient now, doesn't have to go through long todo wave. sq_InterpolateWaveSameMode() * Cleaned up, nothing major. ----------- SQ Mz Cal and Bkgd 1.32.ipf ---------- Deleted commented out, useless functions. mz_CreateGlobalsMzCalibration() * Move the creation of waves OneRunRawSpectraOpenBk, OneRunRawSpectraClosedBk, OneRunRawSpectraMz to bk_InitializeBkWaves where they belong. mz_CalibrationPanel() * Removed the use delta from integer AMU method, inserted a resolution tweaking option, and the option to use open spectra. * Live Update no longer italicized. Works, but is still lame-o. mz_IndividualMassFitGraphs() * Plots open if chosen. mz_IndividualMassGrPlacement() * Plots open if chosen. mz_butt_BeginMzFitting() * Uses open if chosen. mz_Calibration() * Uses open if chosen. mz_GetOneFitEstimate() * Will exit gracefully if can't find decent estimate for a point number. mz_FittingParamGraph() * Renamed window to MzFittingParamGraph. mz_FittingParamTable() * Renamed window to MzFittingParamTable. mz_butt_FitParamTable() * Accomodated window name change to MzFittingParamTable. mz_butt_FitParamGraph() * Accomodated window name change to MzFittingParamGraph. mz_butt_FilterBadFitsNow() *Reordered options so that interpolate is the default. mz_FitOneRun() * Uses open if chosen. * Will now print a statement to the history window if something goes wrong with a gauss fit. mz_CalcFitOneMassSpec() * Recoded the important sq_GetTHisRawMS function and matching squirrel fetch function. * Uses open if chosen. bk_InitializeBackground() * Inserted the creation of waves here (moved from other. mz_function) OneRunRawSpectraMz, OneRunRawSpectraClosedBk, OneRunRawSpectraOpenBk bk_BackgroundStickPanel() *Non-minor upgrade. Removed 'delta from integer amu' method and inserted resolution tweaking options. bk_butt_SetResolutionToDefault() * New function to set resolution parameters to default. bk_butt_RawSpectraThisRun() * Inserts code to redimention raw spectra waves, if necessary. * Now automatically uses the correct resolution parameters (different for c and v/w). * Fixed small bug Ken D pointed out that occurred when a user did not opt for using new m/z Fitting parameters. bk_MakeBkZeroBeyoneMassX() * Inserted option ot make background = 0 beyond an m/z value. This would be useful for situation where the signal peters out and you don't want to introduce any more noise. bk_setVar_RunNumberVW() * Added another sanity check, fixed small bug. bk_butt_FindStdDev() * Added a warning message to indicate that the standard deviation is useless when doing a linear fit. bk_ck_UseLinearOrSpline() * Inserted a conditional editing of the standard deviation values based on whether cubic spline or linear fitting is selected. bk_calcOneRunOneWaveBackground() * Changed the linear interpolation for background values to not use interpolate2, rather uses sq_InterpolateWave. ----------- SQ MS concentration 1.32.ipf ---------- sq_MS_concentration() * Bug found by Tim O fixed. It had to do with the redimensioning of the mass_tmp wave after a matrixop operation on PToF sticks. * Bug found by Tim O fixed. This one had to do with the inadvertant use of t_map instead of d_map. * Bug regarding the conversion of ptof sticks to ms equivalent sticks was fixed. * Some important sections of the code are now heavily commented. * Minor tidying up of code. ----------- SQUIRREL 1.32.ipf ---------- * Minor tidying up of code. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.30 BETA 11 Notes by Donna Sueper 5th July 2006 ----------Begin In a not-so-small nutshell---------- * A few features were added to the mz panel. * The background panel has been upgraded. While it is now functional, it is still not advisable to subtract the baseline/background for large data sets, mostly because it take a long, long time. There needs to be more discussion of the most appropriate algorithm and of the best method for saving pertinent baseline information. Users are encouraged to give feedback. * There was discussion about the m/z resolution for higher masses. (higher than 300 amu). Discussion is ongoing. For version 1.31, the maximum peak width is set at .8 amu (+-0.4 from unit mass). This means that the calculation of sticks at higher masses will no longer use overlapping raw spectra points at higher masses. Also, the formula for the resolution (the peak width resolution used in the calculation of sticks) currently uses parameters most appropriate for the v-tof. Ideally, these resolution parameters would be derived, perhaps from the m/z Fitting panel. The calculation of sticks for c and w tof data works fine, but may not be ideal. * There was significant discussion of the reference single ion display in the airbeam correction tab. This display and the pToF airbeam display have been grayed out to indicate that these values are never used in any subsequent calculations. For the time being, users are encouraged to make sure that the single ion strength value is correct for each run (via the Modify SI - advanced button) before executing the pre-process step. * Code was changed for the manipulation of todo waves. Creating and altering todo waves now happens much more quickly on large data sets. * Code was changed for the extraction of single raw spectra, so it is no longer a squirrel fetch function. When a user want to plot one run's raw spectra in the mzFitting or Background panels, it is extracted much more quickly for large data sets. * There are now duplicate airbeam waves - one is the airbeam value that was saved in the parval (called airbeam_logged), the other is called airbeam and it is reset to the mass 28 stick value every time sticks are pre processed. * Slightly reorganized the airbeam corrections tab. Removed the recalc ab button because it's redundancy was causing confusion. * Default dc markers are now applied to the ptof sticks in the pre-process step. Previously, first look size spectra were way off and users had to go to the ptof corrections tab and apply the dc marker correction. * Various small bugs were squashed. ----------End In a nutshell---------- Qi Zhang's suggested change in the frag_organic wave has been implemented: Frag_organic[31] = 31,-frag_nitrate[31] ----------- SQUIRREL 1.31.ipf ---------- squirrel_hdf_write() * The first time that intermediate files are saved, the user is alerted if he/she tries to save intermediate files in the same location as the raw hdf data files. * Now aborts when the source ID already exists in the squirrel index (instead of printing the error to the history window and exiting early). ----------- SQ MS concentration1.31.ipf ---------- no change ----------- SQ Mz Cal and Background 1.31 ---------- * These functions were moved to the panel ipf: sq_GetThisRawMS sq_InterpolateWaveSameMode sq_RepeatLastNonNanSameMode sq_Baseline_calc sq_StickCalc *These functions were renamed: mz_MakeExactMassWaves is now mz_MakeMzCal_Waves mz_butt_RevertExactMassSpec is now mz_butt_RevertMzCal_Spec bk_BKstickcalc is now bk_CreateStickCompliment bk_EstimateOneRunBackground is now bk_calcOneRunOneWaveBackground These waves were renamed: exactMass is now mz_Mass exactMassName is now mz_Name exactMassOption is now mz_SpecType mz_ReSizeMzCalWaves() * New function which checks if new entries were added to mz table in the panel, and create/adjusts waves properly. bk_setUpRawSpectraThisRun() * Separated this function from the button control function to make it more modular. mz_SetVar_RunNum() * New function which sets tof type mode (typically v or w) string in the panel when a run number is incremented/decrimented. bk_ck_UseLinearOrSpline() * Radio button type of checkbox control function which allows the user to select linear interpolation of the stick compliment spectra mz_InitializeMzCalibration() * Reorganized this and associated functions - this function now only sets pertinent waves to nan in anticipation of filling them up with todo wave entries. It is called from the Begin Mz Fitting button. mz_CreateGlobalsMzCalibration() * Created 2 new waves that are displayed in the panel table. One wave allows the selection of whether a particular mass which is fitted is to be displayed (as one of at most six graphs). Another wave allows the user to select the number of points away from the peak max to be used in the fitting. * Created a global string to alert the user to whether a run is in v or w mode. mz_CalibrationPanel() * Various small adjustments to incorporate new changes in the code. mz_IndividualMassFitGraphs() * Slight code change to allow for the user-determined selection of individual mass graphs to be displayed. mz_IndividualMassGrPlacement() * Slight code change to allow for the user-determined selection of individual mass graphs to be displayed. mz_butt_BeginMzFitting() * Slight reorganization to keep things tidy, modular. * Super cheesy, lame-o fix for the live update. This fix temporarily kills the mz calibration window after a Begin Mz Fitting button push. It reopens the panel when it is finished. The purpose is to speed up the calculations by not updating the panel. mz_Calibration() *Slight change in squirrel fetch function to accomodate name change of waves exact_mass to mz_Mass, etc (see above). mz_AdjustFitAxis() *Slight change in squirrel fetch function to accomodate name change of waves exact_mass to mz_Mass, etc (see above). mz_GetOneFitEstimate() * Code changed to implement the feature that allows the user to set the delta number of point to be used in the peak fitting, via the wave mz_DeltaNum, as displayed in the table. mz_FitOneRun() *Slight change in squirrel fetch function to accomodate name change of waves exact_mass to mz_Mass, etc (see above). * Code changed to implement the feature that allows the user to set the delta number of points to be used in the peak fitting, via the wave mz_DeltaNum (as displayed in the table) and whether or not to display a mass peak graph. mz_CalcFitOneMassSpec() *Slight change in squirrel fetch function to accomodate name change of waves exact_mass to mz_Mass, etc (see above). * Code changed to implement the feature that allows the user to set the delta number of point to be used in the peak fitting, via the wave mz_DeltaNum (as displayed in the table). mz_butt_FitThisRun() *Slight change in squirrel fetch function to accomodate name change of waves exact_mass to mz_Mass, etc (see above). * Code changed to implement the feature that allows the user to set the delta number of point to be used in the peak fitting, via the wave mz_DeltaNum (as displayed in the table) and whether or not to display a mass peak. bk_InitializeBackground() * Added 2 new global variables to allow the user to select between linear and cubic spline fitting: bk_UseLinear & bk_UseCubicSpline. bk_BackgroundStickPanel() * Rearranged things, added things. bk_ck_MaxBk() * Eliminated the query for OneRunRawSpectraDiffBk but the automatic vertical axis setting still isn't quite right. bk_butt_RawSpectraThisRun() * Significantly reorganized this function to make it more modular. Also added the functionality whereby users can derive and subtract a baseline automatically for all runs. bk_butt_CalcBkFit() * Signficant reorganization. bk_setVar_RunNumberVW() * Added a global string so that a user can tell whether a run is in v or w mode. ----------- SQ AMS Panel 1.31.ipf ---------- *These functions were renamed: sq_abcalc is now sq_setAB sq_butt_recalc_AB is now sq_butt_reset_AB sq_GetThisRawMS is now sq_GetThisRawMS_viaFetch . A new function that uses faster way to access one raw spectra is created and has the old name sq_GetTHisRawMS. Another new, similar function called sq_GetThisRawPToFMS for use with MSPToF raw data has been created. * This function was added: Sq_SampleCorrectionFunction() This very simple function, found at the very end of the file, shows a very simple example of how one might go about creating an additional correction factor wave, and setting it equal to one of two values, depending upon whether a run is in v or w mode. sq_globals() * A new variable is created - load_saveExpAfterPreprocess_ck. This should have been created in the 1.30 version but was omitted by mistake. ams_panel() * The airbeam correction tab has been slightly rearranged. ams_panel_credits() * Whoopsie, Silke's name is no longer off screen. sq_abAutoSet_CheckProc() * Code clarified to indicate which parameters are change-able. sq_makeToDoAllVW() * Can now handle w only mode data. sq_butt_pre_process() * sq_setAB is now called at the end of pre-process - It sets the airbeam wave from MSSDiff_p mass 28 values. * SQ_DCMarkers is now called at the end of pre-process. sq_butt_checkMz() * Incorporate function name change from mz_MakeExactMassWaves to mz_MakeMzCal_Waves. sq_butt_checkBk() * Incorporate function name change from mz_MakeExactMassWaves to mz_MakeMzCal_Waves. Many of the same waves are used in both mzFitting and background panels. * Fixed a typo so that only one background panel is ever displayed. sq_MS_preprocess() * Cleaned up comments. * Commented out sq_baseline_remove function. Baseline removal occurs in the SQMSstick function. SqDiagnostics() * Wave name change of airbeam to airbeam_logged. sq_pop_toDoList() * Changed from execute functionality (which chokes at lots of todo waves) to a more straight-forward method. sq_toDoWaveAddRuns() * Changed code from findvalue to quicker sq_findrun function. sq_butt_csrSetRunIntevals() * Changed code from findvalue to quicker sq_findrun function. sq_butt_corrections() * No longer resets airbeam wave. The airbeam is set in the preprocess step. (The airbeam_logged wave is set in the SqDiagnostics function.) sq_ms_airbeamCorr() * Added functionality for v/w switching and smoothing for the flowrate wave. sq_pop_AB_ToFType() * Added vw switching for flowrate. SQApplyDCmarkers() * Corrected some typos and added comments sq_baseline_remove() * Significantly changed to allow automatic processing of todo wave runs. SQMSstick() * Changed code so that the maximum peak width resolution is +-0.4 amu * Includes baseline corretions. Default values set baselines to 0. sq_butt_MS_avg() * Small typo resulted in the use of corr_fact_flow instead of corr_fact sq_butt_MS_conc() * Small typo resulted in the use of corr_fact_flow instead of corr_fact sq_plot_diag() * Wave name change of airbeam to airbeam_logged. sq_dbase() * Small change converting decimals to underscores in wave name. sq_tbase() * Small change converting decimals to underscores in wave name. sq_todo_AND() * Changed code from findvalue to quicker sq_findrun function. sq_todo_OR() * Changed code from findvalue to quicker sq_findrun function. sq_todo_NOT() * Changed code from findvalue to quicker sq_findrun function. sq_vet_blanks() * Changed code from findvalue to quicker sq_findrun function. sq_butt_modifySI() * Added columns, changed ion column to red. sq_GetThisRawMS() * Totally overhauled. Two new waves are created and placed in the index data folder: file_names_m and file_names_mRow. These allow for faster extraction of raw spectra. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.29 BETA 10 Notes by Donna Sueper 6th June 2006 ----------Begin In a nutshell---------- * A relatively minor upgrade. A bug was found in an essential squirrel fetch function called squirrel_mem_write. The symptom for this bug can manifest itself by mass concentrations being set to identically 0 for all runs in the chosen todo wave, but this occurrs only in some data sets. The bug affects the important MSSDiff_p matrix and the squirrel_index matrix, so users are encouraged to upgrade. * A few graphing annoyances have been fixed and other small bugs were fixed. ----------End In a nutshell---------- ----------- SQUIRREL 1.30.ipf ---------- squirrel_mem_write() * Fixed a bug..... "if (index_pos[i]<0) //^ Originally index_pos<0" ----------- SQ MS concentration1.30.ipf ---------- no change ----------- SQ Mz Cal and Background 1.30 ---------- mz_CalibrationPanel() * Changed the wording of a panel set variable ----------- SQ AMS Panel 1.30.ipf ---------- sq_globals() * Included a new global ms0_ck_trunc2zero for use in plotting sticks. sq_insert_Matrix() sq_insertStick_check() SQApplyDCmarkers() SQMSstick() SQPTOFstick() * Renamed a wave reference to series_index from series. sq_ms_airbeamCorr() * Commented out some wave references which were no longer used sq_butt_MS_avg() * User now has the option of not truncating the stick spectra to zero for display purposes. The igor display method of stacking sticks doesn't handle negative values well, so the users need to be aware of igor display limitations. sq_butt_TofConc() * Eliminated some old, commented out code. * Fixed a bug in an alert that sometimes appeared when the user generated PToF Mass Spectra graphs. sq_dataDestStr() * Commented out a line which made sure wave names are unique (Shane M wanted them overwritten). sq_graph_control() * Reorganized slightly. This functionality could be handled more gracefully and robustly in the future. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.28 BETA 8 Notes by Donna Sueper 19th May 2006 ----------Begin In a nutshell---------- * Major Revision * The pre-process step has been overhauled. There is no longer any "_pp" (pre-processed) waves, just "_p" (processed) waves. This cuts down on the number and volume of data saved to the intermediate files, and eliminates somewhat redundant data sets. * There is now an additional squirrel journalling feature which will keep track of data manipulations. The infrastructure is mostly in place, but the user interface is not; this will likely happen in the next release. * There is now an optional feature whereby users can modify the single ion strength before preprocessing. * A panel for investigating and displaying the background has been added. For the moment, users may play with how a background may be calculated and subtracted from the raw spectra before creating sticks. The button is italicized to indicate that it is not fully operational, but users are encouraged to press the button and play with the background panel. In this version, as in all previous versions of squirrel, no background is subtracted in the calculation of sticks. Note that a background is calculated in the acquisition software. Once the calculation of a background issue is resolved (in the next squirrel release), it is hoped that users would not have to reload and reprocess data (recalculate sticks) in subsequent releases. ----------End In a nutshell---------- ---------- Igor Template Experiment changes ---------- Killed ExactMass, ExactMassName, ExactMassNote, ExactMassOption waves which were in the frag folder. Killed ~20 obsolete global variables and strings in the panel folder. KIlled the SI and the maxAMU global variables in the root folder; both were obsolete. Killed InfoText wave in root folder - some users with older acquisition software versions had incorrect/incomplete entries. Wave airbeamCorrToFTypeValue now a 2-dimensional wave. Renamed a few global variables to a more consistent and accurate system. ---------- Squirrel.1.29.ipf ---------- * James included some functions to write to the squirrel journal. ---------- SQ MS concentration 1.29.ipf---------- no change ---------- SQ AMS Panel 1.29.ipf ---------- James added squirrel journal function calls to many functions which generated new waves or performed calculations on new waves. The list of function for which have been changed to include a squirrel journal call, but have no other functionality changed is: sq_butt_GetSquirrelIndex sq_butt_pre_process sq_butt_diaguUpdate sq_butt_dump2mem sq_butt_deleteFromMem sq_butt_corrections sq_butt_recalc_AB sq_butt_MS_avg sq_butt_diurnalPlots sq_butt_MS_conc sq_butt_TofConc SqDiagnostics() * 8 analog in voltages are now included. sq_butt_checkBk() * New function for setting up and creating the background panel sq_Hz() * New function for converting raw data to Hz (this functionality was previously embedded in the pre-process function). sq_findBlanks() * New function from James to handle blanks (this functionality was previously embedded in the pre-process function). sq_diffCalc() * New function for quick and dirty difference (open - closed) calculator sq_pop_AB_ToFType() * Renamed from sq_popMenuProcABToFType sq_baseline_remove() * New function for future implementation of baseline removal sq_ck_diambase() * Renamed from sq_diambase_check sq_butt_modifySI() * New function for displaying a table for single ion strength modification. sq_stickcalc() Moved to the new SQ Cal and Background ipf. sq_butt_editMZcalWv() * Deleted because it is now obsolete. Exact Mass waves are no longer in the frag folder. sq_setVar_ABAutoSet() * Renamed sq_abAutoSet_SetVarProc sq_globals() * Renamed several variables & commented out a few more. sq_butt_pre_process() * Major overhaul. sq_MS_preprocess() * Major overhaul. sq_PToF_preprocess() * Major overhaul. sq_butt_checkMz() * Now checks to make sure a user pressed Get Index before things continue. sq_pop_toDoList() * Reinstated previously commented out execute function. sq_butt_addToBlacklist() * Deleted old, commented out code. SQApplyDCmarkers() * Edited by James ( to accomodate new preprocessing scheme?) sq_DCMarkers * Edited by James ( to accomodate new preprocessing scheme?) SQMSstick() * Edited by James ( to accomodate new preprocessing scheme?) SQPTOFstick() * Edited by James ( to accomodate new preprocessing scheme?) sq_dutyCycleCorr() * Edited by James to accomodate new preprocessing scheme - is no longer a fetch function. ---------- SQ Mz Cal and Background 1.29.ipf ---------- This ipf has been renamed from SQ mz calibration, and has undergone a major overhaul. A new panel, bk_backgroundStickPanel and all its associated globals and functions has been added. A few new graphs, and associated diagnostic waves has been added. The ratio threshold has been changed to 1%, because now most of the gaussian and power fits are typically good. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.27 BETA 7 Notes by Donna Sueper 26th April 2006 ----------Begin In a nutshell---------- * Fixed a bug that caused the recalculating of PToF DA values to not be executed. * The m/z calibration panel creation routine will not set the fitting parameters to nan. Upon panel regeneration previous values are still viewable/editable. * For the m/z calibration routines, changed the gaussian fitting routine so that initial guesses are not used. This speeds things up a tad, but more importantly, does not give obviously bad gaussian fits. * For the m/z calibration routines, plotted another parameter to measure goodness of fit - the difference between fit and exact mass, in ppm. * For the m/z calibration routines, new entries into the exact Mass table are handled more gracefully in subsequent calculations, and only the first 6 individual mass graphs are displayed. * Fixed the recalcing of sticks so that the default calculation of MSSDiff is the sticks of the difference of raw spectra (not the difference of sticks) * Fixed a bug whereby if the all todo wave was not selected for the DoCorrections button, the airbeam wave got set to nan at non-todo wave runs. ----------End In a nutshell---------- ---------- Squirrel.1.28.ipf ---------- no change ---------- SQ MS concentration 1.28.ipf---------- no change ---------- SQ mz calibration 1.28.ipf---------- mz_InitializeMzCalibration() *Renamed some globals for a more consistent scheme *Added Residual waves (fit - exact) for individual runs, all runs *Removed FindPeakGood and Bad; we don't 'find peaks' anymore, we find max value. * The creation of diagnostics:mzPower wave move to here. mz_CalibrationPanel() * Added a residual parameter, * Changed the max/min ratio threshold to be +/- 5, not 50% * Only the first 6 individual exact mass graphs are displayed mz_IndividualMassFitGraphs() * Changed the palcement of graphs and the maximum number of graphs to be displayed (6). mz_butt_BeginMzFitting() * Fitting parameters now initialized to nan once the Begin Fitting button is pressed. * Also checks to see if there are new entries in the exact mass table; adjusts the size of some waves accordingly. * Changed the default ratio threshold value from 50 to 5. mz_MS_Calibration() * Consolidated code with the fitting of one run. Now the exact same code is called whether one or all runs are examined. * Removed findPeakBad variables and print statement. mz_AdjustFitAxis() * Adjusted top heights of graphs so that more fit peaks are viewable. mz_GetOneFitEstimate() * Function for finding the maximum value in an interval now uses a simpler approach, just finding the max, instead of finding peaks. Speeds things up some. mz_FittingParamGraph() * Original (not logged, but assumed) value of 0.5 for the power parameter now plotted. mz_FittingParamTable() * Original (not logged, but assumed) value of 0.5 for the power parameter now added. mz_Slider_RatioAxis() *Values now range from 0 - .5 with .01 increments. mz_butt_FilterBadFitsNow() * Bug fixed which caused some interpolating and repeat-last-non-nan replacements to go bad when there is no v/w switching. mz_FitOneRun() * The main work-horse function which calculates a power fit for several masses is consolidated and now works when the calling function does one or several runs. mz_calcFitOneMassSpec() * Minor change - added a parameter to signal only one run to be calculated. sq_InterpolateWaveSameMode() * Fixed bug for that showed up when not using v/w mode switching. sq_RepeatLastNonNanSameMode() * Fixed bug for that showed up when not using v/w mode switching. New Function: mz_FindPValMax() * For help in finding the max mz value ---------- SQ AMS Panel 1.28.ipf---------- ams_panel_credits() * Included myself in the credits. sq_butt_GetSquirrelIndex() * Added a line regarding paths for future automatic loading. File2SquirrelIndex() * Not sure if this was changed or not by James. sq_butt_CheckMz() * Used FindDimlabel, not sq_findstr to check for the existence of _pp waves. SQ_MS_preprocess() * Not sure if this was changed or not by James -- something to do with filling in blanks? sq_fillblanks() * Bug fixed by James. (?) sq_butt_corrections() * Function now calls SQrecalcDA() if checkbox is checked - the previous version had this step omitted. * Function calls to sq_dutyCycleCorr are now MS - PToF independent. * Used FindDimlabel, not sq_findstr to check for the existence of _pp waves. * Changed the todo wave from all to the current todo for the squirrel fetch sq_abcalc function sq_CheckMzFittingWaves() * Corrected typo in abort statement. sq_butt_recalc_AB() * Cleaned up old comments. sq_abcalc() * Changed the code so that the airbeam wave does not get set to nan before it fills it in. This allows for an airbeam wave to be composed of some sticks that were recalculated and some not. I'm not sure if we want to do this in the long run. SQMSstick() * Corrected code so that the default method for calculating MSSDiff_p is to find the sticks of the difference of raw open - closed, not the difference of open sticks - closed sticks. SQPTOFstick() * Added comments and changed the parameter of important squirrel_hdf_write to write the name correctly. sq_butt_MS_avg() * Used FindDimlabel, not sq_findstr to check for the existence of _pp waves. sq_butt_MS_conc() * Used FindDimlabel, not sq_findstr to check for the existence of _pp waves. sq_butt_TofConc() * Used FindDimlabel, not sq_findstr to check for the existence of _pp waves. New Functions: SQ_DCMarkers() * Separated this function from the rest of the corrections for modularity. sq_dutyCycleCorr() * James consolidated the ones built separately for MS and PToF. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.26 BETA 6 Notes by Donna Sueper 10th April 2006 ----------Begin In a nutshell---------- * This is a major upgrade: new functionality, bug fixes, code cleanup. * Added m/z calibration panel and functionality for recalculating of sticks based on new parameters. * The Do Corrections code functions were changed to be more modular, cleaner. The corrections tab is slightly reorganized. * James added handy functionality for combining todo waves. * There was some discussion regarding the utility of having the non-all todo waves selected for some essential functions, such as the Pre-process and Do Corrections buttons. This version has not made any code change based on these discussions. Users need to be aware that if the all todo wave was not selected for either of these buttons, downstream operations depend on this selected todo wave. * There was some discussion regarding the display of raw spectra on an m/z axis for the MS averaging function . For the time being users should be aware that the averaging of raw spectra is tricky business and should be done with caution. * There was some discussion regarding the order of operations - ( should the recalculating of sticks come before the preprocessing? etc. Discussionis ongoing, the order isn't changed in this version.) * New url and buttons for software support. * To the question "Do I have to run the new software on all my old experiments that have used 1.26 or earlier?" the answer is unfortunately yes. The answer will be yes until (when) we get to the point where we are simply adding new features and not fixing old stuff. ----------End In a nutshell---------- ---------- Squirrel.1.27.ipf ---------- squirrel_hdf_write * James fix..... something about whichlistitem ---------- SQ MS concentration 1.27.ipf---------- no change ---------- SQ mz calibration 1.27.ipf---------- brand new ---------- SQ AMS Panel 1.27.ipf---------- Renamed several global variables, which caused several functions to change. sq_globals * ~ 15 obsolete variables deleted. * ~ 20 globals renamed to a more uniform style. ams_panel * The red 'Advanced Users' section moved to the misc tab. * A new Check m/z buttion on the HDF Index tab. * The Corrections, Sticks/Spectra tab is reorganized. sq_abAutoSet_SetVarProc * Global variable name change. sq_butt_editRunIndex * Changed code to abort instead of print warning to history if no index folder exists. sq_butt_GetSquirrelIndex * Changed code to check for existence of raw hdf path, so that users can create their own functions to automatically define paths. sq_butt_pre_process * Significant reorganization and renaming of global variables. SQ_MS_preprocess * Significant reorganization and renaming of global variables. SQ_PToF_preprocess * Once again, significant reorganization and renaming of global variables. sq_fillblanks * James edited. gen_t_series * Code change to imt_series[0]=(2*t_series[0])-t_series[1] - perhaps done by James. sq_butt_addtoblacklist * Code change to call sq_create_todo() - perhaps done by James or Donna. sq_butt_toDo_graph * Code cleanup. No functionality change. sq_butt_ToDoFromRuns * Code change to call sq_create_todo() - perhaps done by James or Donna. sq_blacklist * Code change to call sq_create_todo() - perhaps done by James or Donna. sq_Csr_setRunIntevals * Fixed bug for when cursors not on wave. sq_pop_dump2memList * Global variable name change. sq_butt_url * url changed to CU site. sq_butt_corrections * Significant reorganization and renaming of global variables, and inserted new code to keep corrections modular. SQMSstick * Major code change - however mathematical formula is the same. SQPTOFstick * Major code change - however mathematical formula is the same. sq_butt_revertstick * Function removed. to revert sticks recalc sticks and do not check use new fitting parameters. sq_butt_MS_avg * Prevents user from averaging when there is mode switching in the todo wave. * The calculation of the raw spectra m/z wave was modified, warning now prints to history. sq_plot_ptof1_av * Todo wave name is appended to newly created wave. sq_graph_addOrRemoveRaw * The raw spectra m/z wave name has been changed. sq_graph_addOrRemoveNeg * Fixed Bug. sq_diambase_check * Global variable name change. 21 brand new functions sq_butt_CheckMz sq_ck_preprocess sq_butt_url_FAQ sq_CheckMzFittingWaves sq_dutyCycleCorr_MS sq_dutyCycleCorr_PToF sq_makeRawMzWave sq_OnlyOneModeInTodo sq_combineMenuTxt - previously called combinetest sq_RepeatLastNonNan sq_RepeatLastNonNanRepeatFirst sq_InterpolateWave sq_FindLast sq_FindFirst sq_todo_AND sq_todo_OR sq_todo_NOT sq_vet_blanks sq_create_todo sq_FindMaxMz Graph Marquee dynamic menus 11 deleted/renamed functions sq_PTOF_mzCalibration sq_MS_mzCalibration sq_butt_mz_cal_graphKill makeExactMassWvs sq_mzCal_graph1 sq_mzCal_graph2 sq_mzCal_graph3 sq_remap_MS sq_remap_PToF sq_butt_mz_cal_revert sq_butt_mz_cal_graph ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.25 BETA 5 Notes by Donna Sueper 20th March 2006 ----------Begin In a nutshell---------- Significant improvements and bug fixes are included in this latest version, 1.26. All igor procedure files have been changed/updated (Squirrel, SQ MS concentration and SQ AMS Panel ipfs). Improvements include: * New & better mz calibration routine * More comments are printed in the history window to help guide users along. * James redid indexing functions so that uncooperative hdf files are handled more gracefully. * Many, many small bug fixes. Unfortunately, this public release version has some known problems: * Some incomplete implementation of code to handle v/w switching (including the calculation of raw averaged mass spectra). * Very large data sets (> 1 week) can have Igor memory space issues. * When both open and closed values are not saved to the hdf files, some calculations are buggy/incorrect. * Some incomplete implementation of the mz fitting routine. Future versions may have this step moved out of the corrections tab to the preprocess area. ----------End in a nutshell---------- For those interested in details, below is a list of changes made to the general template experiment, followed by changes to functions in the ipfs. ---------- Globals, Template Bits ---------- root:Frag:Col_R, root:Frag:Col_G, root:Frag:Col_B , root:Frag:Col_names * Changed the color of the TOF_airbeam wave to be gray at Peter's request. * Added 'neg' to the colour tables. root:InfoText * This wave, which shouldn't change between versions, except perhaps to be appended to, has been added to the template at Peter's request. SQ AMS Panel 1.25, SQ MS concentration, and SQUIRREL ipfs * Changed comments in header to reflect changes Main Procedure file * Inserted comment next to sq_KillMissingProcPics() so users aren't bewildered by this statement. ---------- Squirrel.1.26.ipf ---------- * Various fixes by James squirrel_fetch * Bug fixed that caused incorrect data to be passed for large, multiple data source fetches (e.g. recalculate sticks) ---------- SQ MS concentration ipf ---------- sq_MS_concentration * Changed the name of a wave reference from ioneff_ref to ioneff_wave and modified the code so that root:diagnostics:ioneff_ref is used if it exists (it is created in sq_ms_airbeamCorr()) or use the 'raw' ioneff wave generated by the diagnostics function. ---------- SQ AMS Panel 1.25 ipf ---------- * Removed sq_KillMissingProcPics() after section with constants declaration. Removed functiion sq_butt_makeToDoFromRuns; now replaced with sq_butt_ToDoFromRuns, below. ams_panel * Added a popup menu for ion efficiency, ms and pftof airbeam correction values calcuated during an airbeam correction calculation. * Fixed the todo wave dropdown so that it doesn't change size. * Cor1_mantofab is no longer italicized because it is working. * Inserted new +ToDo and -ToDo buttons, moved existing New and Blacklist to do buttons, changed some button calling procedures. * Added sq_abAutoSet_CheckProc and sq_abAutoSet_SetVarProc functionality. * Grouped panel items together for ease of future modification. File2SquirrelIndex * Added robustness fixes to take account of bad data. Indexes v and w data properly * James made bug fixes. sq_abAutoSet_CheckProc * In the airbeam corrections tab, makes the set variables ioneff, ab, tofab editable or not, depending on whether the auto set checkbox is checked. sq_abAutoSet_SetVarProc * In the airbeam corrections tab, when autoset is not checked, this inserts values in the set variables to the appropriate place in global wave airbeamCorrToFTypeValue. sq_AddCntrl_RunsFromCsrs * Appends a control bar and two buttons for entering run number values via cursors. sq_blacklist * Fixed bug which caused erratic behavior. (Should not remove points in a wave in a for loop when the conditional in for loop relies on number of points in wave.) sq_butt_addtoblacklist * Modified to consolidate code. Now calls new sq_ToDoWaveAddRuns with the blacklist todo wave. sq_butt_corrections * Added a print statement that displays in the history window which checkboxes were used in a Do Corrections button execution. * In [if (corrME) ..endif] section I changed the if conditional statement which checks to see if recalc sticks is to be done to if(recalc_sticks_ck) because variable loc is not assigned before use in if(recalc_sticks_ck && loc>=0) sq_butt_GetSquirrelIndex * Added sq_makeToDoAllVW() to the end of the function. * Added a print statement that displays in the history window the loading results of a specific Get Index button execution. sq_butt_makeToDoFromRuns * Inserted some wave name checking features. sq_butt_MS_avg * Added black bars to the graphs and filtered the displayed waves to remove negatives. * Fixed the calculations of mass on the legend (now consistent with time series). * Inserted code regarding the existence of airbeam correction factor wave if airbeam correction checkbox is checked. sq_butt_MS_conc * Added one line, Sq_AddCntrl_RunsFromCsrs() at the end, to put control panel and buttons on time series graph. * Tweak to ensure compatibility with new sq_butt_pre_process. * Inserted code regarding the existence of airbeam correction factor wave if airbeam correction checkbox is checked. * Changed to check if todo and spec_list waves are >0 length * Completely redid the set up for the dataStrList string for the squirrel fetches. The earlier version used the airbeam checkbox to determine if corrected (_p and not _pp) waves existed, which was wrong. The airbeam correction is applied separately from other corrections. sq_butt_pre_process * Allowed for the filling of gaps. sq_butt_recalc_AB * Commented out all functionality having to do with todo waves. sq_butt_toDo_edit * Renamed the new table windwo "ToDoWavesTable" sq_butt_toDo_graph * Modified significantly to display time series of runs in todo waves; changed name of window to "ToDoGraph" * New data folder in index called plots (root:index:plots:) which will hold the waves to be plotted in the graph,. sq_butt_ToDoFromRuns * New function built from sq_butt_makeToDoFromRuns; generalized this function quite a bit to handle the new +ToDo and -ToDo buttons. sq_butt_TofConc * Added code to allow calculation using ptof_stick_p or PToF_stick_pp. (One doesn't have to do corrections first.) * Tweak to ensure compatibility with new sq_butt_pre_process. sq_Csr_setRunIntevals * Sets global toDo_makeFromRuns_sv for future use of making the runs blacklisted or added/movedcreating a todo wave. sq_CsrOnWave * General function that returns a "0" if the cursors on the top graph are on the same wave and returns a "1" if not. sq_dbase * Changed function declaration from function /t (typo??) to function /s because it returns a string. sq_diambase_check * When user checks tof diameter base "Set Interval " option, makes set variables for this functionality editable. sq_fillblanks * Designed to fill gaps in the data with interpolated values (useful for aircraft mode). SQ_GetParamStr Handles data for MS averages properly. Generates a list of correction factors. sq_graph_addOrRemoveRaw * Corrected the section where I attempt to find the names of the raw waves. This was related to the changes made in sq_butt_MS_avg function SQ_getTODOwaves * Changed things so that all todo wave always appears first, added allV and allW waves if num runs for each >0. SQ_insert_Matrix * Modifications to allow dead data to be identified more correctly. * James made bug fixes. sq_makeToDoAllVW * Inserted to make key waves (1s and 0s corresponding to v and w modes) and a global string flagging mode switching. * Inserted another sanity check (wave exists) at beginning of function. sq_ms_airbeamCorr * Slightly reorganized and consolidated code. * Fixed small bug that occurs if user has v/w switching mode and wants autoset off. * Updatesd the name of the tof airbeam value in the panel. * Now aborts if todo wave is of zero length. sq_MS_mzCalibration * Added support for Chi-squared calculation. SQ_MS_preprocess * Now can generate the todo wave for filling of gaps. Multiple preprocesses not supported any more. Code cleaned up. * Added a print statement that displays in the history window which checkboxes were used in a Pre-process button execution. * Added a checked to see if todo wave is of zero length. * If a mz calibration is done, the checkbox in the corrections - stick recalc stick checkbox is checked. sq_mzCal_graph1 * Fixed a window sizing error. sq_pop_airbeam_mz_set * Deleted some comments; no functionality change. SQ_plot_diag * Added Sq_AddCntrl_RunsFromCsrs() line to bottom of code to append control panel and buttons for todo wave extraction by cursors. * Changed the legend for the airbeam. * Reorganized airbeam plot to be next to the flow rate at the top of the graph. * Added TOF_airbeam wave on Peter's request. sq_plot_ptof1_MS * Added alert so that if "As Saved" was checked user verifies that she/he wants to plot many (>10s?) graphs. * Slightly cleaned up and reorganized code. sq_plot_ptof1_im * Added labels. * Slightly cleaned up and reorganized code. sq_pop_toDoList * Replaced execute statement because sometimes a long string (many todo waves) would cause it to choke. sq_RemoveItemsInListFromList * Generalf function that returns a list with every item in removeList (a parameter) removed. sq_tbase * Changed function declaration from function /t (typo??) to function /s because it returns a string. sq_ToDoWaveAddRuns * Add run numbers in todoWave indicated by toDo_makeFromRuns_sv; doesn't duplicate runs. sq_ToDoWaveRemoveRuns * Removes run numbers in todoWave indicated by toDo_makeFromRuns_sv; doesn't complain if a run number doesn't exist in toDo wave. SqDiagnostics * Fixed small bug with toftype. * Bug fix related to heater bias. * Created a toftype wave to insert the v,w,c tof type numbers. * Added TOF_airbeam wave on Peter's request. SQMSstick * Added support for a different exponent. Generally tidied up the code. ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.24 BETA 5 Notes by Donna Sueper 3rd March 2006 * The previous version template, ToF_AMS_Analysis_v1_24 had some missing global variables. All now exist - a simple call to sq_runme() fixed this. * There was discussion regarding the plotting of raw spectra data in the MS-tab, Average Mass Spectrum graph. I think there was consensus that this should be plotted again iToF and not an average mz axis. No changes were made since version 1.24 to this graph, but this will likely change in a future version. The following changes were made to the SQ AMS Panel ipf: ams_panel() * Fixed some obvious erroneous help messages and typos in the panel * Made checkbox ms0_ck_includeRaw disabled on panel recreation (so it wouldn't show up on panel startup). * In the corrections tab, the "Apply to new" checkbox is now italicized because it is not working yet (never was). sq_KillMissingProcPics() * This function was added to delete pesky but benign missing proc files that are generated whenever an experiment is open with a picture in a displayed panel. * This function has been inserted at the top of the main, built-in procedure window for automatic execution on experiment startup. Not a satisfying fix, but this will do for now. File2SquirrelIndex() * Fixed a 24 offset that appeared in the time conversion formula. sq_ms_airbeamCorr() * Replaced the somewhat confusing line below; there is no functionality change. corr_fact = (sq_findrun(todo,rn_series[p])>=0)? airbeam_ref_MSab_sv / airbeam : nan sq_butt_recalc_AB() * The check for the existence of MSSDiff_p has been commented out because this wave is not needed in the calculation. Donna and the SQUIRREL team ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.21 BETA 4 Notes by Donna Sueper 20th February 2006 From James: "Most of my recent work has been dedicated to bug fixes and tightening up the existing code. These fixes are pretty much entirely based on my recent Mace Head data and Shane's data, both of which are C-TOF." Donna & Ed fixed several bugs in the squirrel panel ipf. In particular: 1) we corrected the problem of not being able to produce a time series without having first done corrections (in sq_ms_airbeam() ) 2) we fixed the ms average code so that raw data is calculated and plotted (in sq_butt_ms_avg() ) There was some discussion with Joel regarding switching between v and w modes and what that means for the analysis code, but no programming was done to accomodate this change. There is a new document detailing programming conventions. Take a look there and at the "To do" document for more info. Donna and the SQUIRREL team ---------------------------------------------------------------------------------------------------- Update since ToF-AMS Analysis Toolkit v1.19 BETA 3 Notes by Jonathan Crosier 19th December 2005 Some improvements this time round....We have attempted to put in the Mass sprectra as a function of particle size, not quite there yet but have a play. The preprocessing now work with a todo list, so you dont have to preprocess all of a dataset if you just wanna look at some section of the data. A button on the "PTOF" tab will generate waves which are suitable for use on qi's software, in that they are mass spectra as a fuction of size and time. In a nut shell, the ptof data can be used to make stick plots. PTOF sticks can be recalculated. Fixed several bugs in the preprocessing and correction stages, as well as in the MS_concs ipf and squirrel ipf. One of these bugs was preventing the intermediate files from being the correct size. We have also made a new look credots panel...... take a looksie. We still have things to do....... -Improve the stick recalculation routine -Incorporate raw data into average Mass spectra plots -Incorporate the result of the m/z calibration check with the stick recalculation -Calculate the m/z calibration parameters for PTOF data -Display negatives on MS plots -Rebin raw data -Calculate errors -Load in run notes from aquisition software. Right, back to forest... Jonny and the SQUIRREL team ---------------------------------------------------------------------------------------------------- ToF-AMS Analysis Toolkit v1.19 BETA 3 Update since ToF-AMS Analysis Toolkit v1.18 BETA 2 Notes by Jonathan Crosier 1st December 2005 Implemented an m/z calibration checking function (written by Ed Dunlea), which seems to work really well. Feedback anyone?? Attributes of each data set are read in, allowing the InfoText and ParText data to be read (stored in the index sub folder). Airbeam now extracted from infoVal, meaning sticks no longer need to be present. Airbeam is recalculated on the corrections tab from sticks. The ion strength has been added to the diagnostic plot, and the number displayed is now in the correct units. Conversion to Hz is still working as before. Added some waves to the frag folder, CEFac_list was missing in the last template. Also, there is now a backup of frag_air, allowing frag_air to be set to == "" (i.e. null string). This allows us to assume no air is present in the particle beam in tof mode. The maxumum file size for intermediate data has been set to 300MB. When you create a todo wave, it is automatically set as the active todo wave. Fixed minor bugs in squirrel which prevented the loading of data from a file which contained only one run. Fixed problems with amstype parameters, from now on always assume it is not Quad data, as not yet compatible. Let us know how it goes.... Jonny and the SQUIRREL team ToF-AMS Analysis Toolkit v1.18 BETA 2 This is the first public release of the AMS analysis toolkit for instruments equipped with time-of-flight mass spectrometers. Notes by James Allan 14 November 2005 Code by James Allan, Jonny Crosier (U. Manchester, UK) and Ed Dunlea (U Colorado at Boulder). Some sections based on previous code by Silke Hings and Frank Drewnick (MPI Mainz, Germany). Additional thanks to Joel Kimmel, Jose Jimenez (U Colorado at Boulder), Doug Worsnop (Aerodyne Research Inc.) and Howard Rodstein (Wavemetrics). SQUIRREL data indexing and retrieval system designed by James Allan Note that this is NOT fully functional yet!! The rule of thumb is that any controls in italics are not working, i.e. there is no code behind them. Anyway, it's a start. This can do some of the basic data processing tasks, but it needs a lot of optimising. Note that it will only operate on HDF5 data - this can be produced by the latest version of the logging software or you can use Joel Kimmel's HDFwriter software to convert between older itx files to HDF5 (this has been tested with version 1.11). To that end, you'll need version 5.04 of Igor enabled with the HDF5 XOP enabled. For information about how to load XOPs, see Igor help. Note that this assumes that you've already familar with the old quad analysis software - a better manual will come later! Rather than loading the data, the approach with the HDF interface is to leave as much as possible on the hard drive of the machine doing the analysis. This negates the need for huge amount of memory and keeps the Igor experiments small. The other main conceptual change is to have a system of 'to-do' lists when performing data analysis tasks. This replaces the old system of specifying run intervals and mask waves and is much more flexible. A lot more scalable performance-wise, too. To process some data, first you need to index it. This is done by pressing the 'Get Index' button on the panel and pointing it to a folder that contains your HDF files. This should fire up a familiar-esque diagnostics graph. Then you hit the 'Pre-Process' button, whose function is to sanitise the data slightly; extra points are insterted and such like. Anyway, this will ask for a folder to put intermediate data in; this should be a somewhere on your hard drive, ideally a subdirectory of where your experiment will be saved (but NOT where your source HDF files are). It will create a load of HDF files in there that will be used for preprocessed and corrected data. From there on in, everything is used with reference to the 'to-do' list at the bottom (look at the todo wave drop-down). 1 todo list is already created, one called 'all', which as you might expect, causes an operation to be performed on all the data at once. However, you can make new todo lists from run intervals, which can be inputted manually to the right. You can also get run intervals from graph marquees, as before. This will be expanded in the future. Note that each todo wave needs a name so it can be identified internally. There is also a special list of runs called the blacklist. This tells the code to ignore certain runs containing bad data, rather than deleting it. Anyway, the corrections come next. You can miss them out if you want, but I wouldn't reccommend it. For starters, I can't think of many situations where you woulnd't want to do the m/z duty cycle correction. The DC marker bit is also highly advised. If you put 0 for all of the settings, it makes them up, which sometimes is adequate. If you put negative numbers in, it uses point numbers in PTOF space rather than µs. The airbeam correction is much the same as the quad. You can set the reference period by using the marquee again. And the rest is all plotting graphs. Most of it should be pretty intuitive. Just remember that everything is controlled by the todo lists, so if you tell it to get an average mass spectrum of 'all', that's what you get. Similarly, if you tell it to do a mass concentration of a fixed interval, that's what you get. Something that is worth mentioning is that you can specify the time or diameter bases that are used and it'll remap automatically. You can do them over a fixed interval or you can specify a custom wave. This will have 1 more point than the number of time or diameter points you want and will effectively be a list of lower and upper bounds for the bins. Note that this doesn't support non-contiguous or overlapping bins. Anyway, have a play. Bear in mind that it isn't finished yet, so will probably have loads of bugs still in it. But we do want feedback!!