이번에는 R 환경 안에서 GO.db를 설치하는데 애를 먹었다. RNA-seq 데이터를 다루는데 통달한 사람이라면 늘 Bioconductor를 끼고 살 터이고, '이쯤이야 뭐 식은 죽 먹기지'하면서 쉽게 해결하겠지만 이러한 자료에 대한 작업 빈도가 높지 않은 나와 같은 사람에게는 다른 이야기이다. 몇 년 전에 초보적인 microarray 자료 작업을 조금 하면서 Bioconductor를 잠깐 썼던 것 같고, 그 이후에는 R의 일반적인 사용 방법을 익히고 실무에 활용하는 것에 집중했을 뿐이다. 정확히 말하면 이번의 문제는 Bioconductor와는 직접적인 관계가 없는지도 모른다.
R 버전 3.6.0에서 다음을 입력하면 GO.db 패키지를 설치할 수 있다고 한다.
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("GO.db")
그러나 내가 만난 것은 다음과 같은 에러 메시지 뿐이었다.
file(con, "r")에서 경고가 발생했습니다 :
URL 'https://bioconductor.org/config.yaml': status was 'Problem with the SSL CA cert (path? access rights?)'
정말 지긋지긋한 SSL CA cert 관련 에러다. GO.db는 bioconda에서 패키지명 bioconductor-go.db로 제공한다고 하니 conda install 명령어를 쓰면 잘 될 것이 생각했지만, Solving environment: 상태에서 더 이상 진도가 나가지 않았다. 자, 검색을 해 보자. 어디든 방법이 있겠지. GitHub의 Bioconductor 사이트에서 해결의 실마리를 찾았다.
Guidance on solving SSL error?
여기에서 설명한대로 R 프롬프트에서 'httr::set_config(httr::config(ssl_verifypeer=0L))' 명령을 실행한 다음 GO.db 설치 명령어를 날리니까 비로소 에러 없이 진행되었다. httr::set_config() 함수가 httr configuration을 영구적으로 보관하는지 혹은 R 세션 종료와 함께 사라지는지는 아직까지 잘 모르겠다. 내가 원하는 것은 GO ID와 description이 수록된 tab-delimited text file이다. R 환경에서 다음 명령어를 실행하면 된다.
> library(GO.db) > goterms <- Term(GOTERM) > write.table(goterms, sep="\t", file="goterms.txt",col.names=F,quote=F)
출력을 하니 45,000 줄이 넘는다. 나에게 당장 필요한 것은 이 파일 하나뿐이지만, GO.db가 할 수 있는 일은 훨씬 많을 것이다. GO ID의 목록이 있다면 Blast2GO용 annot file을 임시로 만들어서 GO description을 가져오는 꼼수를 부릴 수도 있다. annot 파일의 형식이 워낙 단순하니 가능한 일이다. SeqName 대신 적절한 부여하고, 한 라인에 하나씩의 GO ID를 넣은 annot 파일을 만들어서 임포트한 뒤 Export Table 기능을 이용하면 된다.
댓글 없음:
댓글 쓰기