화요일, 9월 22, 2020

8개의 variant caller 통합 도구

2018년 WGS이나 WES 혹은 Target Seq을 한 후 변이를 확인 할 때 으레 GATK를 사용하는 우리들에게 감사하게도 여러개(정확히는 8개)의 변이 caller 결과를 통합해서 확인 할 수 있는 논문이 발표되었습니다.

진짜 감사할지 이름만 appreci할지...

(구글 검색결과 글쎄요... 이유가 무엇인지는 모르겠지만 오늘이 2020년 9월 12일인데 인용 횟수가 4개네요..)

목적은 NGS를 임상에 사용하려면 유효한 variant를 call해야 하는데 분석 tool마다 어떤 variant는 call하고 어떤 variant는 call하지 못하는 경우가 발생해서 그럼 여기서 나온 결과와 저기서 나온 결과 합치자!!

근데 이 작업을 할 하는데?? 이게 그렇게 쉽다고?

그렇죠 이런저런 허들이 있고 동일한 위치에 A변이와 B변이가 있다고 나왔을 때 어떤 변이를 call했다고 인정할것인가?

모 변이를 call하고 변이들을 merge하고 필터링하는 파이프라인을 개발했다는 것이 이 논문의 결론이고 민감도는 0.93-1.0, PPV는 0.65-1.0사이, 8개의 도구를 combine하였는데 caller를 줄이면 appreci8의 성능은 떨어지니깐 그러지 마세요 라고 얘기하고 있습니다.

여기서 사용하는 8개 caller들은 다들 많이들 사용하고 있는 GATK, Platypus, VarScan, LoFreq, FreeBayes, SNVer, samtools, VarDict되겠습니다.

appreci8은 여기서 docker로 제공되고 있고 분석을 한 일루미나 데이터는 여기에 위치하고 있습니다.


출처: @ye._.vely618


토요일, 5월 30, 2020

Entrez를 이용한 fasta 파일 다운받기

간만에 Biopython에 포함되어 있는 Entrez 함수를 이용하여 assceesion넘버로 fasta파일 다운받기를 해봤습니다.

git: https://github.com/gwlee/study/blob/master/entrez_access2fasta.py


python entrez_access2fasta.py accessionid 하면 {accessionid}.fasta파일이 생성됩니다.

참 쉽죠?

Biopython만 잘 사용하셔도 갱장한 것들을 하실 수 있으시고
그런 의미에서 다음번에는 좀더 재미진 내용으로 찾아오도록 하겠습니다. :)








출처: @sana_twice.09
출처: @sana_twice.09



일요일, 5월 10, 2020

bed파일을 편하게 다뤄주는 bedtools

bedtools를 설명하는데 swiss-army knife 만한게 없긴하지요
swiss-army knife 같이 다목적으로 적재적소에 쓰이는 좋은 물건 되겠습니다.

최신판은 2.29.2 되겠습니다. 당연한 얘기지만 상위버전으로 업데이트된 sub 명령어들의 옵션들이 추가되기 때문에 하위 버전 사용시 최근 메뉴얼 보시면 작동 안합니다. ㅋ
(웬만치 하위버전을 써야지.... 근데 이러는게 종종 있습니다. 그렇더라구요)

bed 포맷을 핸들링할때 굳이 스크립트 짜지 마세요
어설프게 짜고나서 나중에 후회마시고
그냥 bedtools 사용법을 남겨두고 써먹으시는게 서로 편합니다.

genome관련해서 사용할 만한 sub 명령어는
sort, merge, intersect, window 정도만 생각하고 있었는데.. 역시 coverage가;; 아놔.. 이거 겨우겨우 만들었는데...
역시 coverage라는 sub 명령어가;;;

여러분 힘들게 만들지 마시고 있는거 잘 활용하시면 
센스있는 분석쟁이로 가는 첫걸음입니다. :)



출처: @sana_twice.09



일요일, 5월 03, 2020

Long Read Assembler 설치 작업 로그

오랜만에 작업 로그용 글입니다. :)

Long Read(aka Nanopore)를 위한 assembler의 설치에 대한 로그로... 모 그렇게 자주 사용 될일이 없을것 같지만.. 그래도..

root권한 또는 sudo권한이 없는 상황을 가정하고 설치하는게...
나중에 편합니다. root권한 있으면 편하지만 나같은 쩌리한테 호기롭게 root권한이나 sudo를 부여할 이유가 있겠습니까? 그냥 없으면 없는대로 사는법도 알고 있어야... :)


canu (https://github.com/marbl/canu/releases)

$ wget https://github.com/marbl/canu/releases/download/v2.0/canu-2.0.Linux-amd64.tar.xz

$ tar -xvf canu-2.0.Linux-amd64.tar.xz

또는

$ git clone https://github.com/marbl/canu.git

$ cd canu/src

$ make -j <number of threads>


wtdbg2 (https://github.com/ruanjue/wtdbg2)

$ git clone https://github.com/ruanjue/wtdbg2

$ cd wtdbg2 && make


Raven (https://github.com/lbcb-sci/raven)

$ git clone --recursive https://github.com/lbcb-sci/raven.git raven

$ cd raven && mkdir build && cd build

$cmake -DCMAKE_BUILD_TYPE=Release .. && make

$ ./bin/raven

단, raven은 cmakr 3.9이상이 필요합니다. cmake 설치는 아래에 따로..


Racon (https://github.com/lbcb-sci/racon)

$ git clone --recursive https://github.com/lbcb-sci/racon.git racon

$ cd racon

$ mkdir build

$ cd build

$ cmake -DCMAKE_BUILD_TYPE=Release ..

$ make

racon의 경우 raven이 아닌 miniasm_and_minipolish.sh 작업시 racon을 찾아 해매서 racon 설치도 진행하였습니다.


flye (https://github.com/fenderglass/Flye)

$ git clone https://github.com/fenderglass/Flye

$ cd Flye

$ python setup.py install --prefix=/path/to/install/

또는

$ python setup.py install --user

※ --user 라는 옵션이 갱장히 편합니다. 대신 나만 됩니다.





cmake (https://cmake.org/)

$ wget https://cmake.org/files/v3.10/cmake-3.10.3.tar.gz

$ /bootstrap --prefix=/path/to/install/

$ make

$ make install

※ prefix를 설정하지 않으면 /usr/bin 모 이런데에 설치 되므로 설치가 제대로 되지 않기 떄문에 prefix를 설정하는것이 정신건강에 이롭습니다. :)



출처: @sana_twice.09


일요일, 4월 26, 2020

Benchmarking of long-read assemblers for prokaryote whole genome sequencing

나노포어는 현존하는 시퀀서중에 가장 긴 서열을 뽑아내는 시퀀서임에는 그 누구도 부인하지 못할것입니다. 근데.. 생산된 리드의 각 base의 phred score를 보자면.. 왜 갑자기 눈에서 물이나오는 이유는 왜때문일까요?
(그렇지만 저는 de-novo할때 보수적인 그룹이 아니라면 나노포어를 권장하는건 비밀..)

여하튼.. 현재 나노포어 어셈블리 용으로 이런저런 어셈블러가 판치고 있는 난세에 누가누가 좋은지 확인하는 작업을 해서 투고하신분이 나타나셨습니다.
제목도 정직합니다. 단, prokaryote대상입니다.
Benchmarking of long-read assemblers for prokaryote whole genome sequencing

prokaryote에서도 개판이면 굳이 사용할 이유가 있겠느냐? 주의 되겠습니다.
일단 가장 좋은것은 모르겠지만 최악은 걸러내야 해야 시간 낭비, 전기 낭비 하지 않지 않겠습니까?

현재(aka 당시에) 돌려볼 수 있는 7개 어셈블러 (Canu, Flye, Miniasm/Minipolish, NECAT, Raven, Redbean, Shasta)의 성능을 비교 평가 했습니다.
어셈블리의 정확성은 당연하고, prokarypte다 보니 circularisation도 중요하고, 계산시 사용되는 리소스와 분석 시간등을 평가했다고 합니다.

아름다운 figure는 상단에 링크된 논문에서 감상하시면 되고,
canu는 그나마 볼만한 서열들을 제공해줬고
flye는 canu다음으로 괜찮은 서열로 어셈블리 했다고 합니다.
redbean(wtdbg2) 과 shasta는 계산 리소스와 분석 시간에서는 효율적이었지만 결과는 그다지 효율적이지 않았고 하네요.

그래서 종합해서 논문에서 결론을 냈는데
모.. de-novo aseeembly 해보신분이라면 알고계시다 싶이.. 다들 장단점이 있었고, 원탑인 어셈블러는 없었지만 그 중에서 Flye, Miniasm / Minipolish와 raven이지 않나 싶다고 하네요

Flye는 믿을만한 서열을 제공했고(low depth에서도 나름..)
Miniasm / Minipolish는 circularisation이 좋았고
raven은 identity가 낮은 read set들에서 tolerant가 있었다고 합니다.

역시 최적의 어셈블리를 위한 정도는 당신이 사용 가능한 리소스를 동원해서 다양하게 돌려보고 비교한 게 킹왕짱이지 남의말 믿고 쓰면 너만 바보 되고
개발자님들인 이런 상황이니 개발좀 굽신굽신 :)



출처: @sana_twice.09