FAST{A/Q} 파일을 조작(그 조작말고요 고갱님~ ㅎㅎ)을
보다 수월하게 하는 명령어들을 모아놓은 아주 좋은 패키지 입니다.
(사실 전 몇개 안쓰지만요;;; 잇힝~ )
그러나 지금은 이 툴보다 좋은 프로그램들이 많이나와 있는 상태인데..
그래도 끄적 끄적... ㅎㅎ
혹시 다른 페이지들이 폐쇄되는걸 대비해서
백업용으로.....
fasta tool에서 fastx_quality_stats를 사용할 때 quality score관련한 error 메세지를 볼 수 있는데 이것은 fasta tool kit이 phred기준 +64를 좋아해서 그런다는...
그래서 fastx_quality_stats -i input.fastq -N -Q 33 -o quality.txt
이렇게 하면 된다고 이곳에 나와 있었습니다.
출처: shengliblog
수요일, 1월 30, 2013
화요일, 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시간 반내외정도로 확인되었습니다. :)
금요일, 1월 25, 2013
의학데이터를 공유하자
의학데이터를 공유하자는 용자 John
자발적 참여로 데이터를 수집하는 사이트 WeConsent
John의 설문조사 결과로는
사람은 기회와 선택이 주어지면 나누려고 한다고 한다.
공유할 데이터는 꼭 거창해야만 하는 건 아니다.
헌혈하면 배달되는 피검사 수치도 가능한듯 보이는데...
나중에 한번 올려볼까한다. :)
강연중 언급한 Sage Bionetworks
월요일, 1월 07, 2013
swap를 설정해야 하는가 말아야 하는가
IBM: swap 활용하기
김용환 블로그: SWAP 메모리
사실 집에서 쓰는 간단한 파일 서버나 데탑에서는
크게 신경 안쓰는 부분인데 서버 작업을 하게 될때는
신경을 안쓸 수 가 없다는.....
집에서 쓰는거야 램이 16G니 대충 다른 HDD에 4G만 잡아주고 쓰고 있고
개인서버인 경우는 RAM이 4G니 CPU core(x2) 곱하기 메모리 용량해서
하드에 swap잡으면 8G면 충분하다(HDD가 죄다 500G, 1T니.. ㅎㅎ).
그런데 서버로 오면
메모리 용량이 24G, 32G, 192G에
CPU core는 2, 8, 24개....
극악의 조건이라면 swap을 full로 잡는다면 4T라는;;;;
근데 사실 swap을 다 쓴다는건 서버의 문제라기 보다는
서버를 운영하는 관리자에게 책임이 더 있지 않나하다.
메모리를 다쓰고 swap까지 쓰는 동안 무엇을 했는지 그것도 계산 못하고
작업을 돌리고 있는가...
근래 많이 접하는 서버들이
고성능 CPU에 대용량 RAM, 그리고 SSD 시스템 하드에 HDD 12개 이상의 RAID인데,
어디다가 swap를 잡을것인가....
SSD에 잡기에는 OS설치하고 패키지 설치하기 빠듯한데...
(물론 256G이상의 조금 넉넉한 SSD라면 크게 상관없을듯)
그리고 RAID하드, RAID에 왜 swap을....;;;;
case에 HDD 공간이 남는다면 single하드를 꼽아서 swap를 잡는걸 한번 권유해보고 싶고
넉넉한 SSD라면 자그만하게 잡아주면 좋지 않을까 하다.
사실 지금 어느 서버 한대는 swap없이 운영중인것으로 기억하는데
아직 3개월 지났는데 메모리 문제로 다운되서 작업 못한 적은 없다는..
사용할 메모리 계산만 잘 해서 쓰면 swap따위... ㅎㅎ
계산용 서버라면 이렇지만
web이나 db서비스를 하는 경우라면 조금이라도 swap을 잡는게 좋을듯...
언제 어떻게 본인도 모르게 부하가 걸릴지도 모르니...
서비스용 시스템에서 하드웨어 스펙의 넉넉함의 미덕은
24x7x365 강조해도 모자람이 없는것 정도?? ㅎㅎ
swap한번 걸리면 그냥 대책없이 느려진다는..
메모리를 더 꼽거나 업그레이드를 시키는것이
모든 면에서 합리적이고, 효율적이다.
결론 swap은 당신이 속해있는 시스템 관리자의 능력에 맡기는 수 밖에 없는듯.. :)
MySQL에서 LIMIT 속도 저하 피하기
출처: 아이군의 블로그
위의 블로그에서 LIMIT에 대해서 이해하기 쉽게 설명해 놓으셔서
스리슬적~ :)
Query 1.
SELECT * FROM TABLE LIMIT 10000000, 50000;
(Table에서 천만개 데이터 이후의 5만개 데이터를 가져오는 쿼리)
Query 2.
SELECT * FROM TABLE WHERE id > 10000000 LIMIT 50000;
(Table에서 id가 천만번보다 큰 행으로 이동 한 후 5만개를 가져오는 쿼리)
Query 1과 Query 2의 차이점은 index를 사용하는 것과 하지 않는 것!!
(query 문 앞에 explain을 추가하여 실행시키면 확인 할 수 있습니다.)
그래서 처리 속도에서 엄청난 차이가 났다는 것입죠
LIMIT를 사용하더라도 영리하게 사용하자는 내용이었습니다. :)
MySQL 안다뤄본지 오래돼서..... ;;
토요일, 1월 05, 2013
리눅스에서 파일 찾는 locate
리눅스에서 파일 찾는 명령어로
find를 많이 사용할 것이다.
그러나 find보다 사용하기 쉬운 (본인 기준으로...) 명령어가 있다.
locate
find와 같이 파일을 찾는 명령어이나 find와 달리 DB를 이용하여 파일 찾기 때문에 속도가 WARP~
사용방법은 간단하다.
> locate <파일 이름>
자세한 사용 방법은 man이나 help를 이용하기를 :)
> locate -n 5 <파일 이름>
은 결과물을 5개 까지만 보여주는 옵션이다.
대신 위에서 언급한 것과 같이 DB를 검색하는 것이므로 DB를 주기적으로 update해주어야 하며 그에 사용되는 명령어는 updatedb 이다.
서버 셋팅 후 매시간 혹인 매일 주기적으러 갱신되도록 cron에 등록하면 편리하다.
피드 구독하기:
글 (Atom)