スキップしてメイン コンテンツに移動

R + Bioconductor で遺伝子構造を描く

From Evernote:

Rで遺伝子構造を描く

超並列DNAシーケンサーの登場で、遺伝子構造など、ゲノム上のイベントやオブジェクトのデータを大量に得ることができるようになってきました。データ解析にとって可視化は重要ですが、ゲノム上で起きているイベントなので、ゲノム上に配置して可視化したい場面がよくでてきます。しかし、さまざまなゲノム上のオブジェクトをゲノム座標から画像座標に変換して、絵を書くのは意外と面倒な作業です。

例えば遺伝子構造の絵を書こうとします。これは、遺伝子構造をどのように入手するか、遺伝子構造をどのように描くか、の2つの問題に分けることができます。ここでは、遺伝子構造のデータは、R + Bioconductor の biomaRt パッケージを使って、Ensembl Biomart からダウンロードすることで解決します。遺伝子構造をどのように描くかについては、GenomeGraphs パッケージを利用します。

まずはインストールします。

$ sudo R
> source("http://www.bioconductor.org/biocLite.R")
> biocLite("biomaRt")
> biocLite("GenomeGraphs")

ここでは、Ensembl biomart からヒトの SMN1 という splicing 異常によって疾患になる例が知られている遺伝子名(Gene symbol)の遺伝子構造を描きます。

まず、SMN1 という名前から、Ensembl Gene ID と染色体位置などを入手します。

library(GenomeGraphs)
library(biomaRt)

gene.symbol <- "SMN1"
png.file <- paste(gene.symbol, ".png", sep = "")

## construct an object of Human Ensembl Biomart
human <- useMart(biomart = "ensembl", dataset = "hsapiens_gene_ensembl")

gene <- getBM(
     attributes = c('hgnc_symbol', 'ensembl_gene_id', 'chromosome_name'),
     filters = 'hgnc_symbol',
     values  = gene.symbol,
     mart    = human
)

ensgene.id <- gene[,2]
chr.num    <- as.character(gene[,3])

次に、Ensembl Gene ID から Ensembl Gene の構造情報(染色体名とその exon/intron の位置) を入手します。また、これに対応する Ensembl Transcript のリストとその構造も入手します。

## Get annotation of Ensembl Gene
gene <- makeGene(id = ensgene.id, type = "ensembl_gene_id", biomart = human)
transcript <- makeTranscript(
     id      = ensgene.id,
     type    = "ensembl_gene_id",
     biomart = human,
     dp      = DisplayPars(plotId = TRUE, cex = 0.5)
)

遺伝子構造を描画するまえに、染色体の大雑把な位置を把握するための ideogram を描くため、Ideogram object を作ります。黒と白の縞々のアレですね。遺伝子の位置には赤い透明なボックスを描きます。

## Create an ideogram object for the entire chromosome
ideog <- new("Ideogram", chromosome = chr.num)

## Create a highlight of the gene position on the ideogram
## using "absolute coordinates"
highlight.posi.on.ideo <- makeRectangleOverlay(
     0.60, 0.65,
     region = c(0.75, 0.82),
     coords = "absolute",
     dp = DisplayPars(alpha = .2, fill = "red")
)

最後に、遺伝子、転写産物、ideogram をまとめて PNG file に出力します。

## Create the plot
png(png.file)
gdPlot(
     list(
       makeTitle(gene.symbol),
       "Chr"         = ideog,
       "Gene"        = gene,
       "Transcripts" = transcript
     ),
     overlays = list(highlight.posi.on.ideo)
)
dev.off()

完成した図は以下のようになります。便利ですねー。

参考URL:

コメント

このブログの人気の投稿

シーケンスアダプタ配列除去ツールまとめ

FASTQ/A file からシーケンスアダプター配列やプライマー配列を除くためのプログラムをまとめてみる。 まず、配列の除去には大別して2つの方向性がある。ひとつは、アダプター配列を含む「リード」を除いてしまう方法。もうひとつは除きたい配列をリードからトリムする方法である。後者のほうが有効リードが増えるメリットが、綺麗に除ききれない場合は、ゲノムへのマップ率が下がる。 気をつける点としては、アダプター/プライマーの reverse complement を検索するかどうか。paired end の際には大事になる。クオリティでトリムできるものや、Paired-end を考慮するものなどもある。アダプター/プライマー配列の文字列を引数として直接入力するものと、multi fasta 形式で指定できるももある。 From Evernote: シーケンスアダプタ配列除去ツールまとめ TagDust http://genome.gsc.riken.jp/osc/english/software/src/nexalign-1.3.5.tgz http://bioinformatics.oxfordjournals.org/content/25/21/2839.full インストール: curl -O http://genome.gsc.riken.jp/osc/english/software/src/tagdust.tgztar zxvf tagdust.tgz cd tagdust/ make sudo make install rehash 使いかた: tagdust adapter.fasta input.fastq -fdr 0.05 -o output.clean.fastq -a output.artifactual.fastq 解説: 入出力形式は fastq/a が使える。リード全体を除く。速い。アダプター配列を fasta 形式で入力できるのが地味に便利で、これに対応しているものがなかなかない。Muth–Manber algorithm (Approximate multiple

ChIP-seq の Peak calling tool を集めたよ

ほかにもあったら教えてください。プログラム/プロジェクト名がツールのプロジェクトサイトへのリンク。その論文タイトルは論文へのリンクになっています。 ツール名の50音順です。 CCCT -  A signal–noise model for significance analysis of ChIP-seq with negative control , chipdiff と同じグループ CisGenome -  CisGenome: An integrated software system for analyzing ChIP-chip and ChIP-seq data . ChromSig -  ChromaSig: a probabilistic approach to finding common chromatin signatures in the human genome. ChIPDiff -  An HMM approach to genome-wide identification of differential histone modification sites from ChIP-seq data ChIP-Seq Analysis Server FindPeaks -  FindPeaks 3.1: a tool for identifying areas of enrichment from massively parallel short-read sequencing technology. Version 4.0 is out. GLITR -  Extracting transcription factor targets from ChIP-Seq data HPeak -  HPeak: an HMM-based algorithm for defining read-enriched regions in ChIP-Seq data MACS -  Model-based Analysis of ChIP-Seq (MACS). PeakSeq -  PeakSeq enables systematic scoring of ChIP-seq experimen

大学の研究室でアカデミックプランが使えるICTツール

自分らでサーバ管理したくないので、SaaS系とローカルで動くソフトのみ。ローカルで動くソフトに関しては、Mac or Docker で動くもののみ。 無償 G Suite for Education  (ドキュメント共有、カレンダーなど) GitHub Education  (ソースコード管理) esa.io アカデミックプラン  (知識共有) Tableau  (データ可視化) Scrapbox  (知識共有) GROWI.cloud  (Wikiなど) 割引 Slack の教育支援プログラム  (ビジネスチャット) Dropbox Education  (ファイル共有、ドキュメント共有) Office 356  (オフィスソフト) Adobe Creative Cloud  (画像編集) AutoDesk for Education  (CADなど) これから申し込んでいくところなので、本当に使えるかはわかりせん。使えた使えないなどの情報やほかのツールでお勧めがあれば教えてもらえると嬉しいです。 アカデミアでなくても無料で使えるツールのうち、うちで使うであろうものは以下に列挙していく。 Google Colaboratory  (データ解析) Overleaf  (論文執筆) Rstudio  (開発, データ解析) VS code (開発)