요즘 기계학습의 성능이 얼마나 올라왔는지 chatgpt 를 보면 체감이 되는 부분이 있습니다. 4.0 버전이 성능이 정말 좋고 특히 코딩이 필요할 때 전공자가 아닌 입장에서 시간을 꽤나 절약할 수 있게 해 주고 이런 흐름은 나중에는 코딩으로 단순히 데이터를 시각화하는 데에 그치는 것이 아니라 모델을 만들고 데이터를 학습시키는 것이 어렵지 않은 작업이 될 것이라고 생각합니다. 그래서 대용량의 유전체 데이터를 다루는 이쪽 분야에서도 움직임을 꾸준하게 쫓아보는 것도 이후에 많은 도움이 될 것이라 생각하고 있습니다.
이전에도 관련해서 포스팅을 올렸던적이 있었는데 일단 마이크로바이옴 데이터를 학습시키는 과정에서 가장 먼저 표준화되어야 하는 것은 어떻게 전처리해서 학습시킬 것인가라고 생각하고 있습니다. 물론 많은 방식으로 전처리된 데이터를 사용한 논문들이 나오고 있는데 최근 이 과정에 집중한 논문이 하나 나와서 간단하게만 소개해보려고 합니다.
Gut microbiome-metabolome interactions predict host condition - Microbiome
Background The effect of microbes on their human host is often mediated through changes in metabolite concentrations. As such, multiple tools have been proposed to predict metabolite concentrations from microbial taxa frequencies. Such tools typically fail
microbiomejournal.biomedcentral.com
일단 전처리는 잠시 제쳐두고 이 논문의 핵심은 아래 그림과 같습니다.
Step A. 마이크로바이옴 데이터 차원축소 또는 feature extraction 하여 Z 행렬로 변환 (nn 사용 ? )
Step B. 마이크로바이옴 데이터로 대사체 데이터를 예측할 수 있다는 가설을 기반으로 Z (마이크로바이옴 데이터) * A = Me (대사체 데이터) 이라고 가정. 마이크로바이옴과 대사체의 관계는 행렬 A 로 표현되고 이 행렬을 구하기 위해 마이크로바이옴 역행렬 * 대사체 데이터 계산하여 A 를 계산.
Step C. 과적합 피하기 위해 계산된 행렬 A 를 특이값 분해
Step D. Z 를 곱해 대사체를 예측.
> 완벽하게 이해는 못했지만 대략적인 아이디어는 파악이 됩니다. A 라는 미생물과 대사체의 관계를 담고 있는 행렬을 구해서 이걸로 대사체 농도를 예측하겠다는 것 같습니다.
-----------
대략적인 아이디어는 확인해봤으니 어떤 데이터를 학습시켰는지 보겠습니다.
Methods 부분에 꽤나 자세하게 나타나 있습니다. MIPMLP pipeline 을 사용했다고 하고 전처리 과정은 다음과 같습니다.
1. 최초 시작은 feature table (ASVs 의 수로 구성된 데이터) 입니다.
2. 원하는 taxonomic level 에서 동일한 feature 끼리 그룹화를 해줍니다. 이 과정은 Sub-PCA 를 사용하는데 PCA 기법의 일부로 원하는 level 이 genus 라고 가정하면, 동일한 genus 끼리 묶어서 각 그룹에 대해 pca 를 수행합니다. 그 결과에서 분산의 절반 이상을 설명할 수 있는 feature 만을 input table 에 넣습니다.
> 대략 ASVs 개수가 많은 feature 들만 남기겠다는 것 같습니다.
3. 0 인 데이터에 0.1 을 더하고 log10 변환 이후 z-scoring (평균 0, 분산 1 인 데이터로 변환)
> RNA SEQ 분석할 때 이런 식으로 많이 하는데 0.1 이 아니라 더 작은 수를 더해줬던 것 같습니다. 기계학습 할 때는 값을 통일만 하면 상관없을 것 같긴 해서 오류가 나지만 않도록 0.1 을 더한 것 같습니다.
+ 중간에 relative abundance 를 계산하는 부분도 있는데 이건 LOCATE 를 위한 전처리는 아닌 것 같습니다.
-----------
relative abundance 가 아닌 feature table 을 사용해서 input table 을 구성했는데, 둘다 장단점이 있고 아직 어떻게 했을때 더 성능이 좋은지는 잘 모르겠습니다. feature table 을 사용하면 데이터가 compositional 하지 않기 때문에 왜곡되지 않은 데이터를 넣어줄 수 있다는 장점이 있습니다.
이 논문에서 제시한 모델의 재밌는 점은 미생물 or 대사체 or 미생물+대사체 데이터를 사용해서 host 의 상태를 예측한 게 아니라 미생물 -> 대사체 예측의 과정을 중간에 넣었다는 것입니다.
저자는 일반적으로 데이터를 생산하는 과정이 대사체가 더 어렵기 때문에 A 행렬을 구함으로써 대사체를 따로 분석하지 않아도 미생물 데이터를 사용해서 예측할 수 있다고 말하고 있습니다. 다만, 대사체를 미생물 구성만으로 예측하는 것이 가능한 건지는 잘 모르겠습니다
또 여기서 WGS 가 16S 데이터보다 성능이 더 좋았다고 하는데 그런 부분은 어쩔 수 없는 것 같습니다. 데이터를 발생시키는데 가격차이가 많이 나서 16S 가 선호되고 있지만 점점 시퀀싱 가격이 내려가면서 WGS 데이터를 부담 없이 만들 수 있게 되는 날이 오지 않을까 기대해 봅니다.
'[머신러닝]' 카테고리의 다른 글
마이크로바이옴 + 대사체 데이터 기계학습 (0) | 2024.01.21 |
---|---|
[머신러닝] q2-sample classifier (0) | 2023.12.17 |
[머신러닝] 모델에 학습시키기 위한 마이크로바이옴 데이터의 형식 (0) | 2023.11.29 |
[머신러닝] CNN 을 사용한 마이크로바이옴 데이터의 분류 (T2D vs healthy) (1) | 2023.11.26 |
실제 데이터로 머신러닝 모델 만들기 : 2 (1) | 2023.09.17 |