내 동료 Jeremy Ash( @JeremyAshJMP ) 그리고 저는 분광 데이터 분석이 기껏해야 분석을 어렵고 지저분하게 만들 수 있는 많은 뉘앙스와 잠재적 함정이 있다는 것을 알고 있습니다. 그래서 JMP 소프트웨어로 분광 데이터를 가져오고, 시각화하고, 정리하고, 분석하는 방법을 설명하는 이 블로그 시리즈를 작성하고 싶었습니다.
자신의 데이터에 대해 이러한 단계 중 일부를 더 쉽게 시도할 수 있도록 다음을 만들었습니다. 스펙트럼 도구 추가 기능 에 대해 자세히 알아보고 여기 JMP 커뮤니티에서 다운로드할 수 있습니다. 이것은 이 블로그 게시물에서 논의된 데이터 가져오기 및 시각화 방법 중 일부를 간소화하는 간단한 추가 기능입니다. 그것은 프로토타입일 뿐이며 스펙트럼 데이터에 대한 몇 가지 편리한 기능을 제공하기 위한 첫 번째 단계일 뿐입니다. 이 블로그 게시물의 댓글 또는 추가 기능 페이지에서 피드백을 제공할 수 있습니다.
이 게시물에서는 Martens 등의 근적외선 데이터 세트를 분석하고 있습니다. " 확장된 곱셈 신호 보정으로 분리된 광산란 및 흡광도. 분말 혼합물의 근적외선 투과 분석에 적용 " 분석 화학 2003년 2월 1일;75(3):394-404. 전처리가 어떻게 데이터의 전반적인 품질을 향상시키고 이 경우 구성 요소의 비율을 기반으로 한 그룹화를 훨씬 더 명확하게 볼 수 있는지 보여줍니다.
스펙트럼 가져오기
스펙트럼을 가져올 때 Spectral Tools 추가 기능은 각 스펙트럼이 단일 디렉토리의 별도 파일에 있다고 가정합니다. 스펙트럼은 구분된 텍스트 파일(예: .csv 또는 .tsv) 또는 JCAMP-DX 파일에 있을 수 있습니다. 압축하지 않은 JCAMP-DX만 지원됩니다. 누적 형식은 Spectra Tools의 기본 데이터 테이블 형식입니다. 와이드 형식으로 파일을 가져올 수도 있습니다. 이 블로그 게시물에서는 스택 형식을 가장 자주 사용하지만 일부 사전 처리 단계에는 와이드 형식이 필요합니다. JMP의 표 메뉴에 있는 스택 및 분할 명령을 사용하여 스택 형식과 와이드 형식 간에 변환할 수 있습니다.
데이터 시각화
새로운 데이터와 마찬가지로 선택한 분석 소프트웨어에 데이터를 가져오면 데이터 상태를 시각화하고 사전 처리가 완료된 후 이 첫 번째 모양과 정기적으로 비교할 것을 적극 권장합니다. ~ 안에 JMP , 그래프 빌더 플랫폼을 사용하여 시각화를 돕습니다.
그림 1은 Graph Builder에서 스펙트럼의 선 플롯을 보여줍니다. 누적 형식의 데이터를 사용하여 X 및 Y 변수를 해당 축으로 드래그하고 스펙트럼 ID를 오버레이 변수로 사용합니다. 또는 Spectra Tools에서 Launch Graph Builder 명령을 사용할 수 있습니다. 색상 변수의 경우 글루텐 함량인 관심 있는 반응 변수를 사용합니다.
Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.그림 1. 글루텐 함량에 따라 색상이 지정된 스펙트럼이 있는 그래프 빌더의 스펙트럼 선 플롯.
관심 영역(ROI)을 확대하려면 X축을 클릭하고 드래그합니다. 몇 가지 다른 유용한 컨트롤을 위해 빨간색 삼각형 메뉴에서 로컬 데이터 필터를 만들 수 있습니다. 이것은 Spectral Tools에서 기본적으로 제공됩니다. 이들은 그림 1의 왼쪽에 표시되어 있습니다. 파장 로컬 데이터 필터를 사용하여 관심 영역(ROI)에 초점을 맞출 수 있습니다. ROI 데이터에 대한 새 데이터 테이블을 만들려면 로컬 데이터 필터 빨간색 삼각형으로 이동하여 하위 집합 표시를 선택합니다. 또한 그래프에 스펙트럼의 하위 집합만 표시하려면 스펙트럼 ID 로컬 데이터 필터에서 스펙트럼을 선택합니다. 애니메이션 컨트롤을 사용하여 한 번에 하나의 스펙트럼을 순환할 수도 있습니다.
여러 ROI와 같은 더 복잡한 선택의 경우 스펙트럼을 포인트로 표시하고 관심 포인트를 선택할 수 있습니다. Table 메뉴의 Subset 명령을 사용하여 ROI 데이터만으로 데이터 테이블을 만들 수 있습니다.
Graph Builder에 대해 기억해야 할 한 가지 중요한 사항은 원하는 방식으로 그래프 설정을 마치면 스크립트를 데이터 테이블에 저장할 수 있으므로 동일한 플롯을 새 데이터로 쉽게 다시 만들 수 있다는 것입니다. 예를 들어 전처리 전과 후의 스펙트럼을 비교할 때 그래프를 다시 만들고 싶을 수 있습니다. 전처리 전후의 스펙트럼을 비교하는 또 다른 옵션은 Spectral Tools에서 Launch Graph Builder 명령을 사용하는 것입니다.
또한, 새로운 JMP 16 Graph Builder에서 SG(Savitzky-Golay) 스무딩을 초기 전처리 단계로 적용할 수 있습니다(그림 2). 튜닝 매개변수를 선택하면 스무딩된 데이터를 출력할 수 있습니다. 부드러운 빨간색 삼각형으로 이동하여 수식 저장을 선택합니다. 이렇게 하려면 파장이 연속 변수여야 합니다(컬럼 속성을 사용해야 하는 경우 변수 유형을 수정할 수 있음).
Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.그림 2. Savitzky-Golay는 Graph Builder에서 스펙트럼을 평활화했습니다.
Graph Builder에는 평활화 스플라인 및 LOESS와 같은 대체 평활화 방법이 있으므로 시도해 볼 수도 있습니다. 부드러운 빨간색 삼각형 메뉴에는 대체 가중치 기능도 있습니다. 이러한 옵션 중 다수는 JMP 16에 새로 추가되었습니다.
스펙트럼의 품질을 정량화하는 다른 요약 측정은 Graph Builder에서 액세스할 수 있습니다. 이를 생성하려면 평균 스펙트럼이 표시되도록 오버레이 변수를 제거하십시오. 그런 다음 막대 그림과 상자 그림 옵션을 선택하면 그림 3의 그림이 생성됩니다. 파장에 걸쳐 일정한 변화는 종종 노이즈를 나타내며 추가 전처리가 필요함을 나타내는 반면 특정 파장에 특정한 큰 변화는 실제 화학적 효과를 나타낼 수 있습니다.
Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.그림 3. Graph Builder에서 스펙트럼 변화의 시각화.(상단) 표준 오차가 있는 각 파장에서의 평균 흡광도 막대 그래프. (하단) 각 파장에서의 흡광도 상자 그림.
데이터가 넓은 형식인 경우 유용한 또 다른 플롯 유형은 병렬 플롯입니다(그림 4). 이는 PCA, PLS 또는 기타 예측 모델링 플랫폼과 같이 넓은 형식이 필요한 다른 플랫폼에서 스펙트럼을 분석하는 경우에 특히 유용합니다. 병렬 플롯에서 스펙트럼을 선택하면 다른 플랫폼에서 해당 행이 강조 표시됩니다.
Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.그림 4. 글루텐 함량으로 색상이 지정된 스펙트럼의 Graph Builder 병렬 플롯.
전처리
스펙트럼 데이터 분석의 주요 걸림돌 중 하나는 복잡한 데이터 사전 처리가 필요하다는 것입니다. Savitsky-Golay 파생 필터링용 추가 기능과 표준 정규 변량(SNV) 산포 보정 공식을 사용하여 데이터를 "정리"하여 데이터를 더 쉽게 해석하고 궁극적으로 더 신뢰할 수 있는 예측 모델을 구축할 수 있는 방법을 보여줍니다. .
첫 번째 단계에서는 스펙트럼에서 명백한 기준선 이동을 제거합니다. 이를 위해 Ian Cox가 개발한 SG 데이터 필터링 추가 기능을 사용합니다(아래 이 게시물에 첨부된 추가 기능 참조). 이것은 넓은 형식의 데이터만 허용합니다. JMP에 설치된 추가 기능 목록에서 "데이터 필터링" 추가 기능을 선택합니다. 조작할 열을 선택하고 확인을 선택합니다. 검토를 위해 세 개의 출력 그래프가 나타납니다.
SG smoother 사용자 인터페이스는 다항식 적합 순서, 2 – 8) 스무딩 윈도우의 오른쪽 및 왼쪽 가장자리 길이도 정의됩니다. 미분이 SG 스무딩 스펙트럼에서 수행되기 때문에 이러한 값을 변경하면 그래프가 자동으로 업데이트됩니다. 파생 필터는 잡음을 증폭시키므로 어느 정도의 평활화가 필요한 경우가 많습니다. 그림 5는 출력 그래프를 보여줍니다.
Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.그림 5. (위) Savitzky-Golay smoother, (가운데) 1차 미분 필터, (아래) 2차 미분 필터.
필터링된 데이터는 새 데이터 테이블에 저장한 다음 원하는 경우 추가 사전 처리를 위해 원래 데이터 테이블로 다시 전송할 수 있습니다. 이 경우 1차 파생 데이터가 선택되어 원래 데이터 테이블에 다시 저장되었습니다.
이것은 기준선 이동을 효과적으로 제거하는 것으로 나타났습니다. 그러나 스펙트럼에는 여전히 약간의 산란 효과가 남아 있습니다. 산포 효과와 화학적 효과를 시각적으로 구분하는 한 가지 방법은 그래프 빌더에서 그룹화 변수를 사용하는 것입니다. 글루텐 함량 변수를 그룹 축 중 하나로 이동합니다. Graph Builder는 현명한 비닝을 찾고 각 빈에 대해 별도의 패널을 생성합니다. 이 데이터에는 5개의 글루텐 함량 값만 있습니다. 분산 효과는 1차 도함수가 추가 기준선 이동을 제거했지만 곱셈 분산 효과는 제거하지 않았기 때문에 남아 있습니다. 다음 블로그 게시물에서 분산 효과 플롯을 사용하여 곱셈 분산 효과를 설명하는 방법을 보여줍니다.
Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.그림 6. 글루텐 함량으로 구분된 스펙트럼이 있는 스펙트럼 선 플롯.산포 효과로 인한 변화는 이 플롯에서 볼 수 있습니다.
나머지 산포 효과를 제거하기 위해 SNV 표준화를 수행합니다. SNV는 데이터가 스택 형식이어야 합니다. 새 열을 만들고 그림 7에 표시된 수식을 추가합니다.
Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.그림 7. SNV를 수행하는 데 사용되는 공식.
원시 스펙트럼과 최종 사전 처리된 스펙트럼은 그림 8에 나와 있습니다. 이와 같은 플롯을 쉽게 시작하려면 Spectra Tools에서 Launch Graph Builder 명령을 사용하십시오.
이러한 간단한 단계를 통해 기준선 이동 및 곱셈 산란 효과가 제거되어 스펙트럼을 훨씬 쉽게 해석할 수 있습니다. 원본 논문에서 Martens et al. 고급 확장 곱셈 신호 보정이 이 사전 처리 워크플로우를 더욱 개선할 수 있는 방법을 보여주었습니다. 이에 대해서는 다음 포스트에서 다루도록 하겠습니다.
Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.그림 8. 이 블로그에 적용된 전처리 단계 전후의 스펙트럼. (위) 전처리 전, (가운데) Savitzky-Golay 1차 미분 필터 후, (아래) 표준 정규 변량 후.
향후 게시물
이 시리즈에서 두 개의 추가 게시물을 계획하고 있습니다. 다음은 곱셈 산란 보정 및 기준선 빼기와 같은 고급 전처리 방법을 보여줍니다.
또한 Functional Data Explorer의 동적 시간 왜곡을 사용하여 크로마토그램을 정렬하는 방법도 시연합니다. 마지막 게시물에서는 PCA, PLS, 일반화 회귀와 같은 JMP의 일부 예측 모델링 방법을 전처리 후 스펙트럼에 적용합니다.
이러한 접근 방식 중 일부를 시도해 보고 데이터와 어떻게 작동하는지 알려주세요!