バイオ系だけどプログラミング始めました

ImageJ (Fiji)の使い方や Python でのプログラミングなどを、主にバイオ系の研究者・大学院生向けに書いていこうと思います。

バイオ系だけどまずはプログラムを動かしてみよう

目次

この記事について

この記事では、Python のプログラムを書いて、動作させる所までを解説します。

Python の説明とインストールについてはこちらの記事を読んでください。

バイオ系だけど Python を始めよう - バイオ系だけどプログラミング始めました

本記事では、ImageJ + Jython の記事で書いたのとは少し異なる種類の Python を用います。ImageJ Fiji + Python で画像解析プログラムを書こう(前編) - バイオ系だけどプログラミング始めました 詳しくはここを参考にしてください。

本記事は、上記の二つのリンクの記事を読んで Python(Anaconda)をインストール済みで、ある程度 Python の使い方や性質を知っている前提で書いています。先にそちらを読まれることをお勧めします。

ターミナルやコマンドプロンプトから Python を動かす

早速 Python を動かしてみましょう。 では、Windows の方はコマンドプロンプトを開いてください。Mac の方はターミナルを開いてください。(Linux の方はまぁ説明いらんでしょ)これらは、文字を打ってPCを操作するためのプログラムになります。起動すると、

C:\Users\ユーザー名>

と表示されていると思います。この状態は、今「C:\Users\ユーザー名」というパスの場所にいることを表していて、カーソルが点滅しているのは入力待ちであることを示しています。コマンドを打ってエンターキーで、命令を実行することができます。MacLinux の場合は表示が異なりますが、同じことを表していて、以降の操作も同じようにすればいいです。 この状態で、 python と打ってエンターを押してください。するとこのような画面になると思います。

f:id:shatoshi:20170704125949j:plain

これで、Python が起動しました。「>>>」はPythonのコマンドの入力待ちを表しています。それでは、

print("Hello World")

と打ってエンターを押してください。すると

Hello World

と表示されましたね。このモードでは、一行づつ入力して実行します。手軽に起動と実行ができるので、Pythonの関数の動作の確認や、ファイル操作、ちょっとした計算などはこれを使うのがいいと思います。

例えば、

a = 3 + 5
a

とすると 8 が出力されます。

変数などのオブジェクトだけを書くと、その内容を print() 無しで表示してくれます。プログラムを書いている途中でテストをしたいときにはこういう書き方が便利です。この書き方は、ターミナルからの操作以外でも使えますよ。

この Python を終了するには、Ctrl + Z か、exit()と打てばよいです。

Pythonスクリプトを書いて動かす

先ほどは、コマンドラインから Python を動かしましたが、これでは一行ごとにしか記入できず、長く高度な内容を実行するのに向かず、同じことをするのに一々同じ内容を記述する必要があります。

メモ帳を開いて、

print("Hello World")

と書いて適当な場所(例えばデスクトップ)に helloworld.py というファイル名で保存しましょう。

そしてコマンドラインで、ファイルを保存した適当な場所に移動しましょう。

移動する方法は、cd directory名(フォルダ名だと思ってくれればいい)です。

例えば、Windows の場合はユーザーフォルダの下にデスクトップフォルダがあるので、コマンドプロンプトを起動してすぐの画面で、cd desktop と打ってエンターキーを押せばそこに移動できます。デスクトップに helloworld.py を保存した場合は、その状態で、python helloworld.py と打ってエンターキーを押しましょう。すると、

Hello World

と表示されたはずです。python ファイル名.py で、.py ファイルに書かれたPython のプログラムを実行する、という命令になります。また、helloworld.py というファイル名は長くて少し打つのが面倒ですが、「hell」と途中まで打って Tab キーを押すとファイル名が補完されます。

テキストエディタ統合開発環境を活用しよう

メモ帳でプログラムを書いて動かしましたが、OS 付属のメモ帳は最低限の機能しか持ち合わせていません。なので、プログラムを書くのにはあまり向いていません。プログラムを書くのに適した、高度な機能を持ったテキストエディタを用いることで快適にプログラムを書くことができます。

コードを書くためのテキストエディタは、シンタックスハイライトと呼ばれる文法に応じた文字の色分け、クリック一つやショートカットキーでテキストエディタからプログラムを直接動かす機能(わざわざコマンドラインを起動して python ファイル名.pyと打たなくてもいい)、関数や変数やオブジェクトの名前の補完機能などを備えています。ImageJ Fiji + Jython の記事を読まれた方は ImageJ の textwindow でプログラムを書きましたよねあんな感じです。

AtomSublime Text、Visual Studio Code、Pycharm、Spyder、Vim などが有名でしょうか。僕は Atom を愛用していますが、どれでもいいと思います。ただし Vim は、使いこなすには多くのコマンドを暗記する必要があり、初心者向けではないです。PyCharm、Spyderは Python 用の統合開発環境で結構良いらしいです(が僕は使ったことないのでその威力はよくわからん)。とりあえず、適当にググって良さそうだなと思ったものを使えばいいと思います。コードを書く人が複数人いる前で、どのテキストエディタがいいのかを聞いたりすると、きのこたけのこ戦争みたいな争いが起こる可能性があるので気を付けましょう。

Jupyter notebook を活用しよう

さて、最後に紹介するのは、Jupyter notebook です。Jupyter notebook というのは、コマンドラインからの Python の実行する方法と、スクリプトを書いて実行する方法のいいとこどりみたいな感じで使うことができます。ではコマンドプロンプトorターミナルを起動して、適当な作業用フォルダに移動して、「jupyter notebook」と打ちましょう。するとウェブブラウザが起動して、こんな感じ画面が出てきます。

f:id:shatoshi:20170704133719j:plain

右上のところの「New」のボタンを押して、Python を選びましょう。

f:id:shatoshi:20170704135330j:plain

こんな感じの画面が出てきましたね。ここでは、色々ぷトグラムを書いて実行してます。 この様に、一つのcellに複数の行のプログラムを書いて、cell単位で実行します。実行は「Ctrl」+「Enter」です。その出力結果はcellの下に表示されます。プログラムと実行結果が分かりやすいので、実験データの解析を Jupyter notebook で行うと便利です。それに、cell の種類を Markdown にすると見出し、表、数式などの記述が可能になります。(上のメニューバーの Cell > Cell type > Markdown、もしくは上のツールバーの部分の Code となっている部分を Markdown に変更)まさに notebook として使えます。じつは、このブログも Markdown 形式で書いています。慣れると楽ちんですよ。

一番上のところのuntitledって書いてあるのがファイル名でそこを選ぶと変更できます。コードは自動で保存されます。一度保存したやつをまた開きたいときには、Jupyter notebook の Files のタブ(Jupyter notebook を開いて一番最初にでるやつ)を開いてファイルを選択すると開いて実行することができます。

Jupyter notebook の使用例

例えば、Jupyter notebook とPythonの計算用ライブラリを使うと、以下の記事のような感じで計算やグラフのプロットができます。参考までに。

satoshithermophilus.hatenablog.com

Python の入門にはこちらの本がおすすめです。プログラミング自体が初心者の人に向けて詳しく書かれています。