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

Vagrant を使って Bioconductor Devel の解析・開発環境をAWSに構築する

環境はOS Xです。

1. vagrant を dmg ダウンロードし、インストールする。

簡単。
http://www.vagrantup.com/

2. vargrant をセットアップする
aws にプロビジョニングできるプラグインをインストールする。
$ vagrant plugin install vagrant-aws

AMIを起動するとは言え、ダミーの仮想マシンが必要。ちょっとわかりにくい。

$ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box

3. Vagrantfile を作る
Bioconductor 公式のBioC-Devel入りの AMI を利用する。リージョンはバージニアだけ。知る必要はないがアカウント名は root です。

まず適当なディレクトリを作る。
$ mkdir bioc-devel
$ cd bioc-devel

初期化する。

$ vagrant init

Vargrantfile にいろいろ書く。

$ jed Vargrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

require 'yaml'
require 'pp'

aws_conf = YAML.load_file('./.aws.yaml')
# pp aws_conf

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id        = aws_conf['access_key_id']
    aws.secret_access_key    = aws_conf['secret_access_key']
    aws.keypair_name         = aws_conf['keypair_name']

    aws.instance_type        = aws_conf['instance_type']
    aws.ami                  = aws_conf['ami']
    aws.region               = aws_conf['region']
    aws.security_groups      = aws_conf['security_groups']
    aws.tags = {
      'Name'        => aws_conf['tags']['Name'],
      'Description' => aws_conf['tags']['Description']
    }
    aws.elastic_ip = true

    override.ssh.username         = aws_conf['ssh_username']
    override.ssh.private_key_path = aws_conf['ssh_private_key_path']
  end

  # shell
  config.vm.provision :shell, :path => "bootstrap.sh"

end

プロビジョニングされたときにAMI上で実行されるシェルスクリプトを作る。今回はなにも実行しない。


$ echo "#\!/bin/sh” > bootstrap.sh

4. AWSに作るインスタンスの設定を作る。
4.1. Keypair を作る
AWSにログインし keypair を作る。ダウンロードされた *.pem を ~/.ssh/*.pem にコピー後、400にする
$ cp ~/Downloads/*.pem ~/.ssh
$ chmod 400 ~/.ssh/*.pem

4.2. Security Group を設定する
default の Inbound で SSH の source を 0.0.0.0/0 にする。注意: 本来はIP制限すべき。

4.3. アカウントの access key id や secret access key を調べる。


4.4. 設定ファイルを作る。注意: 以下をうっかり github とかにアップしないように!! .gitignore に書いておこう。


4.5. AWSの設定ファイルを作る

AWSの情報をYAMLで書いておく。Vagrantfile と切り分けるためです。


$ jed .aws.yaml
access_key_id: XXXX
secret_access_key: XXXXXX
keypair_name: XXXX
ssh_username: root
ssh_private_key_path: ~/.ssh/XXXX
instance_type: m1.xlarge
region: us-east-1
ami: ami-81acace8
security_groups:
 - default
tags:
 Name: bioc-devel
 Description: bioc-devel

5. プロビジョニングして、SSHでログインする
$ vagrant up --provider=aws
$ vagrant ssh

6. Rを実行して、Bioconductor Devel が使えることを確認する

$ R
R Under development (unstable) (2014-02-24 r65070) -- "Unsuffered Consequences"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

Bioconductor version 2.14 (BiocInstaller 1.13.3), ?biocLite for help

バージニア遠し。

このブログの人気の投稿

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

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 string search) を利用。FDRを指定できる。GPL3

Quartz-Seqで1細胞/微量RNA-Seqを始めたい方へ

はじめに 新しい高精度な1細胞RNA-Seq, Quartz-Seq論文を出してから、各方面から多く相談を受けています。
Sasagawa Y and Nikaido I, et. al. Quartz-Seq: a highly reproducible and sensitive single-cell RNA-Seq reveals non-genetic gene expression heterogeneity. Genome Biology. 14. 2013 
そこで、新しく1細胞RNA-Seqを始める方へ、僕達が理想だと考えている技術導入の手順を紹介したいと思います。また我々の方法は1細胞(6-14 pg Total RNA)だけでなく pg-ng オーダーの少量RNAからシーケンスが可能です。そのような方も以下の手順が参考になると思います。 0. 1細胞/微量RNA-Seqが本当に必要なのか検討する 1細胞/微量RNA-Seqでは、現時点でQuartz-Seqが世界最高の性能を持っている訳ですが、十分なサンプルを用意し、通常のRNA-Seqしたほうが、より精度の高いデータが得られます。なので、基本的には、サンプルをたくさん集める方法をしっかり検討すべきです。まずは、戦略面と技術面で1細胞/微量RNA-Seqが本当に必要かを検討する基準について書きます。 0.1. 戦略面での検討 あなたが抱えているプロジェクトが、1細胞/微量RNA-Seqでなければアプローチできないかどうかを問い直すことが重要です。
基本的には以下の2つの状況で、1細胞/微量RNA-Seqが役に立ちます。
a. 細胞状態が連続的に変化し、さまざまな細胞状態が、細胞集団に含まれている場合 (振動現象、ゆらぎなど) b. 細胞状態を特定するマーカーがほどんどわかっていない場合
最初から細胞状態が2状態しかないことが明らかで、しかも細胞状態を代表する遺伝子が分かっている、という状況では、FACSなどで cell sorting し、目的の細胞を採取することを考えるべきです。そして、微量RNA-Seqや通常のRNA-Seqで、しっかりと biological replication を取る方が良いでしょう。微量になると、テクニカルなノイズが増えるために、生物学的な差を知るためには、n を…