2016-09-09 11 views
1

私は特定の数のSNPをプロットし、x軸に染色体位置とそのラベルを持っています。x軸に同時に染色体位置とSNPラベルを表示する方法

ベッドファイルからSNang情報をGRangesオブジェクトにインポートしました。

私のベッドのファイルは次のようになります。

chr17 78191000 78191000 rsAAA 1 + 
chr17 78191900 78191900 rsBBB 1 + 
chr17 78194002 78194002 rsCCC 1 + 
chr17 78197170 78197170 rsDDD 1 + 

私はグランジオブジェクトにベッドのファイルを変換するために使用される機能は、このウェブサイトからのものです:インポートするhttp://davetang.org/muse/2015/02/04/bed-granges/

bed_to_granges <- function(file){ 
     df <- read.table(file, 
         header=F, 
         stringsAsFactors=F) 

     if(length(df) > 6){ 
       df <- df[,-c(7:length(df))] 
     } 

     if(length(df)<3){ 
       stop("File has less than 3 columns") 
     } 

     header <- c('chr','start','end','id','score','strand') 
     names(df) <- header[1:length(names(df))] 

     if('strand' %in% colnames(df)){ 
       df$strand <- gsub(pattern="[^+-]+", replacement = '*', x = df$strand) 
     } 

     library("GenomicRanges") 

     if(length(df)==3){ 
       gr <- with(df, GRanges(chr, IRanges(start, end))) 
     } else if (length(df)==4){ 
       gr <- with(df, GRanges(chr, IRanges(start, end), id=id)) 
     } else if (length(df)==5){ 
       gr <- with(df, GRanges(chr, IRanges(start, end), id=id, score=as.character(score))) 
     } else if (length(df)==6){ 
       gr <- with(df, GRanges(chr, IRanges(start, end), id=id, score=as.character(score), strand=strand)) 
     } 
     return(gr) 
} 

コードベッドのファイルと人間のhg19ビルドに従ってそれを再フォーマットは、次のものです:

library(ggbio) 
data(hg19Ideogram, package = "biovizBase") 
setwd(".../Test") 

## Import bed file as GRanges file 
SNP <- bed_to_granges("SNP_position.bed") 
seqlengths(SNP) <- seqlengths(hg19Ideogram)[names(seqlengths(SNP))] 
SNP_dn <- keepSeqlevels(SNP, paste0("chr", c(1:22, "X", "Y"))) 

私は次のようにSNPをプロットすることを試みた:

SNP_location <- autoplot(SNP_dn) + 
     theme(text = element_text(size=8), 
       axis.text.x = element_text(angle=45, hjust=1)) + 
     theme(legend.position="none") +   
     xlim(78190000,78200000) + 
     scale_x_sequnit("Mb") 
fixed(SNP_location) <- TRUE 
SNP_location 

このコードは、それらの適切な位置にx軸およびSNPの染色体位置とのプロットを返します。

SNP_IDs <- autoplot(SNP_dn) + 
     scale_x_continuous(name = "\nSNP IDs", 
          breaks = as.vector(start(SNP_dn)), 
          labels = as.factor (SNP_dn$id)) + 
     theme(text = element_text(size=8), 
       axis.text.x = element_text(angle=45, hjust=1)) + 
     theme(legend.position="none") +   
     xlim(78190000,78200000) 
fixed(SNP_IDs) <- TRUE 
SNP_IDs 

このコードは、x軸の目盛りは、SNPの自身の位置とラベルに対応する再スケーリングされたx軸を返し、私は、染色体の参照を失います。

染色体の位置に応じてx軸をスケールした最初の図のように、同じ図のSNP名を含む場所に2番目の行を配置したいと考えています。

この図を後でggbioトラック機能を使用して同じ領域の他の機能を示す他のプロットと組み合わせて、そのために同じ染色体の制限がある必要があります。

元のx軸を染色体スケールで維持しながらSNPにラベルを付ける簡単な方法はありますか?

ベスト

R version 3.3.1 (2016-06-21) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] grid  stats4 parallel stats  graphics grDevices utils  datasets methods 
[10] base  

other attached packages: 
[1] Homo.sapiens_1.3.1      TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 
[3] org.Hs.eg.db_3.3.0      GO.db_3.3.0        
[5] OrganismDbi_1.14.1      GenomicFeatures_1.24.5     
[7] AnnotationDbi_1.34.4     Biobase_2.32.0       
[9] GenomicRanges_1.24.2     GenomeInfoDb_1.8.3      
[11] IRanges_2.6.1       S4Vectors_0.10.3      
[13] biovizBase_1.20.0      ggbio_1.20.2       
[15] ggplot2_2.1.0       BiocGenerics_0.18.0      

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.6     lattice_0.20-33    Rsamtools_1.24.0    
[4] Biostrings_2.40.2    digest_0.6.10     mime_0.5      
[7] R6_2.1.3      plyr_1.8.4     chron_2.3-47     
[10] acepack_1.3-3.3    RSQLite_1.0.0     httr_1.2.1     
[13] BiocInstaller_1.22.3   zlibbioc_1.18.0    data.table_1.9.6    
[16] rpart_4.1-10     Matrix_1.2-6     labeling_0.3     
[19] splines_3.3.1     BiocParallel_1.6.6   AnnotationHub_2.4.2   
[22] stringr_1.1.0     foreign_0.8-66    RCurl_1.95-4.8    
[25] biomaRt_2.28.0    munsell_0.4.3     shiny_0.13.2     
[28] httpuv_1.3.3     rtracklayer_1.32.2   htmltools_0.3.5    
[31] nnet_7.3-12     SummarizedExperiment_1.2.3 gridExtra_2.2.1    
[34] interactiveDisplayBase_1.10.3 Hmisc_3.17-4     XML_3.98-1.4     
[37] reshape_0.8.5     GenomicAlignments_1.8.4  bitops_1.0-6     
[40] RBGL_1.48.1     xtable_1.8-2     GGally_1.2.0     
[43] gtable_0.2.0     DBI_0.5      magrittr_1.5     
[46] scales_0.4.0     graph_1.50.0     stringi_1.1.1     
[49] XVector_0.12.1    reshape2_1.4.1    latticeExtra_0.6-28   
[52] Formula_1.2-1     RColorBrewer_1.1-2   ensembldb_1.4.7    
[55] tools_3.3.1     dichromat_2.0-0    BSgenome_1.40.1    
[58] survival_2.39-5    colorspace_1.2-6    cluster_2.0.4     
[61] VariantAnnotation_1.18.7  
+0

私が探していたパラメータが見つかりました:それはすべてgeom_text()関数を使って作業することです。 SNPの位置でintベクトルを生成し、SNP名でchrベクトルを生成することができます。その後 '+ geom_text(X = int_vector、 Y =担当者(1.3,4)、 ラベル= chr_vector、 角度= 45、 hjust = -0.4、 vjust = 0.2、 サイズ= 3)'それを作るだろうを追加。それをやる方が簡単かもしれませんし、共有していただければ幸いです。 – Yatrosin

答えて

1

は私が私が探していたパラメータを発見したと思います、ありがとうございました:それはすべてgeom_text()関数での作業についてです。 SNPの位置でintベクトルを生成し、SNP名でchrベクトルを生成することができます。その後、+ geom_text(x = int_vector, y = rep(1.3,4), label = chr_vector, angle = 45, hjust = -0.4, vjust = 0.2, size = 3)を追加するとそれが作成されます。それをやる方が簡単かもしれませんし、共有していただければ幸いです。

関連する問題