bioinfo:itol에서_annotated_tree_만들기
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
bioinfo:itol에서_annotated_tree_만들기 [2023/08/11 17:50] – [트리 자료의 준비] hyjeong | bioinfo:itol에서_annotated_tree_만들기 [2023/08/17 09:06] (current) – [BSR matrix의 heatmap 표현] hyjeong | ||
---|---|---|---|
Line 68: | Line 68: | ||
... | ... | ||
- | labels.txt 파일을 만드는 방법은 비교적 쉽다. 실습용 zip 파일의 압축을 해제하였을 때 나오는 accessions.txt 파일을 ncbi-genome-download(' | + | labels.txt 파일을 만드는 방법은 비교적 쉽다. 실습용 zip 파일의 압축을 해제하였을 때 나오는 accessions.txt 파일을 ncbi-genome-download(' |
$ ncbi-genome-download -A accessions.txt -n bacteria | $ ncbi-genome-download -A accessions.txt -n bacteria | ||
- | 실제로 이 명령을 실행해 보면 accessions.txt에 수록된 51개 genome 중 50개에 대한 정보만이 반환될 것이다(2022-08-11 기준). 이는 [[https:// | + | 실제로 이 명령을 실행해 보면 accessions.txt에 수록된 51개 genome 중 50개에 대한 정보만이 반환될 것이다(2022-08-11 기준). 이는 [[https:// |
===== Heatmap 자료의 표현 ===== | ===== Heatmap 자료의 표현 ===== | ||
+ | Heamap 데이터셋에서는 각 노드에 연결된 복수의 수치 자료(필드, | ||
+ | |||
+ | 수치는 annotation file([[https:// | ||
+ | |||
+ | 앞 과정에서 만들었던 ANIm_modified_labels_sorted.csv를 heatmap으로 표현하는 방법을 알아보자. 컬럼/로 라벨은 전부 assembly accession(예: | ||
+ | |||
+ | # 이전 작업 내용을 지운다. | ||
+ | > rm(list=ls()) | ||
+ | | ||
+ | > ani = read.table(" | ||
+ | > data = read.table(" | ||
+ | > key = data[,1] | ||
+ | > names(key) = data[,2] | ||
+ | | ||
+ | # 만약 일부의 컬럼만 취하고 싶다면 해당되는 accession number를 수록한 벡터(key2)를 만들고 | ||
+ | # 컬럼 라벨을 바꾸기 전에 다음을 실행한다. | ||
+ | > key2 = c(" | ||
+ | | ||
+ | > ani.subset = ani[, | ||
+ | | ||
+ | # key2 벡터에 들어갈 값이 너무 많아서 별도의 텍스트 파일(data.txt)에 line-by-line | ||
+ | # 형태로 들어 있다면, 이를 읽어들여서 처리하면 된다. | ||
+ | # data.txt 파일이 multi-column file이라면 $V2, $V3..을 붙여넣어 지정한다. | ||
+ | > key2 = read.table(“data.txt”, | ||
+ | # 꼭 which(colnames() %in% ) 구문을 쓰지 않아도 된다. 다음과 같이 하면 | ||
+ | # key2 벡터에 출현하는 순서대로 컬럼 이름이 정렬되는 효과를 갖는다. | ||
+ | > ani.subset = ani[,key2] | ||
+ | | ||
+ | # key2의 순서에 맞게 컬럼을 정렬한다. | ||
+ | > ani.subset = ani.subset[, | ||
+ | | ||
+ | # column name substitution using named vector(" | ||
+ | > for (i in names(ani)) { | ||
+ | temp = names(key)[key==i] | ||
+ | names(ani)[names(ani)==i] = temp | ||
+ | } | ||
+ | | ||
+ | > for (i in names(ani.subset)) { | ||
+ | temp = names(key)[key==i] | ||
+ | names(ani.subset)[names(ani.subset)==i] = temp | ||
+ | } | ||
+ | | ||
+ | > write.table(ani," | ||
+ | > write.table(ani.subset," | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | 이상의 방법에서는 ANI 매트릭스를 미리 정렬해 두고 iTOL에서도 그대로 표현되게 하느라 상당히 공을 들였다. 행 단위의 정렬은 iTOL에 최초로 업로드한 트리 자료를 따르게 되므로, 여기에서 설명한 정렬이란 열(컬럼) 단위, 즉 수치화된 필드의 정렬을 의미한다. 그런데 열 단위의 정렬 정보를 별도의 트리 파일로 보유하고 있다면 이를 heatmap.txt 데이터 파일에 넣는 것으로 작업이 단순해진다(FIELD_TREE 항목). 단, 콤마가 섞인 newick format의 자료가 데이터 파일에 포함되므로 field separator는 콤마가 아닌 것으로 바꾸어야 하고, leaf label에는 괄호 등이 들어가지 않게 유의해야 한다. 또한 newick file의 leaf label은 field label과 같아야 한다. 다시 말해서 GCA_ 또는 GCF_(assembly accession)로 시작하는 파일명을 지닌 유전체 염기서열을 이용하여 ANI 매트릭스를 만들었고 이것으로부터 hierarchical clustering을 하여 newick file을 만들게 되면 당연히 assembly accession이 leaf label이 될 것이다. 그러나 iTOL annotated tree에서 heatmap 데이터의 필드를 assembly accession으로 표현하고 싶지는 않을 것이다. 따라서 accession-label.txt 파일을 참조하여 assembly accession을 균주명 등의 정보로 치환하는 것이 바람직하다. 그러나 괄호나 콜론 등 균주명에서는 허용될지라도 newick 파일에서는 특수한 용도로 쓰이는 문자는 다른 것으로 치환해야 하니 세심한 작업이 필요하다. | ||
+ | |||
+ | |||
+ | | ||
===== BSR matrix의 heatmap 표현 ===== | ===== BSR matrix의 heatmap 표현 ===== | ||
+ | LS-BSR에서 얻어진 마커 유전자에 대한 blast score ratio 매트릭스도 마찬가지 방법으로 정리하여 iTOL에서 heatmap 데이터셋으로 표현할 수 있다. LS-BSR의 설치 및 일반적인 사용 방법은 본 매뉴얼 내의 [[bioinfo: | ||
앞에서 설명한 ANI 매트릭스는 column/ | 앞에서 설명한 ANI 매트릭스는 column/ | ||
+ | > bsr = read.table(" | ||
+ | > bsr.t = t(bsr) | ||
+ | # 자료 구조 확인용 | ||
+ | > dim(bsr.t) | ||
+ | > View(bsr.t) | ||
+ | > row.names(bsr.t) = gsub(" | ||
+ | > write.table(bsr.t, | ||
+ | 컬럼으로 전환된 마커 유전자의 순서는 markers.fasta(or .pep) 파일에 있던 것과 달라질 수 있다. 아마도 LS-BSR 프로그램 내부에서 FASTA 파일의 서열 ID를 추출하여 문자열 기준으로 다시 정렬을 하는 것으로 보인다. 원래 상태로의 재정렬이 필요하다면 R 환경에서 하는 것이 좋을 것이다. 바로 위의 “Heatmap 자료의 표현” 항목에서 컬럼의 일부만을 추출하는 방법을 참고하기 바란다. | ||
+ |
bioinfo/itol에서_annotated_tree_만들기.1691743859.txt.gz · Last modified: by hyjeong