2022년 5월 19일 목요일

PGAP 최신 버전(2022-04-14.build6021)을 쓰고 싶다!

PGAP(Prokaryotic Genome Annotation Pipeline)은 NCBI가 개발하여 배포하는 주력 소프트웨어의 하나로서, NCBI에 제출되는 모든 원핵 미생물의 자동 유전체 주석화에 쓰인다. 이 소프트웨어 자체에 대한 가장 최근의 논문은 다음의 것이다.

NCBI prokaryotic genome annotation pipeline. Nucleic Acids Research 44(14):6614, 2016 

이 논문의 제1저자인 러시아 출신 과학자 Tatiana Tatusova는 1993년부터 NCBI에서 일하기 시작했으며 꽤 오래 전에 어느 워크숍에서 봤었던 것 같다. 아마도 Genomic Standards Consortium 관련된 미팅이었던 것 같은데... 

PGAP은 도커 이미지와 작동에 꼭 필요한 데이터 파일을 사용자가 직접 다운로드하여 로컬 컴퓨터에서 돌릴 수 있다. 32 쓰레드에 메모리 250GB를 갖춘 소박한 내 컴퓨터에서는 박테리아 유전체 하나를 처리하는 데 1시간 정도 걸리는 것 같다. 

도커를 이용한다고 하지만 사용자가 'sudo docker run ...'이라는 명령어를 입력하게 만들지는 않는다. 파이썬 3.6 이상에서 작동하는 pgap.py 스크립트를 실행하면 업데이트가 있는지 먼저 확인하여 최신판으로 갈아치운 뒤 주석화를 개시하게 된다. 지난 3월 중순까지는 2022-02-10.build5872를 사용하였는데, 며칠 전에 nanopore로 시퀀싱하여 조립 및 후처리(medaka polish & circlator fixstart)를 마친 유전체 염기서열의 주석화를 위하여 pgap.py를 실행하였더니 최신 버전인 2022-04-14.build6021를 다운로드하는 가장 첫 단계에서 에러가 발생하였다. 한동안 별다른 문제없이 잘 써 왔던 소프트웨어가 업데이트조차 되지 않으니 정말 보통 심각한 문제가 아니다. 

KOBIC을 통해서 원인을 파악한 결과 https://raw.githubusercontent.com/ 사이트가 접속 차단 목록에 들어가 있다고 한다. 국가정보원에서는 특정 IP 주소 목록을 제공하여 국가공공기관에서 접속하지 못하게 하는데, 하필이면 여기에 이 주소가 들어있다고 한다. 개발자가 소프트웨어 배포를 위해 사용하는 웹사이트가 국정원의 시각에서는 유해한 사이트란 말인가? 휴대폰에서 이 주소로 접속을 하면 자동으로 https://github.com/로 리다이렉트된다. 하지만 https://github.com/는 연구원 내에서 원활하게 접속할 수 있다. 

참 합리적이지 못한 정책이 아닐 수 없다 생각하고 일을 하기 위해 집에 리눅스 컴퓨터를 새로 꾸몄다. 우분투 계열의 최신 LTS판인 22.04('Jammy Jellyfish')의 Xubuntu 디스트로를 설치하였다. Xubuntu는 화려하지는 않지만 비교적 가벼워서 오래 된 하드웨어를 활용하기에 아주 적당하다. 다이소에서 5천원을 주고 구입했던 USB Wi-Fi 수신기도 커널 모율을 사용자가 빌드할 필요가 없이 잘 인식하였다. 당연히 PGAP 최신 버전도 설치가 잘 되었고, 테스트 러닝도 무사히 완수하였다.

집 리눅스 컴퓨터에 설치한 PGAP을 외장 HDD에 복사하여 연구소에 가져다가 설치할 수 있지 않을까? 도커 이미지는 docker save 명령을 이용하여 tar 파일로 만들고, data file 및 test_genomes 자료 또한 파일로 복사하여 가져가면 될 것이다. 퇴근 후 약 이틀에 걸쳐서 컴퓨터 마련 및 PGAP 설치를 한 뒤, PGAP 관련 파일을 SSD에 담아서 출근한 다음 리눅스 컴퓨터에 마운팅을 했는데, 드라이브가 텅 비어 있다. 엥? 어제 내가 이 SSD에 복사한 것이 아니었나? 에혀~

집에 돌아가서 어제 했던 일을 똑같이 반복한 뒤 내일 나와서 본 작업을 하자니 너무 시간이 아깝다. 2022-04-14.build6021에서 개선된 사항이 그렇게 대단한 것이라는 생각은 들지 않았다. 따라서 pgap.py를 실행하면서 강제 업데이트를 하는 기능을 어떻게 해서든 끄면 될 것 같았다. 업데이트를 하면서 상태가 이상해진 pgap.py는 지운 뒤, 2022-02-10.build5872의 소스 파일을 가져다가 풀어서 pgap.py만 원래대로 복구한 다음, 소스 코드를 열어 보았다. 자동 업데이트와 관련된 라인을 주석 처리하려는 것이 당초의 계획이었으나, '--no-self-update'라는 옵션을 발견할 수 있었다. 또한 PGAP 버전의 최신으로 업데이트된 상태에서 이전의 특정 버전의 것을 사용하여 실행하는 방법('--use-version <version>')도 있음을 알게 되었다.

Forcing use a specific version of PGAP

이렇게 하여 최신판 바로 직전의 버전을 써서 PGAP을 돌리는 데 성공하였다. 실제로는 metadata file(yaml)의 사소한 오타를 발견하지 못해서 원인을 찾느라 오전 내내 열 번 정도는 거듭하여 테스트 러닝을 실행했었다.

최신판(2022-04-14.build6021)에서 추가된 기능은 설치 위치를 바꿀 수 있다는 것이다. 기본 위치는 $HOME/.pgap이고, 환경변수 PGAP_INPUT_DIR을 활용하여 원하는 곳에 설치하면 된다. 바로 다음날, 집에서 가져온 파일을 이용하여 PGAP 최신 버전을 설치 완료한 뒤 실제 유전체 염기서열을 이용한 분석에 성공하였다.







댓글 없음: