WindowsユーザーのためのPythonを用いたゲノム解析環境【Python】

バイオインフォマティクスの解析はLinuxやそれをベースとしたmacを用いて行われることが一般的ですが、圧倒的に多くの人は普段Windowsを使っていますよね?「Windowsでゲノム解析ができないの?」と一度は皆さん思ったのではないでしょうか?

このサイトではWindowsユーザーがWindowsのマシンを用いてゲノム解析を行う方法を解説します。

目指すべきゲノム解析環境の概要

残念ながらバイオインフォマティクスの領域においてはWindowsでは動作しないアプリケーションも多くあり、すべてをWindowsで完結させるのは不可能なのですが、ユーザー側としては通常のWindowsのアプリケーションを操作しているのとまったく同じような環境を目指します。

  • すべての処理をWindowsアプリケーションの中で完結させる
  • ゲノム解析で用いたファイルはすべてWindowsで管理する
  • スクリプトはPythonを使う(Linuxのシェルスクリプトは用いない)

Windowsユーザーにはなじみの薄いLinuxのシェルスクリプトは用いないで、その代わりPythonを使っています。Pythonはデータサイエンス分野をはじめとして様々な分野に応用可能な万能言語なので、詳しくない方はこれを機会にPythonに慣れてみるといろいろな可能性が広がると思います!

個人的にはLinuxのコマンドも完全に排除して、プラットフォームに依存しない100% Pythonでコマンドを書きたいですが、やはりLinuxコマンドを用いた方が簡単なことも多いので、そこはある程度妥協しています。(できる限り代替となるPythonコマンドも併記するようにします)

WSLの導入

バイオインフォマティクス分野ではWindowsに対応していないアプリケーションもあり、Linuxがデファクトスタンダードとなっています。そこで、WindowsにもLinux環境を導入してみましょう。Windows10にはWindows Subsystem for Linux (WSL)という機能が備わっており、それを有効化するだけで誰でもLinux環境を無料で簡単に構築することができます。

WSLを使うのに必要なのは次の2つのプロセスのみです。

  1. 「Windowsの機能の有効化または無効化」からWindows Subsystem for Linuxを有効化する
  2. Microsoftストアから好みのLinuxをインストールする(ここではUbuntuをインストールします)
WSLのインストール

WSLの導入方法はQiitaに記事を書きましたので、こちらをご覧ください。

WSL(ここではUbuntu)を導入したらまず一度起動してみてください。初回起動時にユーザー名とパスワードを設定するように要求されるので、指示に従ってユーザー名とパスワードを設定します。

Ubuntuの初期起動画面、まずはユーザー名を入力します

(パスワードの設定の際に、キーボードで入力してもWindowsのように「●●●●」などの文字列は表示されませんが、ちゃんと入力できているのでそのまま続けてください)

さらに、以下のコマンドを入力してインストールしたUbuntuを最新の状態にアップデートしておきましょう。

sudo apt update

Visual Studio CodeからWSLにリモート接続する

Linuxの導入ができましたが、結局Windowsの中のLinuxのコンソールを立ち上げてLinuxコマンドを入力していくことになります。また、LinuxのホームディレクトリにはWindows側からアクセスできないので、ファイルの保存先もLinuxとWindowsとは別々になってしまっています。これでは「Windowsで解析している」とは言えませんよね。
そこで、ここではVisual Studio Codeを導入して、Visual Studio CodeからWSLにリモート接続する環境を構築します。

Visual Studio Codeの導入

Visual Studio CodeはMicrosoftのオープンソースのテキストエディタ―です。まずはVisual Studio Codeのインストールをしましょう。

Visual Studio Codeの拡張機能のインストール(ローカル環境)

次に、Visual Studio Codeの拡張機能でWSLにリモート接続するためのツールを導入しましょう。

WSLへのリモート接続

Visual Studio CodeのWSLへのリモート接続に必要な拡張機能をインストールします。左側のメニューから拡張機能を選択して、検索ボックスから拡張機能を検索してインストールしてください。

拡張機能のインストール

Visual Studio Codeの日本語化(任意)

Visual Studio Codeの日本語化は必須ではありませんが、この拡張機能をインストールすることで日本語化ができます。

※ ドキュメントには「インストールして設定が必要」と書いてありますが、自分の環境ではインストールして再起動するだけで日本語化されました。

Visual Studio CodeからWSLに接続する

Visual Studio Codeの左下の >< のようなアイコンをクリックしてWSLにリモート接続できます。

WSLに接続すると左下のアイコンがこのように変わります。

以下の作業は、Visual Studio CodeからWSLに接続した状態で行ってください。

ゲノム解析に必要なツールの導入

パッケージ管理システム(conda)の導入

Ubuntuにインストールするアプリケーションを自分ですべて管理することは困難なので、何らかのパッケージ管理システムを使用することをお勧めします。パッケージ管理システムを使用することで、どのアプリのどのバージョンを、どこのフォルダにインストールしたかや、インストールしたアプリケーションの依存関係についても意識することなく、コマンド一つで簡単にインストールすることができるようになります。
ここでは、一般的に使われていて、バイオインフォマティクスツールも広くカバーしているパッケージ管理システムとしてcondaを用います。

condaはAnacondaかMinicondaのどちらかで導入するのが一般的です。

MinicondaはUbuntuのターミナルに以下のコマンドを入力してインストールできます。

Linux(ここではUbuntu)のターミナルが起動していない場合は、新しいターミナルを起動します。
Visual Studio Code内にUbuntuのターミナルが起動したので、ここからコマンドを入力できます。
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh

Python 拡張機能の導入

Pythonの開発にはPython拡張機能のインストールが必要になります。なお、Visual Studio Codeの拡張機能はアプリ全体にかかわるものはローカルでもリモート接続でも共有されますが、それ以外のものはそれぞれの環境ごとにインストールする必要があります。Python拡張機能をすでにインストール済みであっても、リモートのWSL環境上に新たにインストールする必要がありますので注意しましょう。

ここでは、Pythonの開発が必要になりますので、WSL環境にリモート接続した状態でリモート環境にPython拡張機能をインストールしてください。

すでにローカルにPython拡張機能がインストールされていても、新たにリモートのWSL環境上にインストールする必要があります。

作業ディレクトリの設定とこれまでの設定の保存

デフォルトでは作業ディレクトリはUbuntuのホームディレクトリになっていますが、Windowsからアクセスできないので作業ディレクトリを変更しておきましょう。

C:\BioTech-LabというフォルダにUbuntu側からアクセスするときは、/mnt/c/BioTech-Labとなります。

Open Folder (フォルダーを開く)で作業ディレクトリを選択できます。
上側の入力ボックスにディレクトリを入力します。(Show Local (ローカルを表示します)を選択するとリモート接続が切れてしまうので注意してください)

これでUbuntuターミナルの作業ディレクトリが指定したフォルダに変更されました。最後に以上までの設定を保存しましょう。

Save Workspace As… (名前を付けてワークスペースを保存…)で、ワークスペースを保存します。
Show Local (ローカルを表示します)を選択して、ダイアログからワークスペースの保存先を選択します。(入力ボックスにディレクトリを入力してOKでは、NG)

ここでのポイントは、ワークスペースファイルの保存はShow Local (ローカルを表示します)でダイアログを表示させて、Windowsのファイルシステムに保存することです。それにより「WSLにリモート接続する」という設定も保存されますが、/mnt/c/BioTech-Lab/***のようなUbuntu側のディレクトリに保存してしまうと、ワークスペースが保存場所からの相対パスで保存されるので、「WSLにリモート接続する」という設定が保存されません。そのほか、Jupyter Notebookが正しく読み込めなかったりといろいろ問題があるようです。

これで次回からはこのワークスペースを開けば、この状態で開くことができるようになります。

最後に、「Hello, World !」

Python スクリプトファイルの実行

左側のエクスプローラで「*****.py」ファイルを作成し、そこにPythonのコーディングをしていきます。

左側のエクスプローラでファイルを新規作成します。ここで指定したファイルの拡張子によって、自動的に言語が指定されます。
作成したPythonファイルを開いて、コードを記述していきます。

F5キーでPythonファイルを実行してみましょう。Pythonインタープリターの選択画面が出たら、conda環境のPythonを選びましょう。

UbuntuのターミナルにHello, World!が表示されたら、Ubuntuの中のPythonプログラムを起動することができたということです。

注意:必ずconda環境のPythonで実行していることを確認してください

初回のPython起動時にPythonインタープリターの選択画面が出ますが、「Python 3.〇.〇 64-bit (‘base’:conda)」となっているconda環境でインストールしたPythonを選択してください。

UbuntuにはデフォルトでPythonがインストールされているので、そちらで実行してしまっているとせっかくconda環境で新たなライブラリを導入しても反映されなくなってしまいます。

もし導入したライブラリが反映されていない場合はVisual Studio Codeの左下のPythonインタープリターの部分を確認して、conda環境で実行できているかどうかチェックしてみてください。

デフォルトのPythonが選択されている
conda環境のPythonが選択されている

もしデフォルトのPythonが選択されている場合は、左下の「Python 3.〇.〇 64-bit」の部分をクリックしてPythonインタープリターの選択画面を表示させて、conda環境のPythonを選択してください。

Jupyter Notebook の実行

次に、Jupyter Notebookを実行してみましょう。

先ほどのPythonのプログラムではPythonのスクリプトファイル(.py)にコードを書いてそれを実行するというスタイルでしたが、実際のデータ解析においては「一つ一つ処理を実行していって、出てくる結果を見ながら進めていく」ということが多いと思います。(もちろん、すでに完璧なパイプラインがあるのなら、Pythonスクリプトを実行するだけで済むのでしょうが…)

その時に役に立つのがJupyter Notebookです。Jupyter Notebookを使えば、一つ処理を行うごとに結果を確認して、次の処理に進んでいくことができます。さらに、解析のステップごとに処理をやり直したり、Pythonのスクリプトとその結果を同じファイルに保存してほかの人と解析結果を共有したりと様々な利点があります。おそらくデータサイエンスの世界ではデファクトスタンダードでしょう。そのJupyter Notebookをバイオインフォマティクスの領域でも使ってみます。

Jupyter Notebook自体はAnacondaに含まれており、Visual Studio CodeのPython拡張機能をインストールすることでVisual Studio Codeから使うこともできます。Minicondaをインストールした場合は、Jupyter Notebookに必要なモジュールがインストールされていないので、途中でインストールを促されると思います。その時は、指示に従ってcondaからインストールしてください。

まず、Pythonスクリプトファイルの時と同様に、左側のエクスプローラにJupyter Notebookのファイル(.ipynb)を作成します。この拡張子により自動的にJupyter Notebookと認識してくれるので、これを開けば自動的にJupyter Notebookが開きます。
Jupyter Notebookでは、セルと呼ばれるブロックごとにプログラムを書いて実行していきます。下のようにプログラムを書いて実行してみましょう。

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

この時、Pythonインタープリターの選択画面が出たら、conda環境のPythonを選択してください。

ちなみに、Jupyter Notebookはここで示したように先にNotebookファイルを作成せずに直接起動することもできますが、Notebookファイルを作成していないと相対パスを用いて外部ファイルを指定することができないので、ここでは先にNotebookファイルを作成しています。

まとめ

以上のような方法で、同一のWindowsアプリケーションの中で、Linuxの操作も完結することができ、さらにPythonのスクリプトも書くことができます。さらに、作業ディレクトリはWindows内とすることもでき、実質的にはWindows内でゲノム解析をしているような状況にすることができると思います。また、データ解析では標準的なJupyter Notebookも用いることができます。

それでは、今後はこの環境を用いてゲノム解析を進めていこうと思います。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)