레이블이 Alignment인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Alignment인 게시물을 표시합니다. 모든 게시물 표시

목요일, 3월 07, 2024

나노포어용 정렬 프로그램을 비교해보자

오늘은 최근에 논란의 중심에 서 있는 claude3를 사용해보았습니다.

Comparative analysis of alignment tools for application on Nanopore sequencing data

이 논문을 선택한 이유는 claude.ai에서 무료로 해주는 양의 논문이라서 선택하였습니다.

 

Q. 요약해줘

이 논문에서는 나노포어 시퀀싱 데이터에 대한 6가지 다양한 정렬 도구(BLASR, GraphMap, LAST, minimap2, NGMLR 및 BWA MEM)의 성능과 정렬 품질을 실험 데이터셋을 사용하여 비교 분석했습니다. 주요 내용은 다음과 같습니다:

3개의 서로 다른 실험 나노포어 시퀀싱 데이터셋(람다 파지 전장 유전체, 인간 MEFV 유전자 암플리콘, SARS-CoV-2 전장 유전체)을 사용하여 정렬 도구를 비교했습니다.

각 도구의 CPU 시간, 메모리 사용량, 일치율, 불일치율, 오류율 등의 성능 및 품질 지표를 측정하고 비교했습니다.

Minimap2가 모든 데이터셋에서 속도와 메모리 효율성 면에서 가장 우수한 성능을 보였습니다.

BLASR, GraphMap, NGMLR는 상대적으로 느린 속도를 보였고, NGMLR는 높은 메모리 사용량을 보였습니다.

일치율, 불일치율, 오류율 측면에서 LAST를 제외한 도구들이 대체로 유사한 수준의 높은 정렬 품질을 보였습니다.

데이터셋 특성과 알고리즘 접근법에 따라 도구 간 차이가 있었으며, 실험 설계와 추가 분석 과정을 고려하여 적절한 도구를 선택해야 합니다.


Q. 그럼, 나노포어 왜 전용 정렬 도구가 필요합니까?

논문에 따르면 나노포어 시퀀싱 기술의 가장 큰 단점은 다른 시퀀싱 기술에 비해 높은 에러율(error rate)이라고 설명하고 있습니다. 구체적인 문장은 다음과 같습니다:

"So far, the most important disadvantage of this technology is the increased error rate compared to other sequencing technologies."

이처럼 나노포어 시퀀싱 데이터는 기존 단분자 시퀀싱 데이터와는 다른 에러 프로파일을 가지고 있어, 이러한 높은 에러율을 보완하기 위해 전용의 정렬 도구가 필요하다고 설명하고 있습니다.


Q. 좀더 자세히 설명해줘

네, 더 자세히 설명드리겠습니다.

나노포어 시퀀싱은 전기화학적 신호를 읽어 DNA/RNA 서열을 분석하는 새로운 기술입니다. 이 기술의 장점은 긴 읽기(long reads)가 가능하고 빠르며 비용이 저렴하다는 점입니다. 하지만 단점으로 다른 기존 시퀀싱 기술에 비해 상대적으로 높은 에러율을 가지고 있습니다.

이런 높은 에러율은 나노포어 시퀀싱 데이터의 고유한 에러 프로파일에서 비롯됩니다. 삽입(insertion), 삭제(deletion), 치환(substitution) 등의 에러가 많이 발생합니다. 이러한 에러들을 효과적으로 다루지 않으면 후속 데이터 분석 단계에서 오류가 커질 수 있습니다.

따라서 나노포어 시퀀싱 데이터를 정확하게 분석하기 위해서는 이러한 높은 에러율과 특수한 에러 프로파일을 잘 보완할 수 있는 전용 정렬(alignment) 도구가 필요합니다. 기존의 단분자 시퀀싱 데이터 분석용 도구들은 나노포어 데이터의 특성을 제대로 반영하지 못해 정확성이 낮을 수 있기 때문입니다.

요약하면, 나노포어 시퀀싱의 높은 에러율과 특수한 에러 프로파일을 보완하여 정확한 데이터 분석이 가능하도록 최적화된 전용 정렬 도구가 필요한 것입니다.


음.. 일단 무료 요금에서 사용하는 양인 경우 일단 쓸만한데 대부분의 논문 양은 유료버전 사용하시라고 뜰껍니다. :)



출처: @ye._.vely618


토요일, 6월 18, 2022

mummer4, 미처 알아보지 못했다

mummer는 서열 정열프로그램으로 꽤나 오래부터 사용되었던...
NGS시대에 접어들면서 일반적으로 사용되지는 않고...
Reference 제작할때 종종 쓰이는...

MUMmer이라고 보통 쓰는데... MUM의 의미가 "Maximal Unique Matches"라고.. 여기에 나와있었네요..

그리고 이번에 알았는데.. MUMmer는 당연히 target와 query는 fasta형식만 입력될줄 알았는데 input으로 fastq도 사용할 수 있다는..
당연히 fasta 형식으로 변경해서 사용하려고 했는데... 작동해서 잠깐 화장실좀 다녀왔다능..

input으로 fastq형식을 받을 수 있는 버전의 tools이 2018년도에 논문으로 출판되어 한번 들추어 보았습니다.

이름하여 MUMmer4: A fast and versatile genome alignment system

이전 MUMmer3 이후 데이터구조를 32bit에서 48bit로 증가시켜 이론적으로 비교가능한 크기가 141Tbp (다시 한번 화장실을 다녀오게 만드는.....)로 늘렸다는.. 근데 이거 141Tbp이 입력 파일이면 입력 파일 로딩하는데만 한세월 아닌가...

여튼..

MUMmer4 논문 작성 할때 언급해준 정렬 프로그램으로
그냥 생명정보학 분석한다고 할때 기본 옵션인 BWA/Bowtie,
PacBio 데이터 할때 사용하는 BLASR 들을 언급해 주셨는데
이제 fastq형식의 파일을 지원해서
reference vs reference 비교 프로그램이 NGS용 정렬 프로그램들에게 어깨를 나란히 할 수 있는 기회를...

mummer라고 하면 갱장한 legacy 프로그램이라고 생각할 수 있지만...
다방면으로 개선 시킨 mummer4를 하나하나 뜯어보면 갱장히 힙해졌다고 볼 수 있습니다.

NGS 시대에 다양하게 쏟아져 나오는 reference크기에 대응할 수 있도록 비교 사이즈의 증가(141Tb)되었고, 또한 긴 서열 작업시 메모리 문제가 발생할 것을 대비해서 긴 서열들을 자동으로 분할해서 작업해주는 --batch라는 옵션기능까지...

mummer4의 새로운 기능들이 갱장히 많아졌습니다.

reference 서열을 제작하는 de-novo assembly하시는 분들 외에도 다양한 작업시 사용할 수 있을것으로 생각되니 한번 기능들 구경해보시고 활용해보시기 바랍니다.


그런데... 사실 NGS 서열 정렬은 역시 여기가 맛집이긴 합니다.


ps. BLAST에서도 query파일을 fastq 형식을 받을 수 있다고 합니다. 이름하여 Magic-BLAST를 사용하시면되겠습니다. 속도는 잘 모르겠습니다. ㅎㅎ 


@ye._.vely618



 

화요일, 2월 04, 2020

2019-nCoV Tree 그려보기 -2-

2019-nCoV Tree 그려보기 1편에서 어라?
실망하셨던분들을 위해 준비한 2편 되겠습니다.

일단 일전에 말씀드린것과 같이 NCBI 홈페이지가서 다음과 같이 genbank파일을 입맛에 맞게 받으시면 되겠습니다.

refseq말고 다 받고 싶으시면 다 받으셔도 되요.



[Create File] 버튼을 클릭하시면 sequences.gb? 라는 파일로 다운로드가 될것입니다.
(사실 fasta파일로 받으셔도 상관은 없는데... genbank파일로 받으시는게 나중에 더 많은 일을 하실 수가 있으십니다.)

(20년 2월 3일 기준 coronavirus nucleotide 서열 다받으니 대략 300M정도 나왔습니다.)

그럼 이 파일가지고 어쩌라고?
라떼는 fasta파일 가지고.. 어? 마? 그랬는데?
그래서 준비했습니다. gb파일을 fasta파일로 만들어주는 바로그 스크립트!

import os,sys
from Bio import SeqIO
inFile = 'sequences.gb'
for rec in SeqIO.parse(inFile, "genbank"):
seq_id = rec.id
seq_name = rec.name
seq_desc = rec.description
seq_seq = rec.seq
print '>{}|{}\n{}'.format(seq_name,seq_desc,seq_seq)

이렇게 하면 다운바은 sequences.gb파일의 nucleotide 전체 서열을 fasta파일로 만들어주게 됩니다. 만약 나는 다 필요없는데... 하시는 분은
print 전에 if문 넣어서 특정 seq_name의 서열들만 혹은 seq_desc안에 특정 문자열.. 예를 들어 wuhan과 같은 내용이 있는 서열들만 선별해서 fasta파일로 만들 수 있습니다.
참 쉽죠?

그럼 다음 이시간에는 MEGA-X를 사용하는 방법을 얘기해보도록 하겠습니다. 제발~







출처: @sana_twice.09

일요일, 2월 02, 2020

2019-nCoV Tree 그려보기 -1-

2020년 정월 초하루가 얼마 지나지 않은 나날 동안 한중일이 아닌 전세계가 코로나 바이러스 때문에 홍역을 치르고 있습니다.

초기 방역로 이렇게 급속도로 전세계로 퍼져나가 감염자 및 사망자가 증가하고 있는 가운데 이 짧은 기간 동안에 다양한 연구 결과들이 나오고 있는데...

신종코로나 바이러스 논문들을 보고 있노라면 정렬을 왜그리 해대는지 그리고 무슨 나무를 왜그렇게 그려대는 걸까? 라는 궁금증을 가지시는 분들이 있을 것이라고 생각해서 그런게 무엇인지 그리고 나는 그려볼 수 없는지 하시는 분들을 위해서 MEGA를 이용한 corona virus phylogenetic tree를 한번 그려보고자 합니다.

이거대로 따로하면 당신도 tree 전문가(는 아니고 그냥 tree draw skill +1)

연구자들이 NCBI에 서열들이 올라와 있다고 얘기를 하고 서열들을 서로 비교한다는데
그럼 NCBI는 어떻게 접속하고 서열들은 어떻게 받지?

NCBI는 구글에 물어봐도 되고 네이버에 물어봐도 됩니다.
https://www.ncbi.nlm.nih.gov/


여기에 그냥 검색하듯 coronavirus를 검색하면 다음과 같이 나오는데..


이걸 어떻게 받나?
하나하나 집념으로 다운받으셔도 되고요...

다음과 같은 방법도 있습니다.



아까의 화면에서 Viruses, genomic, RefSeq 항목을 클릭해주면 해당 항목을 만족하는 서열들만 선택이 됩니다.

그리고 오른쪽 상단에 있는 Send to: 라는 항목을 클릭하면...!!
다음 이미지에 나와 있는것처럼 다운 받으시면 되겠습니다.



다운로드한 genbank파일을 parsing해서 비교해보고 싶은 부위의 서열을 득해서
MEGA라는 프로그램을 다음 url(https://www.megasoftware.net/)에서 다운로드 받아 설치한 후 입력한후 서열 정렬 및 Tree 작업을 해주면...

요렇게 이뿌게 Tree를 만들어 줍니다.

이렇게 포스팅을 끝내면 저게 모야? 라고 쌍욕을 날리실겁니다!

그래서 Tree 그릴때 필요한 서열을 수집하는 작업과 관련 스크립트에 대해서도 자세히 적어보는 글은 조만간 투척하도록 하겠습니다. :)



출처: @sana_twice.09

화요일, 5월 08, 2012

MEGA5 Usage


오늘은 간단히 MEGA (Molecular Evolutionary Genetics Analysis) 사용법 중
Multi Fasta Sequence가지고 Alignment하고 Phylogenetic tree를 그리는 것에 대해서 
간단히 알아보도록 하자. :)

MEGA 사이트에서 알아서 개인정보를 팔아서 다운로드를 받던지 주위에 이미 받아논
지인에게 달라고 해서 얻기를 바란다. 
일단 설치 후 실행 시키면 다음과 같은 화면을 접할 수 있다.




Alignment하고 싶은 파일을 Open하도록 하자.


위의 [Open A File/Session ...]을 클릭하게 되면 다음과 창이 뜨게되며 알맞은 파일을 선택하면 된다.



알맞은 파일을 선택 한 후 [열기]를 선택하면 다음과 같은 창이 뜨게 되는데 당황하지 말고 걍 [Align] 버튼을 클릭하면된다. :)


[Align]버튼을 클릭하면 다음과 같이 보여지게 된다.


이제 Align을 해보도록 하자. Alignment 프로그램 중에 Clustalw를 사용하도록 하자.
다음과 같은 [Alignment] -> [Align by ClustalW]를 클릭하면 된다.


만약 서열들을 선택해주지 않았다면 다음과 같은 경고창이 보이게 된다. 이때에는 [OK] 버튼을 클릭하면 된다.


이제 ClustalW를 실행시키기 위한 Parameter를 설정하게 되는데 사실 건드릴 일이 그렇게 있을까? 필요하면 기호에 맞게 수정해서 사용하시길...
Protein Weight Matrix만 잘 사용하면 크게 문제가 없을 것으로 보인다.


Parameter설정 후 [OK] 버튼을 클릭하면 다음과 같이 Alignment를 수행하게 된다.
단, 서열이 많을 수록 소요 시간은 기하급수적으로 늘어난다는 점만 주의하시길..


Alignment가 완료되면 다음과 같이 Align된 결과가 보여지게 된다.


MEGA에서는 MEGA만의 저장 format를 지원하는데 Alignment된 결과를 포함하여 저장하기 때문에 naming rule을 잘 정의해서 사용하면 동일한작업을 두번 할 필요가 없게 된다.
아래 그림은 Alignment 결과를 저장하는 MEGA Aln 포맷은 mas로 저장하는 그림이다.



Alignment를 하였다면 대게 Phylogenetic tree까지 그리고자 할 것이다.
그리기 위해서는 mas파일이 아닌 MEGA Format 파일이 필요하다. 이것은 Alignment를 수행 한 창에서 [Data] -> [Export Alignment] -> [MEGA Format]를 클릭하면  MEGA 포맷으로 저장할 수 있다.




드디어 Phylogenetic tree그리는 시간이다. :)
MEGA Main 화면에서 [Analysis] -> [Phylogeny] 선택 후 기호에 맞는, 상황에 맞는 방법을 선택하여 Tree를 생성하면된다. :)


위의 순서대로 Method를 선택 한 후 MEGA format의 파일을 열면 다음과 같은 Parameter 설정 창이 보이게 되된다. 여기서도 본인 분석에 맞게 설정하여 작업하면 트리가 나오게 된다.

그럼,
Good Luck. :)