블로그에 쓰는 내용이 16S rRNA에 많이 집중되고 있긴하죠? ㅎㅎ
하는일이 이거다보니.. :)
여튼 오늘은 16S rRNA와 시퀀싱플랫폼에 대해서 잠시 이야기 하도록 하겠습니다.
최근 16S rRNA sequencing의 최강자 454가 서비스를 bye bye한 관계로
많은 연구자들이 MiSeq체제로 변환하고 있는데 (물론 Ion도 있고, PacBio도 있습니다.)
기존에 454를 사용했을 때와 다른 V region을 사용하고 다소 다른 결과들을 보이는 것들이
있을 것 입니다. 그래서 이리저리 검색하다가 걸린 논문 두 개를 가지고 잠시 얘기해보고자 합니다.
Nucl. Acids Res. (2010) 38 (22): e200.
PeerJ (2016) 4:e1869
논문을 찾아보기 시작한 이유는 454가 막을 내린 후 다른 시퀀싱 플랫폼에서는 왜 다른 region을 target하고 있고 왜 diversity에 차이를 보이는지... (내가 분석을 잘못했나.. ㅎㄷㄷㄷ)
우선 V region, 454는 V1-V2였는데 MiSeq은 V4 region을, Ion은 4개 region? 7개 region? 을 동시에target하고 있다는..
모 논문보면 아시겠지만
2010년 논문은 454 vs MiSeq을 비교했습니다. 두 플랫폼이 차이가 날까? 어떤것이 차이가 날까?
2010년도 논문을 한장 figure 요약하자면 이거죠
상단은 phylum abundance/ 하단은 genus abundance 그리고 좌측에 있는 V4는 이전 연구에서 사용되었던 기준이라고 생각되는 참고용 분포입니다. 실험 결과가 V4 region이 저 분포를 나타내면 실험이 잘됐다고 확인하는 용도로 사용됩니다.
사실 phylum은 크게 차이없죠, 차이가 있기도 쉽지않습니다.
관심사는 genus되겠습니다. 일루미나 데이터의 대부분은 unclassified입니다. 논문에서는 error때문에 이렇게 나왔으니 error좀 낮아지면 일루미나가 output이 많으니 sequence error 문제점을 개선된다면 미생물 분석에 적합한 킹왕짱 시퀀서가 될거라고 하는데 개인적인 생각으로는 sequence error(454가 일루미나가 한테 sequence error ㅋㅋ 좀 웃겼다능..
systematic error는 눈에 안뵈냐라고 한다면 눼눼, 하긴 이 논문이 2010년이란 것을 감안한다면 무리는 아니긴 합니다.)보다는 db선택이 unclassified문제는 보정할 수 있지 않을까 합니다.
그렇다면 이제 16s rRNA 입문한지 얼마안된 님께서 그렇게 느끼는 느낌적인 이유는
무엇인가?
바로 2016년 논문되겠습니다.
2016년 논문은 PacBio로 시퀀싱한 것을 db에 따라 분석 결과가 달라지는냐에 대한 내용으로
다음 한 장으로 요약 할 수 있겠습니다.
동일한 시료를 가지고 시퀀싱한 데이터를 16S rRNA db에 따라 classification되는 정도를 확인해본 그래프 입니다. 느낌 딹오시죠?
다만 나중에 뒤통수 맞았다는 느낌 안 받게 하나 말씀드리자면 RDP와 Silva의 경우 genus까지만 확인했고 gg는 genus와 genus+species 두가지로 확인한 것 입니다.
이제 PacBio의 Sequel에서 CCS로 생산된 16S rRNA 서열가지고 연구해도 나쁘지 않을 것 같다는..
아.. 이제 돈만 많으면 되는건가!!!
월요일, 12월 05, 2016
화요일, 1월 29, 2013
NGSQCToolkit 사용기
아.... 이제서야
지난번에 언급했던
NGS QC Toolkit을 사용해 봤습니다. :)
라이브러리와 perl 모듈을 잘 설치해주면
큰 문제없이 잘 돌아가는것을 확인했고
multi-thread로 실행하는 경우 음.. 빠르더라구요 ㅎㅎ
시간 체크는 못해봤는데...
지금 시간체크 하면서 돌리는게 있으니
정리해서 올리도록 하겠습니다. :)
1. 들어가기전
일단 시스템에 gd관련 라이브러리가 있는지 확인하시고
gd와 libgd-graph 등등 관련 라이브러리를 설치해주시기 바랍니다.
그리고 perl 모듈들이 모두 설치되어 있는지 확인해서 안되어 있다면
설치해주시면 되겠습니다.
gd라이브러리가 없으면 펄의 GD::Graph 설치할때 설치가 안되더군요;;
에러가 나서 몬가 하고 있었는데.. ㅎㅎ 여하튼...
모 이런저런 라이브러리와 모듈을 확인하시고 잘 설치하면
사용하는데 문제 없습니다. :)
2. 사용하기
NGQQCToolkit에는 크게 4가지의 서브 카테고리로 구분되어져 있더군요
1) 포맷 변경
2) QC
3) 자료 통계
4) Trimming
2.1 Format Convert
Fastq -> {454 | Fasta}: Fastq를 454(Fastq,Qual), Fasta 포맷으로 변환
{SangerFastq | SolexaFastq} -> IlluFastq: Sanger와 Solexa의 qual를 Illumina의 통일된 qual score range로 변환 (다만, 1.5+ 로 하는지 1.8+ 로 하는지는 확인 못했습니다.)
2.2 QC
454{QC|QC_PE|QC_PRLL}: 454 데이터를 input으로 하는 QC tools
Illumina와 다르게 QC_PE가 있는건 454의 경우 paired-end로 sequencing 하는 경우는 좀 특별해서 구분해둔듯.. :) (단, input은 SFF 포맷이 아닌 서열 파일과 Quality score파일로 구분해서 입력해야 사용가능하다.)
Ill{QC|QC_PRLL}: 일루미나 read를 처리하는 tools, 454와는 다르게 single-end와 paired-end를 따로 구분하지 않고 -se, -pe 옵션으로 처리하도록 만들어놨다는 점~ :)
PRLL 접미사는 병렬처리를 지원하는 스크립트입니다.
PRLL tools에서는 -c를 사용해서 multi-core를 사용하는데에 반해
일반 tools는 -p 옵션을 사용해도 multi-core를 사용하지 않는 점이 있었습니다.
2.3 Statistics
AvgQuality.pl: quality score 파일을 입력받아 점수를 계산하는 tool
N50Stat.pl: fasta파일을 input으로 받아 N50을 계산하는 tool
2.4 Trimming
AmbiguityFiltering.pl:
HomopolymerTrimming.pl:
TrimmingReads.pl:
결과로 제공되는 figure도 나름 괜찮습니다. :)
속도도 multi-core를 사용하던 안하던 만족할만한 수준이었습니다.
(제가 in-House로 제작한 script가 느린것도 있겠지만요.. ㅎㅎ )
자세한 사용법은 저보다 영어 못하시는 분은 없을테니 메뉴얼 보세요~ ㅎㅎ
>>메뉴얼보러가기<<
추가정보
paired-end fastq raw파일로 3-4g정도의 파일을 single cpu로 처리하는데
2시간에서 2시간 반내외정도로 확인되었습니다. :)
지난번에 언급했던
NGS QC Toolkit을 사용해 봤습니다. :)
라이브러리와 perl 모듈을 잘 설치해주면
큰 문제없이 잘 돌아가는것을 확인했고
multi-thread로 실행하는 경우 음.. 빠르더라구요 ㅎㅎ
시간 체크는 못해봤는데...
지금 시간체크 하면서 돌리는게 있으니
정리해서 올리도록 하겠습니다. :)
1. 들어가기전
일단 시스템에 gd관련 라이브러리가 있는지 확인하시고
gd와 libgd-graph 등등 관련 라이브러리를 설치해주시기 바랍니다.
그리고 perl 모듈들이 모두 설치되어 있는지 확인해서 안되어 있다면
설치해주시면 되겠습니다.
gd라이브러리가 없으면 펄의 GD::Graph 설치할때 설치가 안되더군요;;
에러가 나서 몬가 하고 있었는데.. ㅎㅎ 여하튼...
모 이런저런 라이브러리와 모듈을 확인하시고 잘 설치하면
사용하는데 문제 없습니다. :)
2. 사용하기
NGQQCToolkit에는 크게 4가지의 서브 카테고리로 구분되어져 있더군요
1) 포맷 변경
2) QC
3) 자료 통계
4) Trimming
2.1 Format Convert
Fastq -> {454 | Fasta}: Fastq를 454(Fastq,Qual), Fasta 포맷으로 변환
{SangerFastq | SolexaFastq} -> IlluFastq: Sanger와 Solexa의 qual를 Illumina의 통일된 qual score range로 변환 (다만, 1.5+ 로 하는지 1.8+ 로 하는지는 확인 못했습니다.)
2.2 QC
454{QC|QC_PE|QC_PRLL}: 454 데이터를 input으로 하는 QC tools
Illumina와 다르게 QC_PE가 있는건 454의 경우 paired-end로 sequencing 하는 경우는 좀 특별해서 구분해둔듯.. :) (단, input은 SFF 포맷이 아닌 서열 파일과 Quality score파일로 구분해서 입력해야 사용가능하다.)
Ill{QC|QC_PRLL}: 일루미나 read를 처리하는 tools, 454와는 다르게 single-end와 paired-end를 따로 구분하지 않고 -se, -pe 옵션으로 처리하도록 만들어놨다는 점~ :)
PRLL 접미사는 병렬처리를 지원하는 스크립트입니다.
PRLL tools에서는 -c를 사용해서 multi-core를 사용하는데에 반해
일반 tools는 -p 옵션을 사용해도 multi-core를 사용하지 않는 점이 있었습니다.
2.3 Statistics
AvgQuality.pl: quality score 파일을 입력받아 점수를 계산하는 tool
N50Stat.pl: fasta파일을 input으로 받아 N50을 계산하는 tool
2.4 Trimming
AmbiguityFiltering.pl:
HomopolymerTrimming.pl:
TrimmingReads.pl:
결과로 제공되는 figure도 나름 괜찮습니다. :)
속도도 multi-core를 사용하던 안하던 만족할만한 수준이었습니다.
(제가 in-House로 제작한 script가 느린것도 있겠지만요.. ㅎㅎ )
자세한 사용법은 저보다 영어 못하시는 분은 없을테니 메뉴얼 보세요~ ㅎㅎ
>>메뉴얼보러가기<<
추가정보
paired-end fastq raw파일로 3-4g정도의 파일을 single cpu로 처리하는데
2시간에서 2시간 반내외정도로 확인되었습니다. :)
목요일, 10월 25, 2012
SFF 파일은 어떻게 작업을 해야하나...
아....
딱히 인연이 없던 454 파일을 작업할 기회가 생겨서..
다음과 같이 스크립트를 좀 작성했습니다.
454에서 제공하는 Data analysis를 이용하지 않아서 좀 거시기합니다.
(Homopolymer trimming은 제공하지 못하고 있습니다. ㅎㅎ)
convertsff.py
SFF파일을 fastq 혹은 fasta, qual 파일로 변환하는 스크립트
fastq로 변환하는 경우 illumina 1.3/1.5+ score로 변환 됩니다.
biopython이 설치되어 있어야 합니다.
SFF_Filter.py
illumina 데이터와는 일단 길이가 차이가 나니.... ㅎㅎ
filtering 스크립트를 간단히 만들었습니다.
cutoff base quality와 cutoff read length는 사용자가 설정 할 수 있게 하였습니다. :)
그리고 N의 포함 정도와 cutoff base quality 포함 정도는 고갱님의 의견을 반영하여
박하지 않게 설정해서 fixed시켜 놨습니다.
맘대로 수정하셔도 무방합니다. :)
다만 더 좋은 옵션이나 방법으로 업데이트 하셨다면 공유를 해주시면 더더욱 감사드리겠습니다.
데이터 변환 및 필터링이 끝나고 나면
QC를 해봐야 겠죠?
좀 간단히 결과를 이쁘게 그려주는게 어디 없을까 하고 있었는데
prinseq라는 프로그램이 있어 잠시 사용해봤습니다.
사용방법은 어렵지 않아요~ :)
Base Quality가 Phred +33인 경우
perl prinseq-lite.pl -verbose -fastq <input.fq> -graph_data <output.gd> -out_good null -out_bad null
Base Quality가 Phred +64인 경우
perl prinseq-lite.pl -verbose -fastq <input.fq> -graph_data <output.gd> -phred64 -out_good null -out_bad null
Quality Check 결과물을 Html로 확인하는 경우
perl prinseq-graphs.pl -i <output.gd> -html_all -o <output_name>
Quality Check 결과물을 png로 확인하는 경우
perl prinseq-graphs.pl -i <output.gd> -png_all -o <output_name>
추후에 시간이되면
Data analysis 프로그램을 설치해서 작업하는 단계나 방법에 대해서 설명하도록 하겠습니다. 그리고 추가적으로 NGS QC toolkit을 사용해서 QC하는 것도..
S대 L모군이 찾아논건데 괜찮아보여서 테스트 해볼까 합니다.
Illumina 외에 454도 지원하고 제일 매력적인건 multi-thread를 지원한다는것!!
모 여하튼...
다음기회에~ :)
딱히 인연이 없던 454 파일을 작업할 기회가 생겨서..
다음과 같이 스크립트를 좀 작성했습니다.
454에서 제공하는 Data analysis를 이용하지 않아서 좀 거시기합니다.
(Homopolymer trimming은 제공하지 못하고 있습니다. ㅎㅎ)
convertsff.py
SFF파일을 fastq 혹은 fasta, qual 파일로 변환하는 스크립트
fastq로 변환하는 경우 illumina 1.3/1.5+ score로 변환 됩니다.
biopython이 설치되어 있어야 합니다.
SFF_Filter.py
illumina 데이터와는 일단 길이가 차이가 나니.... ㅎㅎ
filtering 스크립트를 간단히 만들었습니다.
cutoff base quality와 cutoff read length는 사용자가 설정 할 수 있게 하였습니다. :)
그리고 N의 포함 정도와 cutoff base quality 포함 정도는 고갱님의 의견을 반영하여
박하지 않게 설정해서 fixed시켜 놨습니다.
맘대로 수정하셔도 무방합니다. :)
다만 더 좋은 옵션이나 방법으로 업데이트 하셨다면 공유를 해주시면 더더욱 감사드리겠습니다.
데이터 변환 및 필터링이 끝나고 나면
QC를 해봐야 겠죠?
좀 간단히 결과를 이쁘게 그려주는게 어디 없을까 하고 있었는데
prinseq라는 프로그램이 있어 잠시 사용해봤습니다.
사용방법은 어렵지 않아요~ :)
Base Quality가 Phred +33인 경우
perl prinseq-lite.pl -verbose -fastq <input.fq> -graph_data <output.gd> -out_good null -out_bad null
Base Quality가 Phred +64인 경우
perl prinseq-lite.pl -verbose -fastq <input.fq> -graph_data <output.gd> -phred64 -out_good null -out_bad null
Quality Check 결과물을 Html로 확인하는 경우
perl prinseq-graphs.pl -i <output.gd> -html_all -o <output_name>
Quality Check 결과물을 png로 확인하는 경우
perl prinseq-graphs.pl -i <output.gd> -png_all -o <output_name>
추후에 시간이되면
Data analysis 프로그램을 설치해서 작업하는 단계나 방법에 대해서 설명하도록 하겠습니다. 그리고 추가적으로 NGS QC toolkit을 사용해서 QC하는 것도..
S대 L모군이 찾아논건데 괜찮아보여서 테스트 해볼까 합니다.
Illumina 외에 454도 지원하고 제일 매력적인건 multi-thread를 지원한다는것!!
모 여하튼...
다음기회에~ :)
라벨:
454,
convert,
Data analysis,
FASTQ,
NGS QC toolkit,
prinseq,
Roche,
SFF
피드 구독하기:
글 (Atom)