LDマップ、GOLD

「この論文みたいな綺麗な絵が欲しい(^^」なんつー無邪気なエライ人の言葉を受けて、LD(連鎖不平衡)マップを描くソフトGOLDを試したのでメモ。<追記>
コメントにryamada22様からExcelの等高線グラフを使うと描けるとのアドバイスを頂きました。GOLD自体はWindowsでしか動かないっぽいのでOSXの私には重宝しそうなtipsです。
ちなみに「こんな絵がホシ〜」って無邪気な一言って、言われた覚えがある人って多いんじゃないでしょうか。応えられる場合とそうでない場合がありますよね(^^;


Center for Statistical Genetics
から
GOLD Home Page
GOLDをダウンロード。ちなみにWindows binaryで以下の話は進みます。
SourceからOSXでのコンパイルは私には出来ませんでした。/usr/bin/ldでundefined Symbolとか言われて挫折‥orz
簡単なドキュメントは以下。
GOLD Online Documentation
家系でデータを取っているか、いないかで使うデータ整形コマンドが変わる。
うちは後者なので「Command-Line Tools - Non-Family Data」の「ldmax」を選択(インストール時に全部入ってる)。
WindowsDOSプロンプトからldmaxと叩くとオプションのヘルプとそのデフォルト値が表示される。とりあえず見ること。
あとverboseオプションで最初は結果をよく見ること。
ドキュメントに書いてないこととして、

  • Founders Onlyなるオプション
  • missing alleleは"0"で表す(っぽい)

missing alleleについては、verboseオプションで結果を眺めてみて思ったことです。
"3"とか入れると3rd alleleとして認識されます。マイクロサテライトマーカーにも対応してるようだし、当然と言えば当然。
LD.XTが出力されるので、それをGOLD本体から読み込めばOK。<121605追記>
OSXでldmax使いたい(手軽にr^2をコマンドラインから調べたくなった)のでコンパイル出来るように問題解決した。
通常の手順だとコンパイル(マニュアル通り%make all)だと
gcc -w -O3 -I./libsrc/ -o executables/ldmax ldmax/LdMax.o ldmax/Interface.o libsrc/lib-goncalo.a -lm
の箇所で以下のエラーになる。

ld: Undefined symbols:
operator delete(void*)
operator new
(unsigned long)
___gxx_personality_v0
vtable for __cxxabiv1::__class_type_info
vtable for __cxxabiv1::__si_class_type_info
operator delete(void*)
operator new(unsigned long)
___cxa_pure_virtual
make: *** [executables/ldmax] Error 1

グーグル先生にしつこく聞いた所、結論としては
stdc++のLDFLAGをつけろ
ということらしい。またはgccでなくg++でコンパイルでも正解らしい。
直接先のgccのコマンド部分を
gcc -w -O3 -I./libsrc/ -o executables/ldmax ldmax/LdMax.o ldmax/Interface.o libsrc/lib-goncalo.a -lm -lstdc++
で確かに通る。Makefileを書き換える場合は
CFLAGS= -w -O3 -I./libsrc/
LDFLAGS=-lstdc++ #追加
としてmake allしている以下の箇所で
# dependencies for executables
$(LDMAX) : $(LIBFILE) $(LDOBJ)
$(CXX) $(CFLAGS) -o $@ $(LDOBJ) $(LIBFILE) -lm $(LDFLAGS) #$(LDFLAGS)を追加
$(COLLECT2) : $(LIBFILE) $(COLLECTOBJ)
$(CXX) $(CFLAGS) -o $@ $(COLLECTOBJ) $(LIBFILE) -lm $(LDFLAGS) #$(LDFLAGS)を追加
こんな感じで書いておくと、無事ldmaxがmake出来た。