<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hi all,
Thanks a lot for this great discussion and hints, that is very helpful. As my customer’s now on vacation I have to wait to discuss this further hopefully mid of next week. But I will let you know about the outcome.
Thanks again,
Martin
From: Bernd Heinen
Sent: Freitag, 11. April 2014 17:38
To: Chris Kirchberg; Bill Worley; Louis Valente; Daniel Valente; Martin Demel; SE
Subject: RE: Peak Alignment and Pattern Recognition
Hello,
this is really a fun dialogue, I learned a lot! But as I’m a simple guy with no chemical understanding, for me that looks like an outlier detection problem. We have no out-of-the-box solution in JMP but it is easy to script. I would
1. identify outliers
2. name them sequentially
3. put all outliers with their names, values times and sample ID into one data table
4. test if the times per name are within a x% confidence limit
As an alternative one could just take the peaks as identified from the instruments, rename them sequentially and run a pattern comparison (of the names) and/or apply steps 3 and 4 from above.
Looking forward to our chemists comments.
Best regards
Bernd
From: Chris Kirchberg
Sent: Freitag, 11. April 2014 17:29
To: Bill Worley; Louis Valente; Daniel Valente; Martin Demel; SE
Subject: RE: Peak Alignment and Pattern Recognition
Who said chemistry wasn’t fun. I have not seen so much talk about HPLC/GC, data, and peaks for years. It warms my chemical heart
Chris Kirchberg
JMP Technical Enablement Engineer
Worldwide Technical Enablement Team
From: Bill Worley
Sent: Friday, April 11, 2014 09:14
To: Louis Valente; Daniel Valente; Martin Demel; SE
Subject: RE: Peak Alignment and Pattern Recognition
Martin,
Being that chemistry is in my blood and that we chemists need to stick together I am going to weigh in on Lou’s comments. My experience with the chromatograms you show is the same as Lou’s and agree with Lou that the instrument software should be very capable in helping determine the peaks of interest. JMP could be used to compare the chromatograms and expose the differences between runs or batches of material by listing each run in an column.
Some of the differences may be worth the analyst’s time to further identify or they may be artifacts or ghost peaks left over from a previous analysis if the columns are not washed out well as in HPLC or “baked” out for GC analysis. Some of those types of peaks are so small that they are not worth effort. If you look at Pr 16 vs. Pr 17 you see an initial peak at about 8 minutes in Pr 16that you do not see Pr 17. That peak is so small that it probably is not worth the effort to chase it down. The 3 peaks after that around 9 minutes are reproducible from run to run and could be worth the time. They are either byproducts of a reaction or contaminants in the material being analyzed.
Based on the identification shown for the larger peaks these are some pretty big compounds and there are bound to be lots small “bits” floating around in the mix that may or may not mean anything in the final analysis. Sorry for the analytical chemistry lesson, but hopefully it helps.
Regards,
Bill
From: Louis Valente
Sent: Friday, April 11, 2014 9:59 AM
To: Daniel Valente; Martin Demel; SE
Subject: Re: Peak Alignment and Pattern Recognition
Martin,
In my experience these HPLC or GLC chromatograms with retention time peak identification are analyzed online with the analytical chemistry software provided on the detectors of the instrument. All identifications are done at the detector and if there is drift in the retention time due to variation in the analytical method the peak is usually identified via spiking experiments and/or Mass spectrophotometry on the peak vein eluted. Although it seems plausible to be able to use JMP for this type of analysis it is not the norm since the instrument providers like Hitachi, Perkin-Elmer, Shizmadu etc usually sell a very expensive instrument with software bundled to do such a thing in an automated fashion.
Regards,
Lou
Louis Valente
Sr. Manager, Technical Enablement ▪ JMP Division
Tel: +1 (919) 531-3378
louis.valente@jmp.com
JMP: Statistical DiscoveryTM. From SAS.
www.jmp.com
From: Daniel Valente
Date: Friday, April 11, 2014 at 9:50 AM
To: Martin Demel , "jmpse@wnt.sas.com"
Subject: Re: Peak Alignment and Pattern Recognition
Hi Martin —
Coming at this as how I would approach it if it were an acoustic impulse response. The IACF (inter aural crosscorrelation function) parameter looks at the pattern of reflections arriving at the left and right ears measured using a binaural IR technique. It then takes a cross correlation from the direct sound to first 80ms past the direct sound (normally) and looks for how similar the peaks (reflections) are at both ears. This then becomes a measure of the spaciousness in the room (by taking the max of the IACC from –1 to 1 ms. The data collected that is analyzed in this way looks very similar to what you’ve presented here.
Is the data being acquired at the same sample rate for each measurement. It looks like their sample is pretty sparse re: time, it would be nice to get at the raw data and see the response at every ms or something. If you could do that, you could use a cross correlation in the Time Series platform to determine the sample lag between sample 1 and 2, and then add some latency to the leading sample to align the peaks.
This may not be what they are wanting, but it is the first technique that came to mind through my signal process/acoustics lens.
Math for those who care:
The interaural crosscorrelation function is defined as
(11)
where hL(t) and hR(t) are the left and right ear impulse responses respectively. The interaural crosscorrelation coefficient is taken as:
(12)
Dan
From: Martin Demel
Date: Friday, April 11, 2014 at 5:16 AM
To: "[JMP] SE"
Subject: Peak Alignment and Pattern Recognition
Hi,
A customer in the food and taste sector (sensory analysis team) asked about peak alignment/pattern recognition functionality in JMP. Do we have this capability and if so, is there an example available.
To be more concrete:
The data set looks like this:
KA 142 005 Pr16
No.
Ret.Time
Ret.Index
Area
Type
Rel.Area
Amount
Peak Name
min
pA*min
%
ppm
1
8,620
1657,2
0,026
BMB
0,012
264,60
2
9,220
1706,1
0,031
BMB
0,014
318,50
3
9,368
1717,3
0,065
BMB
0,029
659,78
4
9,850
1752,5
0,041
BMB
0,019
418,87
5
11,317
1852,8
36,548
BMB
16,559
373.816,84
A
6
12,090
1902,0
0,540
BMB
0,245
5.520,64
7
12,413
1920,5
0,011
BMB
0,005
113,79
8
12,927
1948,2
0,744
BMB
0,337
7.611,68
9
13,488
1976,9
0,056
BMB
0,025
572,75
10
14,230
2013,9
0,542
BMB
0,245
5.540,39
11
14,898
2047,2
14,705
BMB
6,663
150.406,13
B
12
15,600
2081,0
0,025
BMB
0,011
256,14
13
16,148
2106,1
55,467
BM
25,132
567.331,13
B_2
14
16,733
2131,0
0,108
M
0,049
1.105,31
15
17,105
2146,3
6,406
MB
2,902
65.520,93
C_1
16
17,918
2178,2
0,029
BMB
0,013
300,34
And a second set like that:
KA 142 005 Pr17
No.
Ret.Time
Ret.Index
Area
Type
Rel.Area
Amount
Peak Name
min
pA*min
%
ppm
1
9,227
1706,6
0,028
BMB
0,019
414,92
n.a.
2
9,355
1716,3
0,021
BMB
0,014
314,55
n.a.
3
9,848
1752,4
0,039
BMB
0,026
571,50
n.a.
4
11,305
1852,0
30,725
BMB
20,081
449.519,59
A
5
12,087
1901,8
0,435
BMB
0,284
6.365,73
6
12,925
1948,1
0,680
BMB
0,444
9.944,70
7
13,442
1974,6
0,025
BMB
0,016
360,13
8
14,227
2013,7
0,367
BMB
0,240
5.374,04
9
14,857
2045,2
5,287
BMB
3,456
77.358,63
B
10
16,113
2104,5
43,257
BM
28,271
632.875,80
B_2
11
16,712
2130,1
0,028
M
0,018
407,61
12
17,093
2145,8
5,491
MB
3,589
80.334,69
C_1
13
17,922
2178,4
0,013
BMB
0,009
196,67
14
18,590
2203,5
0,031
BM
0,020
450,20
15
18,837
2212,7
8,131
M
5,314
118.967,53
C_2
16
19,332
2230,9
0,022
M
0,014
323,37
You can see on the right column there are sometimes characters and sometimes not. E.g. taking a look at “A”, you see the time is about the same, you know it’s related to the same “Peak name”. But there are many others they do not know. The goal is to get the other peak names aligned throughout multiple of those data sets more or less automatically.
Below you see some shapes of those signals with peak names.
So, they need to first find the peaks, then compare it with the second signal and see if the peak are aligned. The difficulty in addition is that the number of time observations is not always the same. Or in other words, the peaks are shifted within a small unknown range.
I know that one could solve such comparison by signal processing functionalities, like e.g. first noise reduction with wavelet transformations, sometimes baseline corrections and spectra normalization, then using a point matching or other alignment method. But I do not know if this is something we could do in JMP. Looking at the documentation and quick searching through the books was not very successful. The same using internet search related to “JMP”. I just found some thoughts about using Clustering to find common peaks and using centers of those peaks further. But this might have issues in case the shift in one peak is in a range of an outlier. I’m also not sure if a distance matrix would be of help, and as I didn’t use that approach before I have no clue to go further.
So, if you know that this is possible(or even not), has been done by a customer before, or have an example, I’m pleased to serve you with a beer next time we see us J
Thanks,
Martin
PS: in case you have an idea but need data, let me know (I have some from the customer).
Martin Demel
JMP Systems Engineer ▪ JMP Sales ▪ Germany, Austria, Switzerland
Tel: + 49 89 15929 315 ▪ Fax: + 49 6221 415 44 6115
Mobile: + 49 172 6340 872 ▪ Martin.Demel@jmp.com▪ www.jmp.com/de
Adresse: Nördliche Auffahrtsallee 22 ▪ 80638 München
JMP - Statistical Discovery from SAS