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

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

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

目次

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

ImageJ と Python

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

例えば、別の記事で書いた米粒のカウントを、自動で行うプログラムをこんな感じに書くことができます。米粒画像がたくさんあっても一瞬で解析を完了できます。

satoshithermophilus.hatenablog.com

Python は初心者向けの言語で、行いたい処理を短い行数で書くことができ、読みやすいコードが書けるのが特徴です。プログラミングをしたことのない人でもとっつきやすい言語です。Python でプログラムが書けるようになると、画像処理の他にも様々な計算や統計処理、機械学習なども気軽に試すことができるようになります。一石二鳥です。

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

続きを読む

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

目次

  • 目次
  • 概要
  • 動画
  •  
  • 米粒の画像を開く
  • 閾値を決める
  • バックグラウンドの減算
  • 米粒のカウントと定量的解析
  • 謝辞

 

 

概要

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

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

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

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

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

 

続きを読む

はてなブログに 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)
続きを読む

このブログについて

このブログには 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」でコマンドの検索。

続きを読む

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

Python って?

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

Python - Wikipedia

 

特徴として、

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

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

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

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

 

などが挙げられます。

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

 

*1:実はこれから紹介する Python とは微妙に異なるのですが表面上は大体同じです

続きを読む

Link 集

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

続きを読む

ImageJ Fiji のインストールと Fiji

 目次

  •  目次
  • ImageJ について
  • Fiji について
  • Fiji のインストール
    • Windows へのインストールについて
    • Mac へのインストールについて
    • Linux へのインストールについて
  • 論文への引用
  • ImageJについての書籍やリンク

 

ImageJ について

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

ImageJ - Wikipedia

 

ImageJ はオープンソースソフトウェア、つまり、どういういう仕組みでプログラムが書かれているかが公開されています*1Java で書かれているので、OS に依存せず WindowsMacLinux 上で同様に動作することが特徴です。

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

 

*1:オープンソースと一口に言っても色々ライセンスの種類があるのですがそれは置いときます

続きを読む

はじめに

僕は2017年現在、生物系の大学院で博士課程の学生として研究を行っています。主に顕微鏡観察や生化学的な解析をして、運動する分子の性質を調べています。

このブログには、僕が研究で身に着けてきたテクニック、特にプログラミングや画像処理について記していこうと思います。特に、ImageJ(Fiji)Python を用いた解析や解析の効率化について書いてく予定です。

 

・研究室きまってザックリしたテーマは決まった。顕微鏡で観察をすることになったけど、この ImageJ ってソフトの使い方がよくわからない・・・・・・。

・研究を頑張っていたけど、自分がやりたい解析をするには、100個以上の画像やデータを解析する必要がある・・・・・・心が折れそうだ。

そんなあなた、画像解析の基礎的な知識と軽い初歩的なプログラミングができればこれらの問題は解決します。しかし、大学で生物系の専攻だと、なかなかプログラミングを基礎から学んだりする機会も少ないですし、どう役に立つか分からない状態では身につきづらいです。

 

バイオ系であっても、プログラミングができればできる解析の幅が広がります。多数の実験結果を自動で、定量的に解析し、実験結果だけでなく軽いシミュレーションなんかもできると良い研究になるでしょう。自動的に解析するプログラムが作れたら、解析に使っていた時間を論文を読むのに使ったり、別な実験をしたり、休んだりするのに使えるでしょう。

 

バイオ系の院生・研究者のあなた、プログラミングはじめてみませんか?