plinkでペアワイズ連鎖不平衡解析|非モデル生物の場合
はじめに
RAD-seqやMIG-seqなどで取得できるSNP情報は、もろもろの解析に使用する前に連鎖不平衡を調べて除去してやる必要がある。
ここではplinkを使用してSNP間の相関係数をペアワイズで計算し、閾値(こちらで設定できる)よりも相関係数が大きな組み合わせを連鎖不平衡のあるSNPとして検出する。
また、今回は非モデル生物でRAD-seqやMIG-seqをおこなってde novoでアライメントした場合を想定し、各locusの染色体番号や位置情報を使わずに連鎖解析をおこなう。
インプットファイル
.pedファイルと.mapファイルが必要
.pedファイルは.strなどからPGDspiderで変換可能
ただし、同じ座位に3つ以上アリルがあるとはじかれるので、事前に取り除いておく必要がある
.mapファイルはエクセルで自分で作れる
左から順に
染色体番号|座位の番号|遺伝的距離|ポジション
を半角スペース区切りで記述していくが、de novoの場合、座位の番号以外は0と記入すれば良い
0 loc1 0 0
0 loc2 0 0
0 loc3 0 0
0 loc4 0 0
といった感じ
.pedファイルに記述されている座位と.mapファイルに記述されている座位は一致する必要があるかも
実行
.pedファイルと.mapファイルを同じファイル名で(拡張子は異なる)同じディレクトリに格納する
例えば、
mkdir ~/Desktop/plink
で、できたフォルダに
○○.ped
○○.map
を移すといった感じ
その後、
plink --file ○○ --r2 --ld-window 1000000 --ld-window-r2 0
※〇〇:拡張子をつけてはいけない
と打ち込めば、同ディレクトリに
plink.ld
が作成される
コマンドのオプションを解説すると、
-- file ○○ インプットファイルの指定
-- r2 相関係数の計算
-- ld-window 1000000 何個隣のSNPまで相関係数を計算するか …※
--ld-window-r2 0 相関係数が指定した数値以上のものを出力する(全て出力するときは0)
※入力したデータが実際の配列順で並んでいる場合、あまり遠くの座位と相関係数を出しても意味が無い。そのため、デフォルトでは9個隣の座位までしか相関係数を計算しないようになっている。de novoの場合、実際の配列順に並んでいるわけではないので、全てのSNPを総当りで調べる必要がある。よって、ここには手持ちのSNP数以上の数字を入れる必要がある。SNP数以上であれば数字はなんでもよい。
アウトプットファイル
plink.ldをmiでもエクセルでもなんでもいいので開いてみると、
CHR_A BP_A SNP_A CHR_B BP_B SNP_B R2
0 0 loc1 0 0 loc2 0.0152985
0 0 loc1 0 0 loc3 0.0515134
0 0 loc1 0 0 loc4 1
こんな感じになっているはず
見たままだが、loc1とloc2の相関係数が0.0152985であるという感じに読む
ちなみに、たとえば
--ld-window-r2 0
の0の数字を0.2にすれば、相関係数が0.2以上のものだけをリストアップしてくれる
plinkのインストール|OS X ElCapitan (10.11.6)
plinkとは?
GWAS解析やQTL解析などに使える便利ツール。
HW平衡からの逸脱や、連鎖不平衡の解析もやってくれるとか。
詳しくはこれから勉強するところ。
インストール
とても簡単。ダウンロードして、解凍して、パスを通すだけ。
PLINK: Whole genome data analysis toolset
ここからmac用をダウンロード
これを好きなところに解凍する
自分の場合はここ↓
~/Analysis/plink-1.07-mac-intel
このディレクトリにパスを通せば完了
cd
nano .bash_profile
で、以下の一文を追加
PATH=${PATH}:"/Users/〇〇/Analysis/plink-1.07-mac-intel"
※〇〇にはusernameが入る
で、保存して再ログイン
これでターミナル上でplinkコマンドが使えるようになる
「PATHを通す」ってどういうこと?
はじめに
この項では、具体的にPATHを通す方法は書いてません。
「PATHを通す」とは、どういうことなのかを解説します。
PATHの通し方はこちら↓
PATHを通す方法|mac OS Xの場合 - マクロ生物学徒の備忘録
予備知識として…
macでは、ターミナルを使用して様々な作業ができる。
例えば、
mkdir test
と打ち込めば、testという名前のディレクトリができる。
なぜ、このようなことができるのか。
それは、あらかじめ「mkdir」というコマンドに対して「ディレクトリを作れ」という命令が情報として結びついているから。
このような情報が記述されたファイルはいつくかのディレクトリに格納されている。
(コマンドを単語だとすると、そのディレクトリはさしずめ辞書といったところ)
ターミナル上で、「mkdir」と打ち込むと、まずコンピューターはこの情報が格納されたディレクトリにアクセスし、「mkdir」というコマンドに結び付けられた命令を実行する。
(毎回コマンドの意味を辞書で調べているような感じ。)
パスを通すって何?
「コマンド-命令」情報が格納されたディレクトリがどこにあるのか、をコンピューターに教えてあげる必要がある。
このディレクトリの場所を教えることを、「PATHを通す」という。
PATHはディレクトリに通すものだが、便宜上
「コマンドにPATHを通す」
「ファイルにPATHを通す」
と言ったりもする。
これは、コマンドの意味が書いてあるファイルがあるディレクトリにPATHを通す、という意味である。
「mkdir」などの最初から使えるコマンドは、デフォルトで「PATHが通っている」状態である。
ちなみに場所は
/bin
/usr/bin
/usr/local/bin
だいたい、ここにある(隠しフォルダなのでFinderなどでは表示されない)。
ターミナル上でコマンドを打ち込むと、その意味が書いてあるファイルをここに探しにいくようにデフォルトでプログラムされている。
まとめ
PATHを通すとは、ターミナル上でコマンドが使えるようにするために、コマンドの意味が記述されたファイルの場所をコンピューターに教えること。
ちなみに
新しくコマンドをターミナル上で使いたい時、やり方は二通りある。
1つ目は、そのコマンドの意味が書かれたファイルがあるディレクトリにパスを通す方法。
→ PATHを通す方法|mac OS Xの場合 - マクロ生物学徒の備忘録
2つ目は、すでにパスが通っているディレクトリにコマンドをインストールする方法。
→ (準備中)
FASTX-toolkitのインストール|OS X ElCapitan (10.11.6)
FASTX-toolkitとは?
FASTX-toolkitはターミナル上で動き、次世代シーケンサによって得られるfastq形式のファイルから、クオリティの低い配列を除去してくれる便利なやつ。
アライメントソフトもクオリティが低いものは使わないようになっていることが多いが、除去の仕方が荒っぽい(?)ので、あらかじめFASTX-toolkitで細かく条件を指定して除去した方が、結局使えるリード数が増え、アライメントが上手くいきやすい。そんな気がする。
流れ
FASTX-toolkitのインストールの前にlibgtextutilsと最新版のpkg-configをインストールする必要がある。
この2つをダウンロード&インストールしてからFASTX-toolkitのインストールに進む。
すでに/usr/local/binにパスが通っている前提で、ここにインストールする。
参考にしたサイト
FASTX-toolkit | FASTQクオリティコントロールやFASTAファイルへの変換など
OS X 10.11ではrootでも/usrや/bin以下に書き込みできない | スラド アップル
0から始めるNGSデータ解析メモ : FASTX-Toolkitのインストール
ダウンロード
ここから最新版のlibgtextutils-x.x.x.tar.gzとfastx_toolkit-x.x.x.tar.bz2をダウンロードする
→今回はlibgtextutils-0.7.tar.gzとfastx_toolkit-0.0.14.tar.bz2をダウンロード
http:// https://pkg-config.freedesktop.org/releases/
ここから最新版のpkg-config-x.x.x.tar.gzをインストール
→今回はpkg-config-0.29.1.tar.gzをダウンロード
解凍
適当なディレクトリに解凍する
デスクトップとかは邪魔になるのでやめといた方がいい
自分は↓のようなディレクトリを作ってそこに放り込んでる
~/Analysis
→~/Analysisの中に、libgtextutils-0.7とfastx_toolkit-0.0.14とpkg-config-0.29.1がある状態
libgtextutilsのインストール
ターミナルを開いて解凍してできたディレクトリ(libgtextutils-0.7)の中に移動する
cd ~/Analysis/libgtextutils-0.7
sudo ./configure --prefix=/usr/local
→~/Analysis/libgtextutils-0.7の中ににMakefileというファイルができたはず
sudo make
※パスワードを要求されたらログイン時に必要なパスワードを入力する(以下同様)
sudo make install
→/usr/local/libの中にlibgtextutils-0.7.0.dylibというファイルができていれば成功
※/usrディレクトリは隠しディレクトリ
pkg-configのインストール
cd ~/Analysis/pkg-config-0.29.1/
./configure --prefix=/usr/local --with-internal-glib
→pkg-config-0.29.1ディレクトリ内にMakefileというファイルができたはず
make
sudo make install
→/usr/local/binの中にpkg-configというファイルがあるはず
pkg-config -h
→Help Optionsが表示されれば成功
※もし、./configureの時に/usr/local以外の場所を指定していたら、そこのbinディレクトリにパスを通す必要がある
fastx_toolkitのインストール
cd ~/Analysis/fastx_toolkit-0.0.14/
./configure --prefix=/usr/local
※pkg-configにパスが通ってなかったり、古かったりすると↓のようなエラーが表示される
configure: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables GTEXTUTILS_CFLAGS
and GTEXTUTILS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details
エラーが出てなかったらうまくいってる
make
sudo make install
fastx_trimmer -h
→Helpが表示されれば成功