goo blog サービス終了のお知らせ 

備忘録 the next generation

2014年末にOCN(http://yamagu.mo-blog.jp)からこちらに移転しました。

GRCh37のBoiMartへのアクセス

2025-03-19 15:17:50 | バイオインフォマティクス
古いRのパイプラインを動かそうとしたら、エラーが発生してBioMartに繋がらなかった。元のアクセス方法はこんな感じ。

library(biomaRt)
mart <- useMart(biomart="ENSEMBL_MART_ENSEMBL",dataset="hsapiens_gene_ensembl",host="http://apr2018.archive.ensembl.org")

問題は2つあって、
  1. このコードでは明示されてないけど、アクセスしたいのはhg19のリソース
  2. このバージョン(ホスト)はもう削除されてる
現在利用可能なリソースの一覧は以下のように
listEnsemblArchives()で表示できる。




GRCh37(hg19)の場合は以下のようになる。

mart <- useEnsembl(biomart="Ensembl", dataset="hsapiens_gene_ensembl", version="GRCh37", host="https://grch37.ensembl.org")


現行バージョンでも関数呼び出し時にリファレンスゲノムのバージョンを明示する箇所がないのはいかがなものかと思うのだけど。指定する条件が少ないというのは使いやすいようでいて、厳密さを欠いているので後でそれを読んだ誰かが苦労する。

MacでRで解析しようとしたらリンカ回りでエラーになる件

2025-02-26 17:14:07 | バイオインフォマティクス
Macにminicondaをインストールして、conda経由でRをインストールしてBioconductorのパッケージを使って色々解析しようとしてたんだけど、パッケージをインストールしようとすると、以下のようなエラーメッセージに悩まされるようになった。

-lboost_system -L/Users/xxxxx/miniconda3/envs/rnaseq/lib/R/lib -lR -Wl,-framework -Wl,CoreFoundation dyld[49404]: Symbol not found: __ZNK4tapi2v119LinkerInterfaceFile28getPlatformsAndMinDeploymentEv  Referenced from: <565CE761-C1EB-37F5-9738-E1BCF6F2EC75> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld  Expected in:     <15C501C6-0EF4-3E32-9C14-04EC4CD23D35>

何が問題かというと、パッケージをconda経由でインストールしようとしたとき、リンカがOS側のライブラリにリンクできないらしい。MacのXcodeもコンパイラはclangではあるようなのだけど、何かシンボルテーブルの仕様がconda側でビルドした系と違うのかもしれない。

ということは、Condaで入れたR側の一切合切をMac側のライブラリに適合するようにビルドしなおすかしないといけないことになる。Xcodeを入れてRをビルドすればそれは可能なんだろうけど、なかなかめんどくさそう。

そのとき思い出したのは、Rの本家ではMac用のRのインストーラを配布していたということ。


実際上記のサイトからインストーラをダウンロードして、パッケージをインストールしなおしたら問題は解消した模様。この対策が一番手軽なのかな。





WindowsでbiomRtのインストール

2025-01-30 16:29:07 | バイオインフォマティクス
これに限らないけど、WindowsでBioconductor等のパッケージをインストールしようとするとC:\Program Files以下のパーミッション(permission denied)の問題で失敗するケースがある。

要点としては、

だめな対策:
- RStudioを管理者権限で起動してインストール

OKな対策
- C:\Program Files\R\R-4.4.1\libraryに対してExplorerからフォルダのセキュリティ設定を開いて、自分のユーザアカウントにフルコントロールを付与する。

ということだった。C:\Users\[アカウント名]以下は今回は関係なかった。
また忘れちゃうんだろうけど。


IGVをごにょごにょする

2015-07-28 17:41:34 | バイオインフォマティクス
Broad InstituteからダウンロードしたIGVをそのまま実行すると、外部のインターネットに接続できない環境ではエラーになったり、やたらと長い時間待たされたりするので、ごにょごにょとソースを編集してカスタマイズした上で利用することがあります。

今日はそんな方法のまとめを。
ちなみに今回は、IGV-2.3.57をカスタマイズしました。

まず、IGVのバイナリを入手してigv.jarファイルを展開しておきます。

次にIGVのGithubから修正したいソースのjavaファイルを取得します。
rawのボタンをクリックすると生ファイルが表示されるので、
それを保存するのが手軽です。
今回はorg/broad/igv/ui/Main.javaと
同ディレクトリのIGVCommandBar.java

ソースを修正します。
Main.javaはcheckVersion()の行をコメントアウト。
IGVCommandBar.javaの方はIGV.getInstance().loadGenomeFromServerAction()
の行をコメントアウト(後者は不要かな?)。

編集したファイルをjarファイルを展開した場所に置いておきます。

以下のコマンドでビルドします。
javac -cp $IGV/igv.jar IGVCommandBar.java Main.java -d .
($IGVは適宜設定してください)

セキュリティのチェックでひっかからないようにするため、
META-INF以下のMANIFEST.MF以外の2ファイルを削除します。
MANIFEST.MF内の下の方のシグニチャも消さないといけないかもしれません(長い)。

jar ファイルを作成します。

jar cvfm ../igv.jar META-INF/MANIFEST.MF *

あとはigv.sh等からこのjarファイルを使うように適切に設定するだけ。


BioPerlのインストール

2012-09-25 16:35:57 | バイオインフォマティクス
CPAN経由でBioperlをインストールしようとしたら、以下のようなエラーが出て失敗した。

# Failed test 'Must pass a real file'
# at t/SeqIO/SeqIO.t line 135.
# expecting: Regexp ((?-xism:Can not open 'foo.bar' for reading: No such file or directory))
# found:

調べたところによると、ロケールが英語以外だと起きるらしい。解決法としては、bashなどでまず、

export LANG=C

を実行してから、perl -MCPAN -e shellなどと起動してBioperlをインストールすることになる。