Gene id conversion in R
library(biomaRt)
위의 코드는 df$Geneid에 ensembl geneid가 있는 상태에서 매칭되는 hgnc_symbol을 가져와 g_list에 저장한 것이다.
useDataset에서 "hsapiens"를 다른 종으로 바꿀 수 있으며
getBM에서 attributes를 hgnc_symbol이 아니라 다른정보 (enterzgene, refseq_mrna, interpro, interpro_description 등)으로 바꾸면 해당 정보를 가져올 수 있다.
물론 아래처럼 사용하여 동시에 가져올 수도 있다.
ipro = getBM(attributes=c("refseq_mrna","interpro","interpro_description"), filters="refseq_mrna", values=refseqids, mart=mart)
## refseq_mrna interpro interpro_description ## 1 NM_000546 IPR002117 p53 tumour suppressor family ## 2 NM_000546 IPR008967 p53-like transcription factor, DNA-binding ## 3 NM_000546 IPR010991 p53, tetramerisation domain ## 4 NM_000546 IPR011615 p53, DNA-binding domain ## 5 NM_000546 IPR012346 p53/RUNT-type transcription factor, DNA-binding domain superfamily
어떤 정보를 가져올 수 있는지는 위의 users guide를 참조하기 바란다.
listAttributes(mart)를 입력하면 사용한 데이터셋에 대한 가능한 attributes가 나온다.
> head(listAttributes(mart),10)
name description page
1 ensembl_gene_id Gene stable ID feature_page
2 ensembl_gene_id_version Gene stable ID version feature_page
3 ensembl_transcript_id Transcript stable ID feature_page
4 ensembl_transcript_id_version Transcript stable ID version feature_page
5 ensembl_peptide_id Protein stable ID feature_page
6 ensembl_peptide_id_version Protein stable ID version feature_page
7 ensembl_exon_id Exon stable ID feature_page
8 description Gene description feature_page
9 chromosome_name Chromosome/scaffold name feature_page
10 start_position Gene start (bp) feature_page
G_list에 해당 정보를 담았다면 이를 기존의 df와 합치는 과정이 필요하다.
1. df$Geneid와 G_list$ensembl_gene_id의 값이 같을 때 두 data frame을 합치는 방식이다.
원래는 이 방법을 사용하고 있었으나 ensembl_gene_id가 위의 데이터 베이스에 없을 때 결과 df의 사이즈가 입력할 때와 달라지는 것을 확인하여 2번의 방법을 사용하는 것을 추천한다.
df <- merge(df,G_list,by.x="Geneid",by.y="ensembl_gene_id")
2. df에 hgnc_symbol 열을 미리 만들고 내용은 공란으로 채워넣는다. 공란으로 채우는 이유는 ensembl gene id가 데이터 베이스 없거나 또는 ensembl gene id는 있지만 여기에 매칭되는 hgnc symbol이 없어도 행을 유지시키기 위함이다.
아래의 코드를 사용하면 df$Geneid와 G_list$ensembl_gene_id가 매칭될 때 G_list$hgnc_symbol의 값을 df$hgnc_symbol에 넣는 다는 의미이다.
Reference -
https://www.bioconductor.org/packages/devel/bioc/vignettes/biomaRt/inst/doc/biomaRt.html
'Computer Science > R' 카테고리의 다른 글
pheatmap 값에 따른 color 범위 조절하기 (0) | 2018.09.12 |
---|---|
Kegg pathway에 속하는 유전자 정보 가져오기 (2) | 2018.09.11 |
pheatmap으로 heatmap그리기 (0) | 2018.09.11 |
R에서 Dataframe 합치기 (0) | 2018.09.05 |
DESeq2 에서 multiple condition 수행하기 (1) | 2018.07.27 |