読者です 読者をやめる 読者になる 読者になる

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

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

画像データの基本

目次

 

そもそも画像データってなんなのさ?

 とりあえず下の絵を見てください。

f:id:shatoshi:20170609122144j:plain

左のウィンドウがお米の写真(EMBL の Sample 画像、EMBL > Samples > rice.tiff で開ける)で、右のウィンドウがお米の写真の青い枠で囲ったところを拡大したものになります。この右の拡大した図をみればわかるように、画像データは小さな四角ピクセル・pixel と言います)から成ります。

ImgeJ のメインウィンドウの下を見ると、x = 2, y = 3, Value = 118と表示されています。これは、一番左上のピクセル(0,0)から数えて右に2番目、下に3つ目のピクセル(カーソルの示す場所)の値が118であることを表しています。

ImageJ で同じ画像を開いて(EMBL > Samples > rice.tiff)色んな所にカーソルを合わせてもらえれば分かりますが、明るいところがピクセルの値が高いことが分かると思います。このピクセルの値の大きさはは、この画像だと0~255の範囲になります。*1

つまり、画像データというのは、ある値を持ったピクセルの集まりであると言えます。

以下のようなイメージです(画像の英語はイメージなので、イメージのイメージということになる)

f:id:shatoshi:20170612205306j:plain

ピクセルの値や座標の情報を定量的に扱うこと、それが画像解析の第一歩になります。また、画像データは、見てのとおり縦と横に値が並んでいるデータなので、実は行列計算と相性が良いです。行列を使うと、複雑な計算をシンプルに書くことができたりするメリットがあるため、画像処理プログラムの内部では行列計算をやっていることけっこうあります。

 

カラー画像

皆さんの身近な画像データはスマホやデジカメで撮った写真のようなカラー画像になるかと思います。カラー画像は、一つのピクセルに光の三原色である赤・青・緑に対応する値が記録されていて、それで色を表現することができます。スマホで撮った写真などをImageJで開くとお米の白黒画像とは違って一つのピクセルに三つの値が表示されると思います。以下の画像は、EMBL のサンプル画像の RGB_Cell.tif です。

f:id:shatoshi:20170612212448j:plain

 画像の十字で示した部分、x = 257、y = 169、の座標の値が、赤 = 051、緑 = 088、青 = 022、であることが分かります。

画像データの種類

JPEGPNGBMP、GIF、TIFFといった種類の画像ファイルがあることは知っているかもしれませんが、それぞれに特徴があります。ここではそれぞれの画像ファイルの形式について詳しく述べません(気になればググりましょう)が研究用途には、TIFF を使いましょう。そして JPEG は絶対に使ってはいけません!

 TIFF は様々な種類の画像形式(8-bit、16-bit、RGBのカラー、幾つかの画像をまとめたスタック)を扱えます。上に示したお米の画像も TIFF 形式の画像です。

一方で JPEG は画像データの圧縮をするため、他の画像形式と比較して非常に容量が小さいです。 それゆえに、皆さんの持っているスマホのデータは JPEG で保存されます。しかし、圧縮の際に非可逆的な圧縮を行うために、画像の元々の情報が失われてしまいます。なので、研究・科学の用途で使うべきではありません。

*1:

0~255の範囲なのは、画像の形式が8-bit画像だからです。コンピュータは見た目高度なことをやっていますが、実は内部での計算は0か1かという二進数で処理されています。この0か1をbitといい、一つのbitで表される数というのは0か1かの二通りですが、それを8こ集めると2の8乗通りの256通り表すことができます。つまり、8-bit画像とは一つピクセルが8-bitで表現されている画像になります。8-bit以外にも、16-bit や 32-bit の(つまり2の16乗通りや2の32通りのピクセル値で表現される)の画像もあります。

 

 

ImageJ Fiji + Python で画像解析プログラムを書こう(前編)

目次

ImageJ と Python

ImageJ Fiji には画像解析のためのプラグインのほかに、スクリプトを書くためのエディターと実行するための機能が付属しています。幾つかのプログラミング言語や元々の ImageJ のマクロを用いて記述でき、その中に Python (厳密に言うと Java 上で実装された Python なので Jython になります)が含まれています。

Python は初心者向けの言語で、短い行数で書くことができ、読みやすいコードが書けるのが特徴です。

ImageJ で動かす Python の特徴(この項目は意味が分からなければ読み飛ばしてもかまいません)

一言で Python といった時には、基本的に CPython を指します。CPython とはC言語で書かれた Pythonを意味し、CPython のライブラリの多くはC言語で書かれています。一方、ImageJ で動かす PythonJava という言語で作られていて、Jython と言います。

この Jython の特徴としては、

・文法は CPython と一緒で、Python の標準ライブラリ(os、csvなど)が使用できる。

・ImageJ の機能(クラス)など、Java で書かれたプログラム・クラス・ライブラリを使用できる。

・CPython のライブラリ(numpy、scipy、matplotlibなど)が使用できない。

・開発があまり活発でなく、現在 CPython の v2.5 相当である。

になります。

なので、僕は画像解析・インターフェース周りを ImageJ + Jython であつかい、解析した情報をcsvファイル等に出力 -> CPython で csvファイルを読み込んで、統計的な解析・グラフのプロット・フィッティングなどを行っています。

ImageJ で Python を動かそう

まず、ImageJ のメニューウィンドウから、File > New > Text Window (もしくは、Ctrl + Shift +「N」)で Text Window を開きます。 f:id:shatoshi:20170612184120j:plain

Text Window を開いたら、 Language > Python で言語を指定します。 f:id:shatoshi:20170612184334p:plain では早速、動かしてみましょう。

1. Hello World!

print("Hello World!")

と打って Run を押してください。 f:id:shatoshi:20170612184851j:plain

ウインドウの下の部分に、Hello World!と表示されましたね。 このプログラムは、Hello World!と文字を表示させるプログラムになります。 print()は括弧の中に入れた値を画面に出力する関数になります。関数とはあるインプットに対して、何がしかの出力をしたり計算結果等を返したりする機能のことになります*1。今の時点では関数というものがよくわからないかもしれませんが、プログラムを書いていくうちに分かっていく部分もあると思います。それに後で詳しく説明したいと思ってます。 Run を書かれているているプログラムが実行されます(Ctrl +「R」のショートカットでも実行できます)。

では次に、

print("Hello World!")
# print("Good Morning World!")

を実行してみましょう。 先ほどと結果は一緒だと思います。実は#の後に書かれた部分は実行されません。プログラムに関するコメント#の後に書きます。コメントは日本語で書くこともできますが、日本語がインストールされていないPCで実行しようとするとエラーが出る場合があります。なるべく英語で書きましょう。

2. 計算

では、次に、

x = 2
y = 3
z = x + y
print(z)

と打って実行しましょう。 f:id:shatoshi:20170612190655j:plain

実行すると、5 と表示されましたね。

このプログラムは、

  1. x という変数(プログラムにおける数字の入れ物)に 2 を代入する。
  2. y という変数に 3 を代入する。
  3. z という変数に x + y (2 + 3 なので答えは 5)を計算して代入する。
  4. z を表示する。

という計算をするプログラムになります。 プログラムは基本的に上から下に順番に実行されます。

基本的な四則演算などは、

print(3+2) #加算
print(3-2) #減算
print(3*2) #乗算
print(3/2) #除算
print(3.0/2.0) #除算
print(3**2) #指数

f:id:shatoshi:20170612192207j:plain

になります。だいたいエクセルとおんなじですが、指数の計算は ^ じゃなくて ** になります。

そして、この 3/2 と 3.0/2.0 の計算結果が違うのに注目してください。Python は整数同士の計算に対して、整数を返すようになっているので、3/2に対して1という結果を返してしまいます。どちらかの値が、小数点のついた値であれば小数点付きの値(浮動小数点、float 型)を返します。なので、割り算の時は気を付けましょう*2

長くなりそうなので、一旦ここで切ります。 続きはこちら(すぐに書いて追加する予定です)。

*1:実はPython2系においてprintは関数ではないのですが、3系では関数になっています。ややこしい。厳密な正しさはおいといて、「説明のシンプルさ」と「2系と 3系どちらでも動くコードを書けるようになること」を重視して上記のように記述しました。以下のリンクを参照のこと。 Python 2.7.x と 3.x の決定的な違いを例とともに | プログラミング | POSTD

*2:ただし、この Python の挙動は2系のみで、3系だと 3/2 は 1.5 を返すのです。ややこしい

ImageJ で米粒(細胞)を数えて解析しよう。

目次

 

 

概要

ImageJ には色んな機能がありますが、一方で使い始めたばかりの時はコマンドの多さに圧倒されてしまいます。目的の解析をするためにいったいどのコマンドを選べばいいのかよくわからない状態になりがちです。

そこで、この投稿では「米粒の数を数える」「それぞれの米粒の大きさ・輝度・形の情報を定量的に解析する」という作業を通して ImageJ の機能を体験してもらおうと思います。

今回は例として米粒を解析しますが、米粒を細胞に置き換えればあなたの研究に応用できるかもしれません。

今回の解説は ImageJ Fiji で行うことを前提に書いています。Fiji について、Fiji のインストールについてはこちら。

ImageJ Fiji のインストールと Fiji - バイオ系だけどプログラミング始めました

 

 

米粒の画像を開く

 EMBL > Samples > rice.tiff で開けます。

f:id:shatoshi:20170612181622j:plain

サンプル画像を開くためにはネットに接続している必要があります。

閾値を決める

 ピクセルの輝度値をもとにして閾値(Threshold)を決めます。この Threshold よりも明るい(=輝度値が高い)所と暗いところに分けます。この作業を二値化と言います。二値化をすることで、コンピュータにモノを認識させやすくすることができます。

f:id:shatoshi:20170611233749j:plain

Image > Adjust > Threshold で Threshold window が出ます。

f:id:shatoshi:20170612005830j:plain

Threshold window の一番上のグラフがピクセル値のヒストグラムで、横軸がピクセルの輝度値、縦軸がピクセルの個数になります。なんとなく複数の山のガウス分布っぽい感じになてるのが分かります。

暗い背景に明るいモノがあるか、明るい背景に暗いものがあるのかを Dark Background  をチャックして選択します。このお米の画像は黒い背景に白いお米が映っているので Dark Background にチェックを入れます。

Methods から閾値の決定の仕方のアルゴリズムを選んで(キャプチャの Default の部分から選ぶ)、Auto を押すとピクセルの値の分布をもとに自動的に閾値を設定してくれます。その右のRedとなっている部分は、その閾値で選択される部分を赤色で示すって設定で、他の色にすることもできます。

 

上のバーをスライドさせることで自分で決めた閾値を設定することもできます。しかし、全体的なバックグラウンド明るさや認識したい物体の輝度は、観察するときの光源の強さだったり、染色の仕方などで変化しやすいです。そういった場合、自分で閾値を決める際に毎回手で値を決定するのは面倒ですし、恣意性が強くなってしまいます。なので、閾値を決めるアルゴリズムを色々試してみて、自分のサンプルに適したアルゴリズムを用いるのが一番良いと思います。Method が多すぎてどのアルゴリズムを使えばいいかわからないって時には、Image > Adjust > Auto Threshold で Try all を選んで OK を押せば、どの Method で threshold 決めればどういう見た目になるのかを全部表示してくれます。

 

Set を押すと画像に閾値を設定することができます(Reset でもとに戻せます)。Apply を押すと、閾値を元に白黒(0 or 255)の画像に変換します(このとき元の画像は失われてしまうので注意)。

キャプチャでは、黒い背景に白い物体がある(白いピクセルピクセル値の高さにあたるb)という前提で、ImageJ の Defaut の手法でピクセル値の分布を元に閾値を決定しています。

f:id:shatoshi:20170612140025j:plain

キャプチャを見ると、上の方のお米の部分は赤くなっていて選択されていますが、画像の下の方は全体的に暗い(ピクセルの輝度値が低い)ので、ちゃんとお米と背景の部分が選択されていません。右の Plot of rice のウィンドウは rice.tiff の青い縦線で選択した部分のピクセルの値をプロットしたグラフになります(選択ツールで直線を引いて、Analyze > Plot Plofile)。これを見ると明らかに下の方が暗いですね

でも、ちゃんと下のお米もお米として認識したいですよね。では、どうすればいいのか?そこでバックグラウンドの減算をしましょう。

 

バックグラウンドの減算

 画像データのピクセルの値というのは、同じ条件で測定したつもりでもサンプルや光源の状態によりかなり変化します。また、上のキャプチャ画像のように画像の上の方と下の方で輝度値に差がある場合も少なくないです。そこで用いるのが Subtruct Background です。

Process > Subtruct Background で開けます。

 

f:id:shatoshi:20170612141244j:plain

左のウィンドウの画像が元の画像で、真ん中のウィンドウの画像に Subtruct Background を適用しています。このバックグラウンドの減算は、画像を3Dとして見立てて、その表面の裏側からボールを転がすことで背景の値というのを計算しています。下のような図をイメージしてもらえればいいです。

f:id:shatoshi:20170612144033j:plain

これを三次元の面の上で行う感じです。なので、このボールの半径を物体の大きさよりも小さくしてしまうと、お米が背景として減算処理されてしまいますし、半径を大きくし過ぎると画像の背景が均一でなくなる可能性があります。Preview にチェックを入れて、ちょうどいい値を入れるのがいいでしょう。詳しい原理等は下のリンクを参考にしてください。

Subtract background [ImageJ Documentation Wiki]

 

お米の画像に対して、ボールの半径を40にしてバックグラウンドの減算をした例がこちらになります。

f:id:shatoshi:20170612145606j:plain

全体的な輝度値のムラがなくなり、お米と背景を閾値を決めることできちんと分けられていることが分かると思います。

米粒のカウントと定量的解析

 次はこのお米を数えて、定量的に解析しましょう。

閾値を Set して、OK を押します。この閾値で選んだ部分を解析するには、Analyze > Analyze Particles を使います。

f:id:shatoshi:20170612151405j:plain

Size はどれくらいの大きさの粒子を解析対象にするか?Circularity は、どれぐらい真円に近い粒子を解析対象にするか(4π *(面積)/(周囲の長さの二乗)、得真円だと1になる)?という設定になります。

あとは解析の色々なオプションをチェックボックスから選びます。とりあえず、上のキャプチャの設定で適当に解析してみましょう。

f:id:shatoshi:20170612152552j:plain

こんな感じになりました。Results のところに、面積、画像の中心、画像の重心、X、Y 方向の長さ、などが出力されています。この結果は、Excel のファイル形式や csv 形式で出力できます(File > Save as > 拡張子を変えると保存形式を変えることができます。個人的には csv file がいいと思います)。解析したい値については、Analyze > Set Measurement で選ぶことができます。

f:id:shatoshi:20170612154649j:plain

色々解析する値がありますが、試しに上の四つを解析対象にしましょう。それぞれ、面積、領域内の平均のピクセルの値、重心、楕円フィット(対象を楕円とみなしたときの長軸・短軸・長軸の傾き)になります。

 

また、Roi Manager が起動して画像に番号が出てきていると思います。Roi とは Region of Interest のことで、直訳すると関心のある領域になります。Roi Manager を用いると、この Roi で選んだ部分を再度解析したり、解析したのは画像のどの部分なのかを確認したり、Roi の部分を塗りつぶしたりといったことが可能になります。また、この Roi も保存することがで、ドラッグアンドドロップで開くことができます。後で解析結果を見直すために、解析結果と一緒に保存しておくのが良いでしょう。

出力された結果を見ると、画面の端にあって見切れているお米も解析対象に含まれています。こういったお米が解析結果に含まれると面積の定量等に支障をきたすので、除外したいですよね。そういった場合には、Analyze Particles で Exclude on edges にチェックを入れます。また、一ピクセルしかないノイズを拾ってきてしまっている所もあります。これは、size で適切な値を入れてはじきましょう。

f:id:shatoshi:20170612155210j:plain

OKを押して解析すると次のようになります。

f:id:shatoshi:20170612155243j:plain

上手いこと、お米を認識して、測定ができていると思います。ただ、5番目と32番目のお米は、二つのお米が一つのお米として認識されています。Roi マネージャーを使うことで解析後に、そういう変な解析結果が紛れ込んでいるというのを確認することができます。

また、このような一つのお米として認識された二つのお米を、ちゃんと二つのお米として分ける方法があります。閾値の決定で二値化(Apply を押して 0 or 255 の画像に)した後で、Process > Binary > Watershed(分水嶺の意味)で二つに分けることができます(

[http://imagejdocu.tudor.lu/doku.php?id=gui:process:binarys=watershed#watershed:title&]

 )。ただ、この二値化した画像からはピクセルの輝度値の情報を読み取ることができません。なので、Analyze Particles して、Roi Manager にお米領域を追加する > 二値化する前の元の画像を選択性して、Roi Manager の Measure で解析しましょう。後は、解析結果をcsv等に出力して他のソフトで解析しましょう。例えばこんな感じになります(Pythonヒストグラムを描写しました)。

f:id:shatoshi:20170612164654p:plain

 

f:id:shatoshi:20170612164727p:plain

 

 謝辞

この投稿は、新学術領域 少数性生物学(平成23-27年)が主催した第3回少数性生物学トレーニングコースで教わった内容を元に記述いたしました。少数生物学の領域の方々、特に ImageJ と Python での解析の実習でお世話になりました三浦先生と新井先生に感謝いたします。

 

はてなブログに Jupyter notebook を載せるテスト

ブログに Jupyter notebook を載せるためのテスト。 Download as でmarkdownをダウンロードして、はてなブログmarkdown 形式の編集を選択してコピペした。

print("Hello World!")
Hello World!

モジュールのインポート。

import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline

x に 0 から 2π までの 0.1 刻みの値を代入。 y に x の各値を入力とした sin の値を代入。

x = np.arange(0,2*np.pi, 0.1)
y = np.sin(x)
print("x =", x)
print("y =", y)
x = [ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4
  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9
  3.   3.1  3.2  3.3  3.4  3.5  3.6  3.7  3.8  3.9  4.   4.1  4.2  4.3  4.4
  4.5  4.6  4.7  4.8  4.9  5.   5.1  5.2  5.3  5.4  5.5  5.6  5.7  5.8  5.9
  6.   6.1  6.2]
y = [ 0.          0.09983342  0.19866933  0.29552021  0.38941834  0.47942554
  0.56464247  0.64421769  0.71735609  0.78332691  0.84147098  0.89120736
  0.93203909  0.96355819  0.98544973  0.99749499  0.9995736   0.99166481
  0.97384763  0.94630009  0.90929743  0.86320937  0.8084964   0.74570521
  0.67546318  0.59847214  0.51550137  0.42737988  0.33498815  0.23924933
  0.14112001  0.04158066 -0.05837414 -0.15774569 -0.2555411  -0.35078323
 -0.44252044 -0.52983614 -0.61185789 -0.68776616 -0.7568025  -0.81827711
 -0.87157577 -0.91616594 -0.95160207 -0.97753012 -0.993691   -0.99992326
 -0.99616461 -0.98245261 -0.95892427 -0.92581468 -0.88345466 -0.83226744
 -0.77276449 -0.70554033 -0.63126664 -0.55068554 -0.46460218 -0.37387666
 -0.2794155  -0.1821625  -0.0830894 ]

グラフのプロット。フォントは Arial。

plt.plot(x,y, "bo")
plt.xlabel("x")
plt.ylabel("y")
plt.rc("font", family = "Arial")
plt.rc("font", size = 14)

f:id:shatoshi:20170609015626p:plain

このブログについて

このブログには ImageJ と Python を用いた解析について技術的なところを色々書いていく予定です。

 

環境等

私が使っている PC は基本的に Windows8.1(64-bit)で、解説も WindowsPC での内容になります。ImageJ と Python のどちらも WindowsMacLinux どのOSでも動作するように作られているので他のOSを使われている人でも問題ありません。ただ、微妙な違いがあるかもしれません。

 特に断らない場合、ImageJ と書いた時には ImageJ Fiji を指します。

特に断らない場合、PythonPython 3.6 の Anaconda を前提として書いています。

 

 謝辞

私は、ImageJ FIji と PythonJython)による解析を、新学術領域 少数性生物学(平成23-27年)が主催した第3回少数性生物学トレーニングコースで教わりました。したがって、少数性生物学トレーニングコースで学んだ内容を元に記述した部分が多くあります。少数生物学の領域の方々、特に ImageJ と Python での解析の実習でお世話になりました三浦先生と新井先生に感謝いたします。

少数性生物学の領域の先生方が執筆された書籍が出版されています。従来の生化学でなされてきたバルクの状態での議論では扱えない分子生物学の問題について記述されてい(ると思い)ます。僕はまだ読んでいないですが良書であること間違いないと思います。

 

覚えておくと役に立つ Windows のショートカット・コマンド

あまり知らない人も多いかもしれないけど役に立つショートカット

・Ctrl + Shift +「N」で新しいフォルダを作る。

・「F2」もしくは Fn +「F2」でリネーム。

・Ctrl + 「W」でウィンドウを閉じる。

割とみんな知ってる基本的なショートカット

・Ctrl +「C」でコピー。

・Ctrl +「V」で貼り付け。

・Ctrl +「A」で全部選択。

・ファイル等を選んで Shift + 「矢印」で複数の並んだファイルを選択。

・Ctrl を押しながらクリックで任意のファイルを複数選択。

・Shift + Delete でごみ箱を経由せずにデリート。

 

気が向いたら追加するかも。

ImageJ Fiji の役に立つショートカット

ImageJ のショートカットの確認

ショートカットが設定されていれば画像のように、コマンドの右の方に表示されます。

f:id:shatoshi:20170608032607j:plain

また、Plugins > Shortcuts からショートカットを確認したり、自分でショートカットを設定したりできます。

 

使用頻度の高い覚えておくと便利なコマンド

・「L」でコマンドの検索。

f:id:shatoshi:20170608184559j:plain

使用頻度ナンバーワン。やりたいことは分かってるんだけどメニューのどこにあるのか分からない時に便利。コマンドを選択すれば実行でき、Menu Path にどこにコマンドがあるかが書いてある。Class を見ればどのクラスを import すれば良いかが分かるので scripting にも便利。

また、コマンドを選択して Source を押すことで Source のページにに飛ぶことができる。

 

・Ctrl + Shift +「O」で数字・アルファベット順で次のファイルを開く。

どうしても作業を自動化できない時には、幾つかのファイルを効率的に処理する必要が出てくる。そういう時に使うけど、1、2、3、・・・、11、 とファイルがあると1の次に11が開かれるので、01、02というファイル名で保存するのが良いと思います。

 

・Shift + 「D」で Duplicate。

 画像処理をトライ&エラーで色々試すときには、元画像を開いた後 Duplicate して作業するのが良い。Ctrl + 「Z」でもとに戻すことのできない作業は割と多い。あと、Duplicate しても元の画像ファイルが増えるわけではない。

 

・範囲選択して「T」で、ROI Manager に追加。

f:id:shatoshi:20170608184635j:plain


・範囲選択して「M」で、Measure。

 

f:id:shatoshi:20170608184944j:plain

 

 

バイオ系だけど Python を始めよう

Python って?

Pythonプログラミング言語で、近年最もよく使われるプログラミング言語のひとつになっています。

Python - Wikipedia

 

特徴として、

フリーで使うことができ、オープンソースソフトウェアであるため内部での計算がクリアである。

・短い行数でプログラムをシンプルに書くことができ、書いたプログラムが読みやすい。

WindowsMacLinux などの多くのプラットフォームに対応している。

・行列計算、グラフのプロット、データ分析、機械学習などのライブラリが充実している。

 

などが挙げられます。

これらの特徴があるため、プログラミング初心者が研究のためのツールとして学ぶのに最適な言語であると言えます。また、他の記事で今後紹介する予定ですが Python を用いることで、ImageJ に機能の追加をしたり、ImageJ でルーチンの画像処理を自動で行うためのプログラムを書くことができます(実はこれから紹介する Python とは微妙に異なるのですが表面実用上は大体同じです)。

 

Google などの企業でも Python はよく使用されています。あなたがよく使う web サービスも裏方のほうでは Python が支えているかもしれません。

また、タンパク質の立体構造描写によく使われる PyMol は名前に "Py" が付いていることからわかりますが、Python によって作れれたプログラムです。

 

Anaconda について

Anaconda というのは Python の配布形態の一種で、Python 本体に加えて、よく使われるライブラリ("汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたもの" ライブラリ - Wikipedia より)を一括でインストールできます。

このライブラリのインストールというのは厄介で、特に Windows でのインストールはちょっと面倒です。それ以外の MacOSLinux でもインストールするライブラリのバージョンやインストールの順番で躓いてしまうこともしばしばあります。

なので Anaconda をインストールすることをお勧めします。

 Anaconda 万歳\(^o^)/

 

Anaconda のインストー

以下のページから各々のOSに応じたものをインストールしましょう。

Python のバージョンが 2.73.6 がありますが(記事執筆時、2017年6月時点)、3.6の方をインストールすることをお勧めします。

この二つのバージョンについてですが、3.6の方が上位互換というわけではなく、ちょこちょこ細かい違いがあったり、廃止された関数があったりします。古いバージョンの2.7系にしか対応していないライブラリ等もありますが、使用頻度の高い主要なものは3.6で動作しますし、3系への移行を公式に推奨されています。また、3.6の Anaconda をインストールした後で2.7系の仮想的な環境を作ることもできます。

 

なので(2.7でしか動かないライブラリをどうしても使いたいという事情がない限りは)3.6をインストールしましょう

 

詳しいインストールの方法は今後書く予定ですが、基本的にはwindowsの場合には適当にクリックすればインストールできます。以下のリンクを参考にすればインストールできます。

qiita.com

Link 集

生命系の大学院生・研究者のためのLink集を備忘録もかねて作っておきます。特に Python や ImageJ やその他のツールの使い方で参考になるページや、勉強や知識の確認のために使えるページを集めます。

総合

togotv.dbcls.jp

実験プロトコール

結構ええよ。僕の研究に関係するものなのでタンパク質多め。

www.pssj.jp

バイオ実験の原理と方法 Technical Tips (タンパク質精製・プロテオミクス・細胞解析)

ラボマニュアル « 遺伝子材料開発室 (RIKEN BRC)

勉強・ニュース

生物物理関係・顕微鏡の仕組みなどとても勉強になる内容が沢山あります。石島先生にはいつも(勝手に)お世話になっております。

石島研-研究

 

www.sbj.or.jp

 

d.hatena.ne.jp

ImageJ 関係

基本的な使い方は以下のページを全部見ればいい。

ぶっちゃけ僕が書かなくてもいいのかもしれない。

seesaawiki.jp

 

 

sites.google.com

 

ImageJ - LP-tech -人工知能・画像解析スキルが身に付く専門サイト-|LPixel(エルピクセル)


Python

Python 関係については、分からないこと・忘れたことがあったら、ブックマークとかから探すよりもググった方がぶっちゃけ早い。

NumPy / pandas | hydroculのメモ

 

1.4. Matplotlib: 作図 — Scipy lecture notes

 

pythonでフィッティングをする - おっぱいそん!

 

その他

PyMol の使い方とかタンパク質の立体構造の 3D Print とか。

Windowsで行こう -構造生物学に関する備忘録-

ImageJ Fiji のインストールと Fiji

 

ImageJ について

ImageJとは、Java というプログラミング言語で書かれた画像解析のためのソフトウェアです。

ImageJ - Wikipedia

 

ImageJ はオープンソースソフトウェア、つまり、どういういう仕組みでプログラムが書かれているかが公開されています(オープンソースと一口に言っても色々ライセンスの種類があるのですがそれは置いときます)。Java で書かれているので、OS に依存せず WindowsMacLinux 上で同様に動作することが特徴です。

オープンソースで、かつ誰もが自由に使うことができ、プログラムが画像をどういう処理をしているかが明確なので科学技術計算に向いているため、広く使われています。ImageJ は元々はNIHで開発されたため、生命科学系のツールが豊富で、生命科学系の分野でのデファクトスタンダードとなっています。

 

Fiji について

Fiji はその ImageJ の種類の内の一つで、元々の ImageJ に様々な機能が追加されているパッケージです。オープンソースである ImageJ は、研究者・開発者により機能の追加が容易にできます。Fiji is just ImageJ (Fiji こそがまさに ImageJ だ)と表現されるように、Fiji はオープンソースである ImageJ の利点を最大限に活かして多くの機能が追加され、まとめられています。

Fiji をインストールすれば多くの機能を利用することができます。例えば、超解像顕微鏡の一つであるSTOMのデータ解析のためのプラグインが含まれています。また、Java 以外のプログラミング言語で ImageJ を操作したり機能の追加をする機能も付属しています。

 

うだうだ書きましたが、生物化学・生命科学分野で画像を扱うなら、ImageJ を使えば大体オッケーだし、基本的には Fiji はノーマルの ImageJ の上位互換なので Fiji を言インストールすれば間違いはないです。

 

Fiji のインストー

imagej.net

 Windows へのインストールについて

上のリンクの Downloads から、32-bitか64-bitか自分のOSにあったものをクリックしてダウンロードしましょう。ダウンロードしたファイルを解凍すると ImageJ-win64(もしくは32).exe というファイルがあるのでそれをダブルクリックして開けば使えます。簡単でしょ?

f:id:shatoshi:20170607232241j:plain

後はフォルダを適当な場所に移動させましょう。ImageJ の公式は、C:\user\[user name]\ の下にImageJのフォルダを置くことを勧めています。

 

Mac へのインストールについて

上のリンクの Downloads から、macOS を選んでダウンロードしましょう。dmgという仮想イメージがダウンロードされるので、dmgファイルを開いて出てきたファイルを選んで Application フォルダにコピーしましょう。f:id:shatoshi:20170607232250j:plain

 f:id:shatoshi:20170607232253j:plain

Linux へのインストールについて

わざわざ Linux を使うような変態人はコンピュータの操作に詳しいと思うので、説明が必要だとは思わないので省きます。まぁそんなに難しくはないでしょう。

 

基本的な使い方は、以下のリンクが参考になるでしょう。

今後このブログにも使い方を書いていく予定です。

imagej.net

seesaawiki.jp