シングルセルATAC-seqデータを処理・解析するためのRパッケージ, ArchRを, Apple M3 Mac, Sonoma 14.5に入れる時に行ったこと
scientific dataから2024年6月12に出版されたこちらの論文
[Ma, Y., Guo, S., Chen, Y. et al.
Single-nucleus chromatin landscape dataset of mouse brain development and aging. Sci Data 11, 616 (2024).]
https://doi.org/10.1038/s41597-024-03382-1
で行われているような解析を実行したい, というリクエストを頂いて, Rの環境を準備しようとした際に, ちょっと手間取ったので備忘録と皆さんにも参考になれば, ということで書いてみます.
今回のターゲットはArchR (https://www.archrproject.com/) という, scatac-seq解析ツール.
使用環境はM3 Mac & Sonoma 14.5, Command Line Tools for Xcode は16, R のversionは4.4.1 (2024-06-14), RStudioさんは2024.09.0+375です.
1. 公式ページのインストラクションに従う
まずはフツウに, 公式ページのインストラクションに従ってインストールしようとしてみます. 皆さんの環境によっては, すでに必要な状態が整えられていて, 他に何も必要ない可能性があるので, まずは公式ページ通りにしてみてください.
ちなみに私は今のMacを買ってから, 今日までR環境を全然ローカルに作っていなかったので(しばらくcloudで十分な作業しかしていなかった), 本当にdevtoolsを入れたりするところから始めました.
if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
そして, 私の環境では次を行った際にエラーが出ました.
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
ERROR: dependency ‘chromVAR’ is not available for package ‘ArchR’
ここで出たエラーは, ArchRが依存しているchromVARがない, という内容だったので, 当然こいつを入れに行きます.
chromVARはBioconductorで見つけることができます (https://www.bioconductor.org/packages/release/bioc/html/chromVAR.html).
こちらもまずはフツウにインストラクションに従ってインストールしようとしてみます.
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("chromVAR")
chromVARはソースからのみインストール可能なため, C/C++/Fortranのコンパイラが使われながらインストールが進みます.
私の環境ではApple clang version 16.0.0 (clang-1600.0.26.3)をC++コンパイラとして使用するところはエラーなく進みました.
が, gfortranを必要とするところでトラブル発生です.
ld: warning: search path '/opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0' not found
ld: library 'gfortran' not found
ERROR: compilation failed for package ‘chromVAR’
2. Rさんがgfortranを使えるようにする
このステップはArchRやchromVARの公式サイトを見たり, サポートを開発者にお願いしようとしてもうまくいかないところです(自分の環境の問題でArchRやchromVARのバグなわけではないから).
ということで調べながら環境構築します.
解決にあたり, 私は以下のstackoverflowの記事と, R bloggersの記事を参考にしました.
まずはターミナルで, 本当にgfortranがどこにもいないか調べてみたところ, いなさそうだったのでbrewで入れます.
brew install gcc
なんでgfortranじゃないの? という感じですが, その辺の経緯がR bloggerさんの記事の方に書かれています. 2021年1月から, gfortranはgccにマージされているそうです.
こうしてインストールしてからターミナルで確認すると,
% which gfortran
/opt/homebrew/bin/gfortran
% which gcc
/usr/bin/gcc
この情報を使って, Rがパッケージのコンパイルにこれらを使えるようにします.
ターミナルで以下の作業を行います.
% mkdir ~/.R
% nano Makevars
FC = /opt/homebrew/bin/gfortran
F77 = /opt/homebrew/bin/gfortran
FLIBS = -L/usr/bin/gcc
念の為書き直すと, ~/.R/Makevars
というファイルを作って, FC以下の3行を書き込み保存した, ということです.
3. もう一度 chromVAR -> ArchR という順序でインストール
準備が整ったところで, RStudioのSessionメニューから Restart R を選択して Rをリスタートします.
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("chromVAR")
うまくいくと
* DONE (chromVAR)
The downloaded source packages are in ...
みたいな表示が出て完了します.
次に, 元々の目的のArchRのインストールを行います.
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
うまくいくと
/ |
/ \
. / |.
\\\ / |.
\\\ / `|.
\\\ / |.
\ / |\
\\#####\ / ||
==###########> / ||
\\##==......\ / ||
______ = =|__ /__ || \\\
,--' ,----`-,__ ___/' --,-`-===================##========>
\ ' ##_______ _____ ,--,__,=##,__ ///
, __== ___,-,__,--'#' ===' `-' | ##,-/
-,____,---' \\####\\________________,--\\_##,/
___ .______ ______ __ __ .______
/ \ | _ \ / || | | | | _ \
/ ^ \ | |_) | | ,----'| |__| | | |_) |
/ /_\ \ | / | | | __ | | /
/ _____ \ | |\ \\___ | `----.| | | | | |\ \\___.
/__/ \__\ | _| `._____| \______||__| |__| | _| `._____|
** testing if installed package keeps a record of temporary installation path
* DONE (ArchR)
こんな可愛らしい表示が出て完了します.
続けて公式サイトに従ってライブラリのロード, 追加パッケージのイストールを行なっていきます.
library(ArchR)
ArchR::installExtraPackages()
最後は次のようなメッセージでした.
Successfully installed 5 packages. 0 packages failed installation.
とりあえずインストールまで出来たようです.
皆さんのご参考になれば幸いです.
References
-
Granja, J.M., Corces, M.R., Pierce, S.E. et al. ArchR is a scalable software package for integrative single-cell chromatin accessibility analysis. Nat Genet 53, 403–411 (2021). https://doi.org/10.1038/s41588-021-00790-6
-
Schep AN, Wu B, Buenrostro JD, Greenleaf WJ (2017). “chromVAR: inferring transcription-factor-associated accessibility from single-cell epigenomic data.” Nature Methods. doi:10.1038/nmeth.4401.