A Fine-Tuned Universe

Roary (Pan-genome pipeline) 관련 메모 본문

Bioinformatics

Roary (Pan-genome pipeline) 관련 메모

정재준 2023. 1. 3. 21:15
728x90

Bioinformatics를 잘 하시는 분들은 스크립트로 여러가지 일을 뚝딱뚝딱 하시겠지만

많은 생물학 기반의 연구자와 대학원생들은 갑자기 유전체나 시퀀스 분석을 해야하는 상황을 만나면 당황할 수 밖에 없다.

많은 bioinformatics tool이 리눅스에서 돌아가는데 리눅스도 모르고 설치하는 것도 잘 모르겠고 각종 프로그래밍 언어도 모르고...

 

아무것도 모르는 상태에서 배워가면서 사용하면서 부딪히는 문제들을 두서없이 메모해서 업데이트하고 있다.

나 같은 사람이 또 있다면 도움이 되길...

 

Official Roary sites

https://sanger-pathogens.github.io/Roary/

https://github.com/microgenomics/tutorials/blob/master/pangenome.md

 

수준높은 유저를 위한 내용...

https://genoglobe.com/kribb/bioinfo/roary#%EC%83%98%ED%94%8C_%ED%8C%8C%EC%9D%BC_%EC%A4%80%EB%B9%84

 

아래는 NCBI genome download 에 대한 내용

https://www.ncbi.nlm.nih.gov/genome/doc/ftpfaq/

1. Input 파일 준비

Roary는 gff3를 input file로 이용한다.

Genome annotation을 prokka로 진행했을 경우 여기서 생성되는 gff 파일을 그래도 사용하면 되지만 

NCBI GenBank FTP 에서 다운로드 받은 gff은 그대로 사용할 수 없다.

왜냐하면 roary가 사용하는 gff3 파일은 마지막에 nucleotide fasta가 있어야하는데

NCBI FTP의 gff 파일에는 nucleotide fasta가 없기 때문이다.

 

나는 NCBI Assembly에서 분석하려는 strain을 검색하고

GenBank FTP 디렉토리로 들어가서 gff 파일과 fna 파일을 클릭해서 다운로드 받았다

(지금은 40여개 유전체를 분석하고 있어서 손으로 가능한 수준이다. 하지만 더 많은 유전체를 다루어야 한다면 공부를 좀 해야할 것 같다.)

 

그리고 roary에서 input으로 사용하기 위해서는 위에서 다운로드 받은 gff의 내용 맨 마지막에 ##FASTA 라는 문구가 들어가고 그 다음에 fna 파일의 내용이 하나로 합쳐져야 한다.

 

순서를 생각해보면

파일다운로드 (수동으로)

-> 압축풀기

-> gff 파일, ##FASTA 문구, fna 파일 합치기

-> (option) 원본파일지우기, 합친 파일을 별도의 폴더에 옮기기

이렇게 되겠다.

 

윈도의 명령프롬프트(cmd)에서 batch 파일을 만들고 위 작업을 한 번에 처리하고자 하였다

배치 파일 내용은 아래와 같다.

미리 준비해야 할 것은 1) 반디집 설치해놓기 2) fasta.txt 만들어 놓기 3) input 폴더 만들어 놓기

세 가지 이다.

fasta.txt 파일 내용은 아래와 같다.

##FASTA

배치 파일 내용은 아래와 같다.

@echo off
set /p strain=Type the strain name:
bz x *.gz
type GCA*.gff fasta.txt GCA*.fna>%strain%.gff
move %strain%.gff input
del *.gz
del *.gff
del *.fna
set strain=

위의 내용을 메모장에 붙여넣고 확장자를 bat로 하고 시퀀스 압축 파일이 있는 폴더에서 실행시키면 된다.

탐색기에서 클릭해도 되고 커맨드라인에서 배치파일 이름을 쳐도 된다.

 

주의 사항은 gff 파일 하나 fna 파일 하나를 다운로드 받고 나서 batch 파일을 실행시켜야 한다는 사실...

내 실력이 나아지면 여러 개의 파일을 한 번에 하는 방법을 만들어보겠지만 지금 내 수준에서는 이 batch 파일 만든 것만 해도 나름의 성과다.

 

리눅스 이용이 가능하신 분은 cat 명령어로 파일을 합쳐주어도 된다

먼저 fasta.txt 라는 파일을 만들고

##FASTA

라는 내용의 fasta.txt (이름은 상관없다) 를 만들어준다

cat filename.gff fasta.txt filename.fna > filename.gff

로 세 개 파일을 합쳐준다

 

이것저것 다 모르겠으면 직접 메모장에서 파일을 열고 손으로 합치셔도 된다.

 

2. Roary 수행

명령어는 아래와 같다

roary --f ./ -e -n -i 50 -p 64 *.gff

-i 에서 숫자는 원하는 identity로 조절

-p 에서 thread 수 입력

 

 

 

Roary 결과를 visualization

http://sepsis-omics.github.io/tutorials/modules/roary-galaxy/

 

LIST