Palmsonntagmorgen

NGSデータを使った解析と、その周辺。

GitHubからプログラムをダウンロード・インストール

NGS解析のための新規ツールは日々論文で発表されており、それらのほとんどは世界中の人が無償で利用可能なライセンス形態になっています。
今日はその中でも多くの人に利用されている「GitHub」に公開されたツールのインストール方法を紹介します。

オープンソースについて

今のBioinformatics界は極めてオープンソース志向が強く、「良いものや知見は共有されることでより良いものができる」という性善説的な発想に基づいています。bioRxivのようなopen preprintにも積極的です。
ので、新規のプログラムで論文を書く場合はそのプログラムがオープンソースで公開されていることが必須条件となっている論文誌がほとんどです。オープンにする際も、自分のラボページにzipファイルをアップするだけ、のようなあやしげな状態ではなく、GitHubBioconductorのような広く使われバージョン管理がしっかりしているコミュニティスペースに公開されることが推奨されます。Bioinformatics誌のレビュアーの一人は、「GitHubに公開されていないプログラムはその時点でrejectにする」とツイートしていました。

一方、たとえばNatureやCellのような大きな論文内で使わている個々の解析技術はin-houseで作られたスクリプトであることが多く、そういうのはあまり公開はされません。Wetのラボはソースの公開に消極的なところが多い印象です。

GitHub

このブログでは僕のツールを使うことが多いので、僕のアカウント(rnakato)を例に以下説明します。 僕のGitHubサイトはこちらです。DROMPAやSSPなど、今まで開発したツールやスクリプトを置いています。

github.com

GitHubについて

Git・GitHubとは非常に平たく言うと、作成したソースコードをネット上に公開して誰でもダウンロードできるようにするためのしくみです。ファイルのバージョン管理機能に優れており、複数の人が同時にソースを修正するような開発に特に向いています。
(どこかの新聞記事では「設計図共有サイト」とか言っててコーヒー吹いた
より詳しく知りたい場合は「GitHub 入門」でググってください。

GitHub上のツールをダウンロードするだけならばアカウントは作成しなくとも大丈夫です。

GitとGitHubのちがい

Gitはファイルのバージョン管理のしくみそのもので、GitHubはGitをWeb上で利用するためのサービス(Gitホスティングサービス)です。 GitHub以外にもBitbucketやGitLabなどいくつかのGitホスティングサービスがあります。

Gitのインストール

gitとコマンドを打ってみて、「そんなツールないよ」とエラーが出たら、以下のコマンドでインストールしましょう。

 $ sudo apt install git

GitHubからインストール(スクリプトの場合)

スクリプトとは、そのファイルをダウンロードすればコンパイル無しでそのまま使えるソースコードです。 私が作っているスクリプトを以下で公開しています。(自分用なので、大半は使い物にはならないと思いますが、一部は有用と思います。)

GitHub - rnakato/script_rnakato

上のリンクを開くと↓のような画面になります。画面右にある"Clone or download"をクリックするとクローン用URLが表示されますので(図の赤枠部分)、コピーしてください(URL右のアイコンをクリックすると自動でコピーされます)。

f:id:rnakato:20180804142534j:plain

またはURL下の"Download zip"をクリックすると、圧縮ファイルとしてダウンロードすることもできます。

git clone <コピーしたURL> とコマンド実行すると、内容がクローン(ダウンロード)されます。

 $ git clone https://github.com/rnakato/script_rnakato.git
Cloning into 'script_rnakato'...
remote: Counting objects: 1674, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 1674 (delta 15), reused 17 (delta 7), pack-reused 1642
Receiving objects: 100% (1674/1674), 6.72 MiB | 3.53 MiB/s, done.
Resolving deltas: 100% (1002/1002), done.
Checking connectivity... done.
 $ ls  # ダウンロードされたフォルダを確認
script_rnakato

これで、script_rnakatoフォルダの中にあるスクリプトが全てダウンロードされました。

内容の更新

git cloneでクローンしたフォルダの内部でgit pull origin masterとコマンドを打つと、クローン後に加えられたGitHub上の更新内容を取り込むことができます。

 $ cd script_rnakato
 $ git pull origin master
From https://github.com/rnakato/script_rnakato
 * branch            master     -> FETCH_HEAD
Already up-to-date.

今はクローンしたばかりですので、当然修正はありません。

GitHubからインストール(プログラムの場合)

DROMPA3をダウンロード・インストールしてみます。 スクリプトと同じ要領ですが、C言語ソースのため、ダウンロード後にコンパイルが必要です。

GitHub - rnakato/DROMPA3: DROMPA version 3 (Peak-calling, Visualization, Normalization and QC for ChIP-seq analysis)

 $ git clone https://github.com/rnakato/DROMPA3
 $ cd DROMPA3
 $ make

GitHubからインストール(submoduleを含むプログラムの場合)

以下のChIPseqToolsはC++プログラムですが、レポジトリ内部にSSPのレポジトリを含んでいます。 これはsubmoduleという機能で入れ子構造になったGitHubレポジトリです。

GitHub - rnakato/ChIPseqTools

submoduleを含むレポジトリをクローンする場合は、--recursiveオプションをつけます。

 $ git clone --recursive https://github.com/rnakato/ChIPseqTools.git
 $ cd ChIPseqTools
 $ make

また、内容を更新したい場合は以下のようにします。

 $ git pull origin master    # ChIPseqToolsレポジトリの更新
 $ git submodule foreach git pull origin master # ChIPseqTools内のSSPレポジトリの更新

まとめ

3種類のパターンに分けてGitHubからのツールのインストール方法を紹介しました。インストール方法は通常はページ下部のREADMEに書いてあるので、それを見れば大丈夫です。 NGS解析のツールの大半はGitHub上で公開されているので、GitHubを使いこなせるようになると自由度が各段にアップします。

またGitHub上に自分のアカウントを作成すれば、自分のスクリプトをアップすることもできるようになります。 GitHubは常に最新バージョンが保てる点がメリットなので、例えば職場と自宅でスクリプトを共有したいというような目的にも使えますし、 外部の人にスクリプトを送るのにも便利です。
(Dropboxでも共有はできますが、ファイル喪失の危険はありますし)

なおGitHubは無料プランだとファイル公開しか選べません。もしWeb上にアップしたいけれども公開にはしたくないという場合にはBitbucketかGitLabを利用しましょう。 (2019/1/16追記 GitHubは無料アカウントでもプライベートリポジトリを作成できるようになりました。)