Identification of isomer via Retentiontime in zzzMainIDmacro

18 views
Skip to first unread message

Michael Heiser

unread,
Sep 25, 2015, 5:38:58 AM9/25/15
to Ideom
First of all thank you for this nice tool! During my analysis I have come acrosse some oddities in the VBA code that I would like to address:

This bit from the zzzMainIDmacro where the Putative metabolite is selected via its cRT or sRT from the database: (starting line 1110)

If IsEmpty(mrfinrange.Cells(k, 5)) Then
                    foundrt = dbrange.Cells(formmatch, 3).Offset(r, 3)
                    foundst = dbrange.Cells(formmatch, 3).Offset(r, 2)
                    foundname = dbrange.Cells(formmatch, 3).Offset(r, 1)
                    foundform = dbrange.Cells(formmatch, 3).Offset(r, 0)            ' required for low res data
                    
                    On Error Resume Next

If Not (foundst = "" Or foundst = 0) Then
                         
If Abs(100 * (mrfinrange.Cells(k, 2) - foundst) / foundst) <= eRTW Then
                            mrfinrange
.Cells(k, 5) = foundname
                            mrfinrange
.Cells(k, 3) = foundform
                         
End If
                       
ElseIf Abs(100 * (mrfinrange.Cells(k, 2) - foundrt) / mrfinrange.Cells(k, 2)) <= RTw Then            ' Note: if no RT to search on it will keep the ID'
                            mrfinrange
.Cells(k, 5) = foundname
                            mrfinrange
.Cells(k, 3) = foundform
                       
End If
On Error GoTo 0
End If

Surrounding this logic is a loop for each isomer in the DB sheet of the detected mass that only executes while no putative metabolite has been deteced. In my analysis two possible isomers were found for a mass. The first metabolite didn't have a foundst or foundrt and the second one didn't have a foundst, but a foundrt of ~0.7 min. So with the logic above, if RTw is 100%, the first metabolite would be selected, even though it has no cRT or sRT value and the loop "ends". So would it make sense to check for 
 
Not (foundrt = "" Or foundrt = 0)

as well to prevent this from happening or is this a wanted behavior?

Darren Creek

unread,
Sep 27, 2015, 12:53:06 AM9/27/15
to Michael Heiser, Ideom

Hi Michael,
Thanks for the detailed description of your question.
Actually this is an intended behaviour.
IDEOM will work down the list of isomers in the order that they appear on the db sheet, and the rt is used to filter out incorrect assignments, but is not necessary to make an assignment.
This approach allows the user to define the 'most likely' metabolite from each series of isomers without needing to have standards or an rt prediction model for every metabolite.
In most cases the default db order gives the most sensible annotation, especially of you select the preferred species database (note that you can add more preferred database annotations to columns to the right of the db sheet of required). Alternatively, you can manually change the order of entries in the db sheet prior to running step 3 if desired.

I hope this makes sense.

Cheers,
Darren

--
You received this message because you are subscribed to the Google Groups "Ideom" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ideom+un...@googlegroups.com.
To post to this group, send email to id...@googlegroups.com.
Visit this group at http://groups.google.com/group/ideom.
For more options, visit https://groups.google.com/d/optout.

Michael Heiser

unread,
Oct 8, 2015, 7:13:47 AM10/8/15
to Ideom, mhei...@gmail.com
Hi Darren,

thanks for your description, that does make sense. 
I have another quick question regarding the intensities generated by mzmatch: are those peak areas or intensities (heights) of peaks? AFAIK xcms returns peak areas, so that would make them areas, right?

Regards,

Michael

Andris Jankevics

unread,
Oct 8, 2015, 7:22:47 AM10/8/15
to Michael Heiser, Ideom
Hi Michael, by default intensities (height at the maximums) is returned.

Best Regards,
Andris

Michael Heiser

unread,
Oct 8, 2015, 7:34:11 AM10/8/15
to Ideom, mhei...@gmail.com
Hi Andris,

I see.. thanks for the quick response. Is there a way to change this behavior in mzmatch?

Best Regards,

Michael 

Andris Jankevics

unread,
Oct 8, 2015, 7:47:33 AM10/8/15
to Michael Heiser, Ideom
No, not directly as the input to Ideom. 

But you can export area (sum of intensities per peak set) using mzmatch tools:

You have to create PeakMLdata obejet with PeakML.Read: http://mzmatch.sourceforge.net/mzmatch.R/PeakML.Read.html

And this can be used to generate  table. Just "sumintensity" parameter should be set to "True". : http://mzmatch.sourceforge.net/mzmatch.R/PeakML.Methods.getCompleteTable.html

Maybe "Advanced Processing" section from tutorial (http://mzmatch.sourceforge.net/tutorial.mzmatch.r.advanced.php) can be helpful.

Best Regards,
Andris

Darren Creek

unread,
Oct 8, 2015, 6:51:22 PM10/8/15
to Michael Heiser, Ideom

The default xcms parameters in the IDEOM are set to peak height.
You can easily change this to area by manually running the xcms command and changing this as desired, but in my experience height works better for untargeted analyses because you don't get the issue of integration errors.

I always recommend double checking the areas for any significant metabolites, but do this in the standard vendor software where you can manually curate the peak integration.

Cheers,
Darren

Reply all
Reply to author
Forward
0 new messages