목요일, 1월 19, 2017

HGAP parameter 비교 결과

우선 PacBio에서 사용되는 용어에 대해서
잘 정리된 문서가 있어 링크 합니다.
>PacBio Term<

작년 말에 PacBio SMRT portal 에서 HGAPv2와 HGAPv3비교를 해보려고 했는데 해보신분은 아시다싶이 HGAPv2의 **맞은 속도로인해 HGAPv2의 parameter 비교는 skip하고 HGAPv3를 기준으로 parameter마다 bacteria genome이 어떤 변화가 있는지 비교해보았습니다.

-그렇다고 제가 HGAPv3를 사용한다는것은 아니라는 점! ;)

HGAPv3은 기존의 다른 de novo assembly 프로그램과 유사하게 Filtering/ Assembly/ Mapping/ Consensus 단계를 거쳐 진행합니다.
대게 de novo assembly 메뉴얼 작업을 하신 분들의 경우 filtering/trimming하고 assembly 무한 반복? 하고 mapping해서 insert size대로 mapping이 되는지 확인을 해보셨을 겁니다. ㅎㅎ
근데 PacBio Portal에서 스스로 잘 해줍니다. @.@

다음은 step마다 있는 parameter와 값들을 한번 정리 해봤습니다.

StepProtocolParameterValue
FilteringPreAssemblerSFilter.1.xmlMin. Subread Length500
Min. Polymerase Read Quality0.8
Min. Polymerase Read Length100
Control FilteringKeepControlReads.1.xmlNoneNone
AssemblyAssembleUnitig.1.xmlGenome Size5000000
Target Coverage25
Overlapper Error Rate0.06
Overlapper Min Length40
Overlapper K-Mer14
PreAssemblerHGA.3.xmlMin. Seed Read Length6000
Num. of Seed Read Chunks6
Alignment Candidates Per Chunk10
Total Alignment Candidates24
BLASR Options-noSplitSubreads -minReadLength 200 -maxScore -1000 -maxLCPLength 16
Min Coverage For Correction6
MappingBLASR_Resequencing.1.xmlMax. Divergence30
Min. Anchor Size12
ConsensusAssemblyPolishing.1.xmlNoneNone



위의 옵션들 중에서 제가 직접 조정해본 parameter들은 Filtering단계인 Min Subread Length, Min Polymerase Read Quality,  Min Polymerase Read Length, Assembly단계중 AssebleUnitig단계인 Genome Size, Target Coverage, 그리고 같은 Assembly단계인 PreAssemblerHGA단계의 Min. Seed Read Length정도를 고려해봤습니다. 건드린 옵션 이름보시면 매뉴얼 de novo assembly해보신 분들이라면 예상 가능하시리라 봅니다.
-음.. 가끔 이런 거 보다 더 잘 정리해서 논문으로 출판되는 경우가 있긴하지만....

그리고 추가적으로 더 손대면 결과가 좋아질 수 있을만한 옵션들이 있겠지만 시간관계상 (제가 주구장창 이것만 돌릴 수 있는 처지는 아닌지라... 모 여러 조건의 샘플과 무한한 서버를 제공해주신다면 테스트는 해드릴 수 있습니다. ;) )

여튼 결과부터 말씀드리자면 조건 변경(aka 최적화)해서 결과 얻으면 좀더 좋아질거 같죠?
시간낭비하지 마셈 되겠습니다. >_<

너님 나랑 장난하냐? 너 이자식 지금 결과보여주기 귀찮아서(이건 부정 못하겠네요ㅋ) 주작질 하는거지? 하실 수도 있는데 제가 테스트한 기준이 보통 bacteria genome을 진행하는데 사용되는 1 Cell 이라서 그런 탓도 있겠지만 알고있던 정보와 실제 나온결과와 10%이상 차이 안 나면 옵션 암만 최적화 해봤자 그 나물의 그 밥입니다.

그리고 옵션마다 값을 조절하면 그에 따라 그 다음 스텝의 input이 바뀌어 영향을 받지만 한정된 데이터에서 옵션값 조절해서 데이터의 결과가 다이내믹하게 바뀐다면 그건 최적화를 잘한 것이 아니라 시퀀싱데이터가 이상할거라는 느낌적인 느낌이 드시죠?

Filtering단계에서 read길이 올리고, 줄이고, 조금 떨어지는 데이터를 확보한다는 계획으로 read quality를 낮추더라도 어차피 서로 계속 영향을 줘서 default parameter로  생성된 데이터와 큰 차이 안 납니다.

결론: 1 contig 안 나오고 circluar형성 안되는 애들은 parameter 최적화 해봤자 안됩니다. 스트레스 받지말고 추가 시퀀싱하세요. 

샘플 좋고 시퀀싱 잘되면 분석툴이 개 이상하지 않으면 reasonable한 결과 나옵니다. :) 
default 의외로 성능 괜찮습니다. 내가 연구하는 건 나처럼 변태스러운 녀석이야! 하지 않는 이상 default쓰시면 평타는 칩니다. 

ps. 믿거나 말거나 조건 변경하면서 20번정도 테스트 해봤습니다. PacBio에서 제시하는 것 중에 추천하는 Genome Size 옵션이 영향을 많이 줄 수 있습니다. Genome Size를 기준으로 데이터를 정리하기 때문에 그런 것 같습니다. 그리고 Target Coverage는 bacteria의 경우 1 cell만 해도 대중 100x가 나오는데 target coverage (15-30) 조절해봤자 의미 없는 것 같습니다. bacteria말고 다른 종들은 의미가 있을지도...

댓글 2개:

Unknown :

안녕하세요~

전부터 블로그글 잘 보고있는 사람입니다~

저도 조금 돌려봤었는 데, 지놈사이즈를 좀 정확히 넣주는 거 외에는 괜히 파라미터 조정했다가 낭패를 보더라구요. 저는 후속 절차로 polished assembly fasta를 얻고 Circlator를 돌려서 원형 폼으로 만들어 줬습니다. 원형 폼이 안되면 뭐 거기까지 진행했구요..ㅋㅋ

블로그 주인장님의 글을 보니 제가 하는 방식이 틀리지 않았구나 하는 안도감에 댓글을 남기네요 ㅎㅎ

그럼 수고하세요~

gwlee :

저도 맨날 시행착오 겪으면서 살고 있습니다. -.ㅜ

즐연하시기 바랍니다. (_ _)