안녕하세요,
16S rRNA의 미생물 군집 분석에 자주 이용되는 detail하고
deep한 내용인 functional prediction 분석에 관한 포스팅입니다.
16S의 Functional Prediction 분석이라고 하면 유명한 tool이 3개 있어요.
PICRUSt, FAPROTAX, Tax4Fun2가 있지요.
각각의 장 단점은 모두 있으나, 개인적으로 Tax4Fun2가 가장 좋다고 생각하고 있어요.
이유는 Pipeline을 보면 알 수 있는데요.
간단히 설명해서, 16S rRNA 데이터를 NCBI의 Reference Sequence (RefSeq)에 Blast하여
99 ~ 100%의 similarity를 갖는 chromosome을 불러옵니다.
해당 chromosome을 KEGG에 Blast하여 Level 1 ~ 3 까지의 pathway prediction과
enzyme수준에서도 관찰할 수 있는 functional prediction 데이터를 output으로 받을 수 있게 되요.
논문에서도 높은 정확도를 보이고 있으며, 관련 논문은 첨부 파일에 있어요.
그럼, 아래 Step을 따라서 Functional 분석을 해볼까요?
1. 패키지 설치
R에서 이용하는 분석이며, 패키지 이름은 "Tax4Fun2"입니다.
고급 테크닉인만큼 시작부터 그 난이도를 보여주네요.
일반적으로 패키지 설치할 때,
install.packages("packagename")
이렇게 하는데, Tax4Fun2는 이렇게 설치할 수 없어요.
Default 패키지 설치가 이루어져야 해요.
1.1 패키지 설치 파일 다운로드
패키지 설치 파일은 첨부 파일에 있어요 (Tax4Fun2_1.1.5.tar.gz).
또는 github에서 다운로드 가능해요. (https://github.com/ZihaoShu/Tax4Fun2/blob/main/Tax4Fun2_1.1.5.tar.gz)
작성일 기준 최신 version의 파일입니다.
1.2 패키지 파일을 R library Path에 넣기.
Tax4Fun2_1.1.5.tar.gz 파일을 library Path에 옮겨주세요.
library Path는 아래 명령어로 확인이 가능해요
.libPaths()
R에서 library 설치하는 파일을 찾아서 넣어줍니다.
1.3 패키지 파일 default 설치
일반적인 설치 방법이 아닌 다른 설치 명령어를 이용해야 해요.
install.packages("C:/Program Files/R/R-4.2.2/library/Tax4Fun2_1.1.5.tar.gz", repos = NULL, type="source")
저는 C:/Program Files/R/R-4.2.2/library/ 폴더에 있는 Tax4Fun2_1.1.5.tar.gz 파일을 설치하는 과정이에요.
type = "source"는 소스 파일이 있으니, 그 것을 설치해라. 라는 명령을 하는 거예요.
2. 패키지 실행
library(Tax4Fun2)
아무런 에러 메시지가 없다면, 정상적으로 패키지가 설치된 것이고,
에러가 발생했다면, 어디서 실수했거나 다른 설치 방법을 찾아야 해요.
3. Reference Data 설치
buildReferenceData("path_to_work_directory", use_force = TRUE, install_suggested_packages = TRUE)
설치 도중에 Timeout of 60 seconds was reached 라는 문구와 함께 에러가 뜨나요?
그렇다면 아래 명령어 실행 후, 다시 설치해보세요.
getOption('timeout')
#[1] 60
options(timeout = 9999)
getOption('timeout')
#[1] 9999
buildReferenceData("path_to_work_directory", use_force = TRUE, install_suggested_packages = TRUE)
설치가 완료되면 굉장히 활기찬 문구가 뜹니다! Tax4Fun2를 즐겨보세요!
4. Blast프로그램 설치
4.1 Working directory 설정
Tax4Fun2_ReferenceData_v2가 설치된 working directory를 설정해주어야 해요.
getwd() #현재 working directory
setwd("path_to_work_directory") # working directory 설정
getwd() #바뀐 working directory 확인
buildDependencies("Tax4Fun2_ReferenceData_v2", install_suggested_packages = TRUE)
명령어 실행 후, 해당 폴더 안에 blast_bin이라는 파일이 하나 더 생겼을 거에요.
이제 분석할 준비는 완료되었네요.
설치 과정이 굉장히 힘들군요.
5. Excel package 설치
불행히, 패키지 설치가 끝난 것이 아닙니다.
5.1 pacman 설치
install.packages("pacman")
pacman은 excel의 대부분의 기능을 이용할 수 있는 통합 패키지입니다.
이제 정말 패키지 설치는 끝이 났습니다.
6. 데이터 포맷 만들기
6.1 #CSV to FASTA
pacman::p_load(tidyverse, openxlsx, installr, tcltk, xlsx, readxl)
setwd("path/to/working/directory")
csv = read.csv("path/to/seq/file/SRR_seq.csv", header=T)
fa = character(2 * nrow(csv))
fa
fa[c(TRUE, FALSE)] = sprintf(">%s", csv$chr)
fa[c(FALSE, TRUE)] = csv$seq
데이터 포맷은 첨부 파일의 Prevotella_seq을 참고해주세요.
OTU table이나, ASV테이블을 변형하여 CSV 파일로 저장한 후,
fasta포맷인 꺽새가 포함된 파일 포맷으로 변경하는 과정이에요.
6.2 fasta 파일 생성
writeLines(fa, "SRR_seq.fna")
fna파일 포맷으로 working directory에 파일이 생성되요.
7. Tax4Fun2 패키지 실행
library(Tax4Fun2)
8. Functional analysis 진행
8.1 Working directory 설정
setwd("path/to/working/directory")
8.2 Functional Prediction 분석
# 1. Run the reference blast
runRefBlast(path_to_otus = "SRR_seq.fna", path_to_reference_data = "F:/Analysis/2203_Feline/Tax4Fun2_ReferenceData_v2", path_to_temp_folder = "SRR", database_mode = "Ref99NR", use_force = T, num_threads = 6)
# 2. Predicting functional profiles **
makeFunctionalPrediction(path_to_otu_table = "SRR_Tax4Fun2_table.txt", path_to_reference_data = "F:/Analysis/2203_Feline/Tax4Fun2_ReferenceData_v2", path_to_temp_folder = "SRR", database_mode = "Ref99NR", normalize_by_copy_number = TRUE, min_identity_to_reference = 0.97, normalize_pathways = FALSE)
# 3. Calculating FRIs **
calculateFunctionalRedundancy(path_to_otu_table = "SRR_Tax4Fun2_table.txt", path_to_reference_data = "F:/Analysis/2203_Feline/Tax4Fun2_ReferenceData_v2", path_to_temp_folder = "SRR", database_mode = "Ref99NR", min_identity_to_reference = 0.97)
'R > R_Usage [KOR.]' 카테고리의 다른 글
[R.라딘] RStudio에서 엑셀의 Vlookup 기능 이용하기 (0) | 2022.12.05 |
---|---|
[R.라딘] 미생물 군집 분석 [Alpha-diversity] in Rstudio (2) | 2022.11.30 |
R을 이용한 Correlation 분석 (0) | 2022.11.15 |
R을 이용한 Correlation Plot "Corrplot" 시각화 (0) | 2022.11.14 |
R을 이용한 Heatmap 시각화 (0) | 2022.11.08 |