turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Discussions
- :
- Peak integration features in JMP

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Jan 26, 2016 6:28 AM
(3447 views)

Hi

Is there any peak detection features for time series in JMP? With tools like peak integration, baseline optimisation, etc. ?

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Depending on the depth and breadth of your specific requirements, JMP has many of the building blocks that you might need. For example, the following code generates some random data and shows how to fit two Gaussians (using 'Analyse > Distribution'). Do 'File > New > New Script', copy and paste the code into the window that appears, then do 'Edit > Run Script'):

NamesDefaultToHere**(****1****)**;

// Make some data with two peaks . . .

n1 = **500**; mu1 = **0**; sig1 = **1**;

n2 = **500**; mu2 = **2**; sig2 = **2**;

peak1 = J**(**n1, **1**, RandomNormal**(**mu1, sig1**))**;

peak2 = J**(**n2, **1**, RandomNormal**(**mu2, sig2**))**;

peaks = VConcat**(**peak1, peak2**)**;

dt = NewTable**(**"Peaks", NewColumn**(**"Y", Numeric, Continuous, Values**(**peaks**)))**;

// Use 'Normal Mixtures' in 'Distribution' to fit

dt << **Distribution****(**Continuous Distribution**(** Column**(** :Y **)**, Fit Distribution**(** Normal Mixtures**(** Clusters**(** **2** **)** **)** **)))**;

But you probably want to fit a mixture of Lorentzians, in which case you will need 'Analyse > Modeling > Nonlinear' (see, for example: https://www.jmp.com/about/events/summit2013/resources/Paper_Susan_Walsh.pdf to get started with this).

However, remember that JMP is 'all purpose' statistical software: If you want the full range of capabilities that more niche software provides for dealing with spectral data, you would have some work to do, and require some knowledge to do it.

6 REPLIES

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Perhaps I have misunderstood, but I associate 'peak integration' and 'baseline optimisation' more with spectral data, than with time series. Can you be a little more specific about what data you have, and what you hope to get from it, please?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

I am looking at traces from thermo analytical methods. By looking at peak integrations, I can infer the reaction progress (alpha). Combining such calculations along the different traces, one can estimate the kinetics parameters of the reactions involved in process.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Depending on the depth and breadth of your specific requirements, JMP has many of the building blocks that you might need. For example, the following code generates some random data and shows how to fit two Gaussians (using 'Analyse > Distribution'). Do 'File > New > New Script', copy and paste the code into the window that appears, then do 'Edit > Run Script'):

NamesDefaultToHere**(****1****)**;

// Make some data with two peaks . . .

n1 = **500**; mu1 = **0**; sig1 = **1**;

n2 = **500**; mu2 = **2**; sig2 = **2**;

peak1 = J**(**n1, **1**, RandomNormal**(**mu1, sig1**))**;

peak2 = J**(**n2, **1**, RandomNormal**(**mu2, sig2**))**;

peaks = VConcat**(**peak1, peak2**)**;

dt = NewTable**(**"Peaks", NewColumn**(**"Y", Numeric, Continuous, Values**(**peaks**)))**;

// Use 'Normal Mixtures' in 'Distribution' to fit

dt << **Distribution****(**Continuous Distribution**(** Column**(** :Y **)**, Fit Distribution**(** Normal Mixtures**(** Clusters**(** **2** **)** **)** **)))**;

But you probably want to fit a mixture of Lorentzians, in which case you will need 'Analyse > Modeling > Nonlinear' (see, for example: https://www.jmp.com/about/events/summit2013/resources/Paper_Susan_Walsh.pdf to get started with this).

However, remember that JMP is 'all purpose' statistical software: If you want the full range of capabilities that more niche software provides for dealing with spectral data, you would have some work to do, and require some knowledge to do it.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Hi Ian,

Thank you for the kind suggestions. I would not have thought that numerically integrating a plot (which requires some baseline modelling) or calculating some local optima would be niche but maybe it does not fit the initial intent of JMP. I agree that these functions can be scripted - integration is 'just' a sum of lozenges - but if I could avoid reinventing the wheel...

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

In making my comments about 'niche software', I had in mind something like http://www.sigmaplot.co.uk/products/peakfit/peakfit.php.

As I also said, though, how JMP stacks up against your requirements ultimately depends on the depth and breadth of the latter (and also who else in your workgroup, if anyone, needs to do what you want to do). I have some code to do simple peak areas if you want to mail me at an.cox@jmp.com. If what you want is simple, I would be happy to make an add-in for the file exchange (but I can't promise to do that right away).

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Ah you’re right, I was not thinking something as thorough as PeakFit. I am definitely interested in the add-in you mentioned. I’ll email you about it.