기타

BIOM(The Biological Observeation Matrix) format

" " 2023. 12. 19. 21:23

QIIME2 사용해서 분석하다 보면 biom 형식의 파일을 자주 만나볼 수 있습니다. 해당 형식에 대해 이해가 필요하다고 생각하여 간단하게 알아본 내용을 포스팅합니다.

 

# 아래의 biom project 공식 홈페이지의 내용을 기반으로 합니다

 

 

The Biological Observation Matrix (BIOM) format — biom-format.org

The Biological Observation Matrix (BIOM) format The BIOM file format (canonically pronounced biome) is designed to be a general-use format for representing biological sample by observation contingency tables. BIOM is a recognized standard for the Earth Mic

biom-format.org


BIOM 형식은 아래 세가지 목적을 위 제작되었습니다.

 

1. 크고 방대한 생물학적인 데이터를 다루고, 저장하는 것을 용이하게 하기 위함

2. 원본 데이터와 해당 데이터의 메타데이터 등을 하나의 파일로 묶기 위함

3. 해당 데이터를 분석하는데에 주로 사용되는 도구 (QIIME2, RAST, PYTHON) 등과 호환되어 사용을 용이하게 하기 위함

 

OTUs (ASVs) 데이터의 특성상, 하나의 샘플을 분석하는 데에도 몇백개의 미생물 feature 가 포함되어 있습니다. 우리는 하나의 샘플이 아닌 수십, 수백개의 샘플을 구성하는 미생물군집에 대해 분석하는 것이 목표이므로 이러한 동기를 가지고 새로운 데이터 파일 형식이 제작되었습니다.

 

마이크로바이옴 데이터가 방대한 것은 사실이지만 feature table 을 열어봤다면 상당 부분의 값이 0 이라는 것은 모두가 쉽게 알 수 있습니다. 이런 점을 활용해서 방대한 데이터를 조금 더 촘촘하고 필요없는 데이터를 삭제하여 효율적으로 다루고자 했습니다. 아래 그림을 보면 상당히 직관적으로 이해할 수 있습니다.

 

위 보다 아래 형식의 파일이 더욱 다루기 편하고 더 작은 메모리가 할당되어 효율적인 데이터의 처리가 가능합니다. 

 

물론, 우리가 biom 파일을 테이블로 변환해서 보게 되면 아래와 같은 우리가 익숙한 형태로 변환됩니다.

table
10 x 4 <class 'biom.table.Table'> with 39 nonzero entries (97% dense)

print(table) 
# Constructed from biom file (0 - 10 => feature, S0 - S3 => sample)
#OTU ID S0  S1  S2  S3
O0  0.0 1.0 2.0 3.0
O1  4.0 5.0 6.0 7.0
O2  8.0 9.0 10.0    11.0
O3  12.0    13.0    14.0    15.0
O4  16.0    17.0    18.0    19.0
O5  20.0    21.0    22.0    23.0
O6  24.0    25.0    26.0    27.0
O7  28.0    29.0    30.0    31.0
O8  32.0    33.0    34.0    35.0
O9  36.0    37.0    38.0    39.0

 

사실 해당 홈페이지에서는 이 형식을 가지고 다양한 변환을 할 수 있음을 보여줍니다. 주로 python 을 사용하여 정규화하고, 샘플 id 를 뽑아내고 요약하는 등의 기능이 가능합니다.

 

+ qiime2 에서 수행하는 collapsed 또한 아래의 파이썬 코드를 기반으로 합니다.

 


 

 

우리가 QIIME2 에서 수행하는 여러 가지 기능들은 모두 이런 파이썬 코드가 배경이 됩니다. 기본적으로 QIIME2 로 분석을 진행하다 보면 우리가 보는 것은 qza, qzv 형식의 파일이지만 해당 파일을 열어보면 내부에는 biom 파일이 항상 존재합니다.

 

이 형식의 파일을 사용해서 방대한 데이터를 최대한 효율적으로 처리하고, 만약 원본 데이터를 보고 싶은 경우에는 qza 파일 내부의 biom 파일을 확인하면 위와 같이 # Constructed from biom file 이라는 내용과 함께 원본 데이터를 확인할 수 있습니다.

 

잘 생각해보면 위와 같은 형태의 분석이 필요하다면 꼭 마이크로바이옴 데이터가 아니더라도 해당 논문에서 표현하는 "sample by observation contingency table" 형식의 데이터라면, biom 파일로 변환하여 효율적인 분석이 가능하다는 것을 알 수 있습니다. (genomics, metabolomics, proteomics, microarray-based transcriptomics)

 

이러한 경우에 샘플 별 마이크로바이옴 데이터에 대사체 데이터, 단백체 데이터를 결합해서 샘플에 대한 정보를 다양한 오믹스들이 결합된 형태로 분석이 가능합니다. 하여 기본적인 작동 방식을 조금만 이해할 수 있다면 더욱 폭넓은 분석을 수행할 수 있기 때문에 충분히 공부할 가치가 있다고 생각합니다.

 

 

 

# reference

 

1) McDonald, Daniel, et al. "The Biological Observation Matrix (BIOM) format or: how I learned to stop worrying and love the ome-ome." Gigascience 1 (2012): 1-6.

 

2) https://biom-format.org/index.html