LipidXplorer News

From LipidXplorer
Jump to: navigation, search

Contents

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:

  1. peak mean
  2. peak median
  3. peak variance
  4. 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:

  1. sort MS spectrum increasingly.
  2. for every mass m which has a chemical sum composition assigned:
    1. 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 ...
    2. 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>.
    3. subtract calculated isotopic percentage from i1-4

de-isotoping of MS/MS was revisited. The algorithm is the following:

  1. generate artificial PIS spectra P1, ..., Pn for fragments f1, ..., fn by collecting precursor masses which have f1 (f2, ..., fn) in their MS/MS spectrum.
  2. for every PIS spectrum Pi:
    1. for every mass m in Pi:
    2. look, if there is are masses i1, i2, i3 or i4 which could be isotopes
    3. calculate the isotopic distribution of the neutral loss of m according to <insert citation here>
    4. 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:

  1. MFQL query
  2. settings in the Run pane
  3. 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:

  1. Nb. of MS scans...............
  2. Nb. of MS/MS spectra..........
  3. Average base peak intensity...
  4. Average total ion count.......
  5. Absolute intensity threshold..
  6. Spray stability:
  7. 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