2022년 5월 12일 목요일

MinKNOW v22.03.6에서 configuration test cell(CTC)이 인식되지 않는 문제

소프트웨어 업데이트가 기존의 버그를 해결하면서 때로는 새 문제를 만드는 경우가 가끔 있다. Oxford Nanopore Techologies의 MinION Mk1B를 구동하는 소프트웨어인 MinKNOW가 그러하다. 매번 시퀀싱을 시작하면서 '이번은 아무 오류가 없이 잘 지나갈까'하는 걱정을 하는 현실이 안타깝다.

GPGPU(GeForce RTX 3090)가 장착된 컴퓨터를 지난 2월 새로 장만하여 CUDA와 MinKNOW 및 guppy 등을 새로 설치한 다음, guppy HAC basecall을 성공적으로 실시한 뒤 새 샘플을 시퀀싱하기를 간절히 기다리다가 바로 어제 12개의 박테리아 샘플의 시퀀싱에 착수하였다. 그런데 오랜만에 컴퓨터의 전원을 올리면서 apt 명령어로 소프트웨어 업데이트를 한 것이 문제였을까, MinKNOW(최신판인 v22.03.6)에서 Hardware check에 실패한 것이었다. 그래도 시퀀싱은 할 수 있지 않을까? Hardware check를 매번 할 필요는 없을테니... 이런 안일한 마음으로 상태에서 flow cell을 꽂아서 점검을 해 보았다. 포어 상태를 표시하는 색깔이 평소와는 좀 다르지만 충분한 숫자의 포어가 살아있다 생각하고 라이브러리를 로딩하여 시퀀싱을 시작하였다. 그런데... 몇 분 지나지 않아서 script failure가 나면서 종료하고 말았다.

마침 바로 쓸 수 있는 MinION Mk1C가 바로 곁에 두 대나 있어서 라이브러리가 로딩된 flow cell을 이리로 옮겨서 시퀀싱을 시작하였다. 어젯밤 8시 반쯤에 Mk1C 두 대에서 러닝이 시작되어 아직까지 순조롭게 데이터가 생산되고 있다.

소프트웨어의 작동이 불량하면 깨끗하게 삭제 후 재설치를 하는 것이 정답이다. 그러나 apt를 이용하여 프로그램을 지우면 간혹 의존성 문제 등에 의해서 깨끗하게 지워지지 않을 때도 있다. 두 대의 리눅스 컴퓨터에 MinKNOW와 guppy를 설치하고 지우기를 반복하다가 갑자기 무슨 생각이 들었는지 /opt/ont 디렉토리를 싹 지우고 다시 시작해 보기로 하였다. 이것이 고난의 시작이었다! 이렇게 하면 MinKNOW 관련 소프트웨어가 깔끔하게 지워질 것으로 착각을 했던 것이다.

그 후로는 'sudo apt install minion-nc'를 아무리 실행해도 설정에 오류가 있다면서 실패를 거듭하였다. 오류 메시지를 보니 설치 스크립트를 실행하는 초기 단계에서 /opt/ont 디렉토리 아래에 python 인터프리터가 없다고 한다. 이건 무슨 일이지? Python이 필요하면 자동으로 설치가 되어야 하지 않을까? 매우 의아하게 생각하면서 Python 3.7.4의 소스 파일을 가져다가 컴파일을 하였다. 설정(./configure --prefix=/opt/ont/pytho3.7.4) 후 make 실행 단계에서 SSL library와 관련한 약간의 에러가 있었지만 큰 문제는 없으리라 생각하고 재설치를 한 뒤에 minion-nc를 설치하니 이번에는 오류가 생기지 않았다.

MinKNOW 소프트웨어 구동을 위한 python을 이렇게 처음부터 수작업으로 깔지는 않을텐데... 어쨌든 MinKNOW를 새로 실행한 뒤 CTC를 꽂아서 hardware check를 하니 여전히 position을 찾지 못한다. 도대체 왜 이러는 것이냐!

Nanopore community 웹사이트에 접속하여 나와 비슷한 문제를 겪는 사람이 있는지 질문과 답을 찾아 보았다. 2022년 4월 22일에 등록된 질문 CTC not detected에 대하여 이러한 코멘트가 있었다.



MinKNOW 최신 버전인 22.03.6이 CTC를 인식하지 못한다고 불평하는 사람이 나 혼자만이 아니었다. 해결책은 아무 flow cell이라 꽂은 뒤 hardware check를 하는 것이다. 전자 회로는 동일하기 때문이다.

Oxford Nanopore 기술진이 제시하는 소프트웨어 작동 불량의 해결 방법은 소프트웨어를 완전히 삭제한 뒤 새로 설치하는 것이다. MinKNOW 관련 소프트웨어 완전 삭제를 위해 권장되는 명령어는 다음의 두 줄이었다.

sudo apt purge minion-nc
sudo apt autoremove

반신반의하며 이 명령을 날려서 패키지를 완전히 삭제한 뒤, community 웹사이트에서 설명한 방법(링크 - 로그인 필요)에 따라서 minion-nc를 설치해 보았다. 터미널 창을 주시하고 있노라니 ONT 환경을 위해 파이썬 패키지를 가져다가 설치하는 과정이 똑똑히 나타났다. 그러면 그렇지! MinKNOW를 다시 켜고 다 쓴 flow cell을 MinION Mk1B에 꽂은 후 hardware check를 해 보았다. MinKNOW는 이를 CTC로 인식하여 성공적으로 점검을 마쳤다.

실제로 꽂혀 있는 것은 CTC가 아니라 다 쓴 flow cell이다.

점검 완료!

MinKNOW에 포함된 guppy의 버전이 아직 5.x대에 머물러 있던 시절, MinKNOW 내에서 HAC basecalling을 해 보고 싶어서 guppy 6.x을 추가로 설치하였다가 시퀀싱이 중단되는 에러를 겪었던 일이 있다. 지금은 MinKNOW용 guppy와 standalone형의 guppy가 전부 v6.x으로 판올림이 된 상태라서 이런 문제가 해결되었는지는 아직 알 수 었다. 돌이켜보면 당시에는 GPGPU가 없던 시절이라서 MinKNOW에서 HAC basecall이 된다고 해도 시퀀싱 러닝 종료 후 얼마를 더 기다려야 하는지 기약이 없었을 것이다.

$ dpkg -l | grep guppy
rc  ont-guppy                6.1.3-1~focal amd64 Oxford Nanopore Technologies high-performance GPU basecaller
ii  ont-guppy-cpu-for-minion 6.0.7-1~focal amd64 Oxford Nanopore Technologies high-performance GPU basecaller
ii  ont-guppyd-for-minion    6.0.7-1~focal all   Oxford Nanopore Technologies plc service for the real-time guppy basecaller

이번에 설치한 MinKNOW에서 과연 러닝과 동시에 HAC basecalling이 잘 이루어질까? Major version이 같으니 가능할지도 모른다. 혹은 fasta basecall부터 먼저 해 놓은 다음 나중에 명령행에서 HAC basecalling을 해야 할까? MinKNOW에서 각 서브 패키지를 확인해 보니 guppy 6.1.3(GPU version)이 잘 보인다. 이제는 MinKNOW 내에서 HAC basecalling을 할 수 있을 것 같다. 

댓글 없음: