LipidXplorer News
2008-07-16 NOT statement for IDENTIFY
The 'NOT' statement is now usable in the IDENTIFY section. This allows doing negative queries. For example:
DEFINE PR = 'C[20..100] H[30..200] N[1] O[8] P[1]' WITH DBR = (0,16), CHG = 1; DEFINE pcHead = 'C5 H15 O4 P1 N1' WITH CHG = 1; IDENTIFY phosphatedylcholine WHERE PR IN MS1+ AND NOT pcHead IN MS2+ WITH TOLERANCE = 50ppm
to check if 'PR' ignored some PC lipids.
2008-07-16 column() function for SUCHTHAT
A new function for the SUCHTHAT section: 'column(<regular Expression>, <variable>)'. The given regular expression returns only the matching sample names of the variable given. This is for a selective query.
2008-07-20 +/- added to error attribute
errors (errppm and errda) are now with the direction of the shift, i.e. with the algebraic sign. The error is calculated as: <theoretical mass> - <measured mass>.
2008-08-07 new function 'isStandard()' and new function for sample grouping
- new function isStandard(<variable>, "<sample>", "<scope>"). Place it in SUCHTHAT section. A scan is started to find <variable> in <sample>. Once found it is declared as the standard and the intensities of all other peaks in <scope> are recalculated as ratio. Example:
isStandard(varStandard, "hilde01", "MS1+")
- new function for addressing groups of samples with the help of place holders:
Patterns are Unix shell style:
* matches everything ? matches any single character [seq] matches any character in seq [!seq] matches any char not in seq
Example:
FA1.intensity["*hilde0[1-9]*"] > FA1.intensity["*hilde1[0-9]*"]
also possible:
column(FA1, "*hilde0[1-9]*")
2008-08-13 syntax change for 'isStandard()'
semi-new function: isStandard(<variable>, "<scope>"). With this syntax the standard is calculated for every single sample.
2008-08-14 more peak information
every peak (either MS or MS/MS) has now additionally the following information:
- peak mean
- peak median
- peak variance
- peak standard deviation
all this info will be output in the dump of the MasterScan
2008-08-22 bugfix for 'isStandard()'
isStandard() function works now for MS1+/- (! no MS2+/- !). The function should be placed in the SUCHTHAT section and has as attributes 1) a variable containing the marked standard and 2) the scope of the standard (MS1+, MS1-, MS2+ or MS2-). Next an example of an MFQL script identifying PC with calculating the standard:
QUERYNAME = Phosphatidylcholine; DEFINE PR = 'C[36..50] H[30..200] N[1] O[8] P[1]' WITH DBR = (1.5,7.5), CHG = 1; DEFINE DietherPC = 'C44 H93 O6 N1 P1' WITH CHG = 1; DEFINE DietherPE = 'C45 H95 O6 N1 P1' WITH CHG = 1; IDENTIFY Phosphatidylcholine WHERE # marking PR IN MS1+ WITH TOLERANCE = 4 ppm OR DietherPC IN MS1+ SUCHTHAT isEven(PR.chemsc[C]) AND isStandard(DietherPC, "MS1+") REPORT MASS = "%4.4f" % "(PR.mass)"; NAME = "PC [%d:%d]" % "((PR.chemsc)[C] - 8, (PR.chemsc)[db] - 1.5)"; PRECURINTENS = PR.intensity;;
2008-09-02 implementation/bugfix for the de-isotopic algorithm
de-isotoping was implemented for MS mode. The algorithm uses the sum compositions which where calculated with the used MFQL scripts. So, only molecular species of interest are considered for the de-isotoping. The algorithm is the following:
- sort MS spectrum increasingly.
- for every mass m which has a chemical sum composition assigned:
- look, if there is are masses i1, i2, i3 or i4 which could be isotopes, i.e. is there a mass i1 = m + 1.0033, is there a mass i2 = m + 2 * (1.0033), and so on ...
- calculate the isotopic distribution of m for only 13C. Isotopes of other elements are so little for lipids, that we leave them beside. The distribution is binomial with a probability that a 13C occurs of 0.01082 <insert citation here>.
- subtract calculated isotopic percentage from i1-4
de-isotoping of MS/MS was revisited. The algorithm is the following:
- generate artificial PIS spectra P1, ..., Pn for fragments f1, ..., fn by collecting precursor masses which have f1 (f2, ..., fn) in their MS/MS spectrum.
- for every PIS spectrum Pi:
- for every mass m in Pi:
- look, if there is are masses i1, i2, i3 or i4 which could be isotopes
- calculate the isotopic distribution of the neutral loss of m according to <insert citation here>
- subtract the calculated isotopic percentage from i1-4
2008-10-01 GUI enhancement with a debugging window
implemented a debugging window in the GUI.
GUI looks a bit more compact now
update of the merging algorithm (for *.mzXML import). Average masses are now calculated by intensity weighted average. This yields more accurate spectra.
2008-10-09 no 'cleaning' procedure for *.mzXML files any more
switched off the cleaning procedure for *.mzXML imported files
if more than one sum composition is found for a precursor mass, it will be reported ordered by identification error.
Bug with *.mzXML file, where only MS/MS spectra are given is fixed.
2008-10-23 new feature: generate a complement MasterScan
new Function: complementMasterScan. Switch it on with a checkbox on the Run-Panel. It will produce the "complement MasterScan" of the current query, i.e. a MasterScan with all peaks which where not identified in the current run. It will be saved as <original MasterScan name>-complement.sc.
the purpose is do blind queries for unknown or not expected sum compositions.
2008-11-18 new features for the DEFINE section
new Function: DEFINE allows now to define a list of same variables with different names in one line. The user just writes a list:
old:
DEFINE FA1 = 'C[14..22] H[20..60] O[2] N[1]' WITH DBR = (0.0,6.0), CHG = 0; DEFINE FA2 = 'C[14..22] H[20..60] O[2] N[1]' WITH DBR = (0.0,6.0), CHG = 0; DEFINE FA3 = 'C[14..22] H[20..60] O[2] N[1]' WITH DBR = (0.0,6.0), CHG = 0;
new:
DEFINE (FA1, FA2, FA3) = 'C[14..22] H[20..60] O[2] N[1]' WITH DBR = (0.0,6.0), CHG = 0;
new Function: DEFINE allow the definition of a list of fragments. For example:
DEFINE FA = ('C14 H27 O2 N1', 'C14 H29 O2 N1', 'C14 H31 O2 N1', 'C15 H21 O2 N1', 'C15 H31 O2 N1');
2009-07-29 enhanced GUI concerning syntax errors on MFQL queries
A new technique for more control over the debug output of LipidX was implemented. This offers a lot of possibilities to enhance the error handling for the user and for me, the developer. For example: if a SYNTAX ERROR occurs it will be shown more clearly and it will point the user more accurate to it. If LipidX crashes, the debug output can be easily selected and copied to the mail you send to the developer, if you want to report the crash. This function will be improved in the future to make it more even convenient for the user and the developer and also new functions will be added.
2009-12-13 First release version of LipidXplorer is ready
LipidXplorer reached its first release version 1.0.
2010-06-25 Bugfix for isotopic correction
Bug: the isotopic corrected peak were not dismissed correctly (according to the threshold and min occupation settings).
2010-07-25 Bugfix for import of acquisitions in different ionization modes / polarities
Spectra from *.mzXML files from positive and negative ionization mode can be simultaneous be imported. Note: one *.mzXML file can only have one polarity. But if other *.mzXML files have a different polarity it now possible to import them into the same MasterScan.
2010-07-30 Bugfix: MS/MS scan counts
The number of averaged MS/MS scans is now stored properly. This value is used for a correct calculation of the MS/MS threshold.
2010-08-03 tolerance and min occupation settings in the Run pane
MS and MS/MS tolerance values can now be set in the Run pane. This allows to set those two attributes for all queries at once. This will override the settings given in the MasterScan or respectively the Import pane but not the settings in the MFQL queries.
This gives the following list of priority:
- MFQL query
- settings in the Run pane
- settings in the MasterScan or respectively the Import pane
Thus, queries can be written which should encompass certain constrains concerning the tolerance or minimum occupation. This is especially important for very small masses (or neutral losses, respectively) were the same tolerance value given in ppm for a mass m/z ~700 is very different to a mass m/z ~60.
2010-08-08 Change: settings are now called configuration
This makes more sense.
2010-08-08 Bugfix: saving of the configurations file
This did not work properly.
2010-08-18 Bugfix: solving the memory issue
There was a huge memory/speed problem, when having a lot fragment marks from the MFQL files. This should be fixed now.
2010-08-27 Brand new GUI
Check it out! LipidX has a new graphical user interface. Now the annoying resizing of the window has an end!
2010-09-01 Bugfix: isotopic correction issue
The isotopic correction was wrongly throwing out lipids. It used a deprecated critaria. This is fixed now.
2010-09-09 'Help' Menu added
A new menu was added to LipidX which offers help texts to different topics. Clicking on one entry will open the webrowser with the LipidX wiki. It will choose the wiki section with the selected topic.
2010-09-10 new functions added for SUCHTHAT
From now on all Python built-in functions plus all functions from the math module can be used in the SUCHTHAT for calculations. This includes functions like sqrt(), abs() and so on.
2010-10-11 new tool released: LXMerge
A new tool for alignment and merging of LipidXplorer results is released.
2010-10-11 improved flexibility of sum composition constraint input
It is now possible to use enumeration additionally to ranges in the definition of sum composition constraint. Thus it is possible to write: 'C[14,16,18] H[40..80] ... ' to consider only 14, 16 and 18 Carbon atoms.
2011-01-5 new function: group samples to consider groups of replica
A disadvantage of the occupation threshold was that it covered always all samples. But having several phenotypes gives as technical or biological replicas, it is reasonable to have an occupation threshold for each phenotype. Otherwise one probably looses information.
With the new grouping function LipidXplorer considers this now.
In the Import Settings panel there is the setting min occupation. In the text field the occupation threshold value is inserted. With a click on Group samples LipidXplorer opens a window with which you can choose which samples belong together. When this is done, click on OK and the newly formed groups will be stored in a text file (groups.txt) under the folder given as import source. This text file is read by LipidXplorer while importing the spectra.
The occupation threshold will now hold for each group and a lipid is accepted if the there is at least one group where the occupation threshold fits.
2011-01-21 Syntax Highlighting
The MFQL editor of LipidXplorer has now colored code. This simplifies the editing of queries.
2011-03-10 additional information while importing spectra
While importing spectra the information window will show some data concerning the imported spectra:
- Nb. of MS scans...............
- Nb. of MS/MS spectra..........
- Average base peak intensity...
- Average total ion count.......
- Absolute intensity threshold..
- Spray stability:
- MaxTIC - MinTIC:............ x% of median
The spray stability is the ratio of the median and the difference of the maximum and minimum TIC.
2011-04-8 type I isotopic correction added
The type I correction (see Han, X.; Gross, R.W. 2005, MassSpectrometryReview) corrects the monoisotopic peak by summing up the isotopic cluster. This has an effect of up to 10% on the peak intensity.
2011-04-8 upgrade of MS/MS isotopic correction
The upgrade speeds up the MS/MS isotopic correction (type II) about a manifold.
2011-07-7 relative intensity
LipidXplorer now supports the input of a relative intensity. The relative intensity is the percentage of the base peak when averaging the individual scans in the import. For the averaging, LipidXplorer takes the average base peak intensity. Once aligned, the relative intensity orients at the maximum base peak intensity of all imported samples.
2011-07-22 LipidXplorer Version 1.2 released
The new version of LipidXplorer can be downloaded at [LipidXplorer on Sourceforge].
It includes all new features from 2010-10-11.
2011-08-05 LipidXplorer Version 1.2.1 released
The recent version of LipidXplorer can be downloaded at [LipidXplorer on Sourceforge]. There can be found also an update in form of a *.zip file.
Important bugfixes were done on the MFQL language and the MS/MS averaging algorithm. Now both work better! Please update!
2011-07-22 LipidXplorer Version 1.2 released
The new version of LipidXplorer can be downloaded at [LipidXplorer on Sourceforge].
It includes all new features from 2010-10-11.
2011-08-05 LipidXplorer Version 1.2.1 released
The recent version of LipidXplorer can be downloaded at LipidXplorer on Sourceforge. There can be found also an update in form of a *.zip file.
Important bugfixes were done on the MFQL language and the MS/MS averaging algorithm. Now both work better! Please update!
2012-01-13 Bug found in LipidXplorer Version 1.2.2
Attention: A bug occurred in the file lpdxGUI.pyw when spectra are converted with the option "mc.wiff". The "Thinking..." dialog won't disappear and the Debug window contains an error message with the last line saying: "NameError: global name 'rawOut' is not defined". Please use msconvert manually for conversion of *.wiff files to *.mzXML. In the next version of LipidXplorer this bug will be fixed.
2012-01-17 New LipidXplorer paper published
We are happy to announce the recent publication about LipidXplorers newly implemented support for precursor ion / neutral loss scanned (PIS/NLS) spectra on triple quad mass spectrometers. Now it supports the whole range of major mass spectra technologies which is used in shotgun lipidomics. Here is a link to the article: LipidXplorer: A Software for Consensual Cross-Platform Lipidomics