화요일, 11월 29, 2016

QIIME2

QIIME2 출시(된지는 한달여정도... 지났지만..)

설치만 해두려고 qiime2 설치하다가 환경 설정이 꼬였는지
쓰고있던 qiime 1이 작동안해서 멘붕이 왔다는건 비밀;;; 빼고는
아직까지는 호감인 녀석!

여튼 이번 qiime2 출시하면서 변화를 준게 완전히 qiime 플랫폼을 만든듯..
통상적으로 사용하였던 파일 포맷이 아닌 아예 새롭게
qza/qzv를 만들어서 사용한다는... 음..
qiime2를 설치하지않은 사용자들을 위한 qza/qzv view사이트까지
(모하자는거지... 유료화로 바꿀건가)

그리고 CLI기반이 아닌 q2studio라는 GUI 인터페이스를 제공한다는
기쁜소식!! (인지 아닌지는 까봐야..)
GUI는 자동화하기 귀찮은데... 제길..

qiime1보다 report가 얼마나 세련되졌는 확인할 필요가 있고
그에 따라 유료화를 점쳐볼수도...
그러므로 나는 일단 소스 다운로드;;;;


수요일, 11월 02, 2016

16S rRNA Variable regions



Variable regions of the 16S ribosomal RNA.
출처: Nat Rev Microbiol. 2014 Sep;12(9):635-45. doi: 10.1038/nrmicro3330.

화요일, 10월 25, 2016

PacBio SMRT Portal 설치


우선 서버사양은 Dell Workstation인데
CPU대비 메모리가 풍족해서 아직 메모리로 문제가 된적은 없는
Ubuntu 16.04.1 LTS 로 생정보하는데 필요한 프로그램이 설치되어 있고
관련 라이브러리가 설치된 조건하에서
SMRT Portal 설치를 시도하였고 전혀 Error없이 설치!! :)

SMRT Analysis Download 페이지에서 하단의 run 파일 두개 다운로드
무조건 2개 모두 다운로드!!

설치필수파일: smrtanalysis_2.3.0.140936.run
패치파일: smrtanalysis-patch_2.3.0.140936.p5.run

다운로드 후에
smrtanalysis 유저와 동일한 이름의 유저그룹도 생성한 후 설치 진행하시면되겠습니다.

$su -l smrtanalysis
$bash smrtanalysis_2.3.0.140936.run -p smrtanalysis-patch_2.3.0.140936.p4.run --rootdir
 /path/to/smrtanalysis

설치에 필요한 프로그램들 번들로 설치하고 기존에 mysql 서버 사용중이라도 영향을 미치지않게 포트도 별도로 사용합니다. tomcat의 경우는 기존에 설치되어 있는 서비스가 있다면 영향을 미칠지 명확하지는 않습니다.(아마 포트를 변경해서 영향이 최소화되도록 진행될것 같습니다.)

설치 후 localhost가 아닌경우 방화벽 포트 열어주시면 웹페이지로 접속하여
멋있는 SMRT portal home 화면을 보실수 있으실겁니다. :)
ufw allow [설치할때 보였던 port들]

참고문헌 [Installation SMRT Portal]

금요일, 10월 07, 2016

rRNA database 간단 비교

근래 microbiome데이터를 다루면서
16s rRNA db 사용에 대해서 확인을 하고자
데이터가 꽤나 많은 그리고 non-academic의 경우 fee도 지불하는 silva를 qiime의 default db인 greengene과 한번 비교를 해봤습니다.

rdp말고 왜 silva를 비교했느냐?
rdp는 qiime에서 사용가능한 format으로 데이터를 제공안해서
그냥 테스트로 하는건데 format 변환하는거마저 신경을 쓰기에는
좀 귀찮아서 qiime용 format을 제공하는 silva를 사용하였습니다.

모 별거 없습니다. ㅋ

GreenGeneSilva 119Silva 123
Kindom
2
3
3
Phylum
90
95
113
Class
249
480
602
Order
405
1,468
1,686
Family
514
3,123
3,670
Genus
1,816
8,056
9,835
Species
1,651
31,337
42,974
Sum
99,322
173,838
251,764

위의 GreenGene는 qiime 설치시 함께 따라오는 기본 파일을 사용했고, silva는 silva측에서 qiime format으로 제공하는 데이터중 SSU 파일입니다.
리눅스에서 cut 명령어로 -d, -f 옵션을 사용해서 unique한것을 세어본것입니다.

GreenGene과 silva의 차이점은 GG는 archaea, bacteria만 있고, silva는 Eukaryota가 함께 있다는.. silva는 엄연히 따지자면 16s/18s를 모아놓은 것으로 생각하시면되겠습니다. :)

그리고 마지막에 Sum의 의미는 이 rRNA db를 이루는 classified/unclassified 되는 species(?)의 unique 개수입니다.
이 unique 개수가 많으면 좋을 것 같은 느낌이 본능적으로 딱 오죠?

근데 말입니다.

숫자가 크다고 다 좋은것일까요?

GG와 silva에서 큰 차이점이 GG의 경우 unclassified로 분류되는 항목은 딱 하나씩 포함되어 있습니다. (그 이유는 숙제~!!)
대신 silva에는 unclassified와 같은 부류인 아직 의미가 없는 즉 정보가 없는 항목들이 다수 포함되어 있다는것입니다. unclassified, uncultured, unknow....

무엇이 우월하다 좋다 말하기는 어렵습니다.
분석 툴에 따라 궁합이 맞는 db가 존재하기 마련이고 또 목적에 따라 db는 변화해야하기에
GG는 더 curation을 했으니 좋은것이다 혹은 silva가 더 seq정보가 많으니 좋은거다라는
것은 지양하고 결국 각자가 알아서 잘 사용하면 된다능.. :)

seqtk

Site: seqtk

최근에 접한 fasta/fastq파일 핸들링 툴로 
가벼움과 사용이 쉬운것에 무한한 감사를...

사이트를 방문하시면 나와있듯이

$git clone https://github.com/lh3/seqtk.git
$cd seqtk
$make

하면 설치가 성공!! 이제 당신은 seqtk 마스터!!

잘쓰세요~ :)

ps. 전 subsampling하느라 사용했다능.. :)

월요일, 8월 08, 2016

16S rRNA Workflow

요즘하는게 요 16S rRNA작업인데
workflow와 해당 작업에서 사용할만한 tool을 잘 정리한글이 있어서..

H3abionet.org

덤으로 GOBLET이라는 사이트가 있는것도 알게 되었네요..
GOBLET이 뭔지 궁금해요?
그럼 링크에 들어가시면됩니다. :)

토요일, 6월 25, 2016

pie charts 어디까지 그려봤니? Krona

요즘 논문 낼때 고퀄의 figure들은 이제 당연한시대에 살고 있는데
나도 그런 고퀄 figure만들어보고 싶은데 잘 안된다.
네 저도 힘듭니다. 근데 다들 하니 저도 하는거죠
그 중에 독보적인 것은 circos이죠 ㅋ
그리고 pie chart를 좀 이쁘게 그리고 싶을때 사용하는것이 이것
Krona (OMIC-TOOLS에도 소개 되고있습니다.) 되겠습니다.

설치는 모 그닥 어렵지 않습니다.

Krona github가셔서 다운로드 받고 압축풀면 그걸로 끝입니다.
다만 Krona의 경우 metagenomic의 visualization을 위해서 만들어져 있는 관계로

taxonomy정보를 만들어줘야 합니다.
물론 Krona에서 해당 작업을 해주는 스크립트가 존재하니 걱정하지 마시기 바랍니다.
거기다 taxonomy 정보는 unique하고 찾기 힘든 data가 아닌 ncbi taxonomy정보입니다. 걱정마세요 :)

사용법은 제가 BLAST output을 사용한 pie charts 밖에 그려보지 않아서
Krona중에 ktImportBLAST밖에 사용해보지 못해서 말씀드릴게 별로 없네요 ㅎㅎ
-설명서를 잘 보시면 EC 카테고리별로도 pie chart를 작성할수도 있습니다.


다음은 제가 그냥 편할려고 만든 bash입니다.
#!/bin/bash

BLASTN=/path/to/ncbi-blast-plus/bin/blastn
KRONA=/path/to/Krona/bin/ktImportBLAST

ARGS=2

if [ $# -eq "$ARGS" ];
then

        $BLASTN -query $1 -db blast_database -outfmt 6 -num_threads 8 -evalue 1e-5 -out $2.outfmt6.blastn
        $KRONA -o $2.html $2.outfmt6.blastn
else
        echo "krona_BLAST.sh query.fa prefix_name"

fi
exit 0

화요일, 6월 21, 2016

snpEff에서 사용하는 genome annotation은 어떻게 추가할 수 있는가?

snp annotation에 빈번히 사용되는
snpEff (snpSift는 난 모르겠고)

snpEff에서도 나름 최신의 genome 정보를 제공하고 있지만
내가 de novo진행한것은?? (제가 곰팽이 de novo들을 많이하다보니.. ㅋㅋ)
어떻하라는 말인가...

고갱님 genome과 gene정보를 NCBI에 등록하고 NCBI gff가 공개되서 snpEff팀에서 지원해주는 시점에 사용하시면 됩니다.

근데 우리 고갱님들 그때까지 기다리시면 암걸리시죠?

그래서 간단한 가내수공업만 할 줄 아시면 곧바로 작업 가능합니다.

일단 위에 소개된 snpEff 사이트에서 snpEff 다운받으시고
압축푸시면 되겠습니다.

그리고 이번에 새로 조립하신 complete든 draft든 genome의 서열과 gff(version 2/3 택일)파일을 /path/to/snpEff/data/ 폴더 밑에 genome 이름으로 폴더 만드시고 그 밑에 복사하시면 되겠습니다. 대신 genome과 gff파일 이름은 genes.gff, sequences.fa로 바꿔주시는 센스!!

ex) 새로 조립한 genome이름이 Lee girwon이라면 Lee_girwon이라고 만드시고 그 밑에 파일을 복사해주시면 되겠습니다.

그리고 추가적으로 하나더 해야 하는 작업은 snpEff.config파일 수정
/path/to/snpEff/snpEff.config파일 끝에 새롭게 추가할 genome을 추가해 줍니다.

ex) vi snpEff.config
Lee_girwon.genome : Lee_girwon
--다음 라인은 선택사항 입니다.--
[TAB]Lee_girwon.chromosomes : AAA0001.1, AAA0002.1
[TAB]Lee_girwon.AAA0001.1.codonTable : Standard
[TAB]Lee_girwon.AAA0002.1.codonTable : Invertebrate_Mitochondrial

자 snpEff.config에 필요한 정보를 추가하였다면 이제는 database를 만들어주는 시간입니다.

java -jar /path/to/snpEff/snpEff.jar build -gff3 -v Lee_girwon

하시면 snpEff database가 뚝딱 만들어 집니다.

참 쉽죠?

위에 까만글씨로 욕은 아닌데 욕먹은 느낌이 나서 귀찮다?
그럼 작업가능한 서버계정과 흡족 할 사례비주시면 대행해드립 ㅋㅋ

토요일, 4월 30, 2016

CUTADAPT 사용설명서

cutadapt는 현재 1.9.1이 최신판으로

cutadapt guide에 설치에서부터 사용법
A to Z까지 너무나도 자세히 잘  소개되어 있습니다.
2011년에 논문도 있고

여튼..

cutadapt --help하시면 잘나오고
URL을 보시면 옵션에 따라 어느 위치의 adapter를 제거해주는지
어떤 방식으로 제거해 주는지 잘 나와있습니다.

-a,-g,-b 옵션이 adapter를 확인하고 remove하는 위치를 선정하는 중요한 옵션입니다.

single-end인 경우에는 cutadapt 사용시 큰 문제는 없지만
paired-end인 경우 cutadapt 사용시 다음과 같이 사용해야 합니다.

$cutadapt -a adapt_seq -A adapt_seq -o out_1.fq -p out_2.fq in_1.fq in_2.fq
-g, -b를 paired-end에서 사용하려면 -g -G, -b -B를 사용하시면됩니다.
-u는 일정한 길이로 cutting하는 옵션인데 second에서도 적용되게 하려면 -U를 사용하시면된다고 합니다.

일요일, 4월 24, 2016

SQLite3에서 import/export 하기

SQLite3를 사용할때 csv로 import, export하는 방법에 대해서
알아보겠습니다.

이게 왜 필요한거냐구요?
저한테 필요한거라서 포스팅하는겁니다.
그리고 알아두시면 쓸일이 있을지 누가 아나요? :)

csv를 특정 테이블에 import하기

#sqlite3 <database>
sqlite> .headers on
sqlite> .separator ","
sqlite> .import <in.csv> <table.name>
이때 in.csv는 쉼표 구분자로 되어 있어야 합니다.
다른 구분자로 되어 있으면 아마 제대로 import가 되지 않겠죠? :)

특정 테이블을 csv로 export하기

#sqlite3 <database>
sqlite> .headers on
sqlite> .mode csv
sqlite> .output <output.txt>
sqlite> select * from <table.name>;
이때 output.txt는 export할때 내용을 받는 파일 이름입니다.
그리고 tab구분자를 사용하려면 아마 .mode tabs 하시면될겁니다.

그리고 sqlite3 데이터베이스안에서 작업하지 않고 다음과 같이 명령어 한줄로도 끝낼수 있습니다.

sqlite3 -header -separator " " ./home/data.db "select * from table;" > out.txt      
sqlite3 -header -separator "," ./home/data.db "select * from table;" > out.txt        
sqlite3 -header -separator quot;\t" ./home/data.db "select * from table;" > out.txt 


모 그렇다고 합니다. :)