Author Archives: eisuke

何度も忘れるDjango

PythonのWebフレームワークであるDjangoについての忘備録。

最新のリリースバージョンは2.1.7となっています。(2019年3月3日現在)
https://www.djangoproject.com

開発環境のセットアップ

初めに、Pythonの開発環境を作成します。
プロジェクトのフォルダを作成し、フォルダ内のPythonのバージョンを3.7.0に設定します。開発環境をenvフォルダ内に作成し、activateして開発環境を有効にします。

$ mkdir <リポジトリ名>
$ cd <リポジトリ名>
$ pyenv install 3.7.0
$ pyenv local 3.7.0
$ python -m venv env
$ source env/bin/activate
$ pip install --upgrade pip

Djangoプロジェクト

Djangoプロジェクトの構造

リポジトリのディレクトリに移動し、django-adminコマンド(またはdjango-admin.py)を使用して、プロジェクトを作成します。

$ django-admin startproject <プロジェクト名>

その後、プロジェクトのディレクトリに移動し、同様にアプリを作成します。

$ cd <プロジェクト名>
$ django-admin startup <アプリ名>

結果として、以下のような階層構造となります。

<リポジトリのルート>/ : README.md、.gitignore、docs/などを配置
  <Djangoプロジェクトのルート>/ : プロジェクトに関連するすべてのPythonコードの格納先。Djangoの各Appはこの階層に作成する。
    <Configurationルート>/ : 設定モジュール、ベースURLConf (urls.py)などの格納先 (configディレクトリ)

Djangoアプリの設計

いくつか用語の定義をしておきます。

  • Djangoプロジェクト: Djangoウェブフレームワークによって構成されるウェブアプリケーションのこと。
  • Django apps: プロジェクト内の小さなライブラリ群のこと。Djangoプロジェクトは多くのDjango appsで構成されます。それらのアプリのうち、いくつかはプロジェクトの内部で使用されるだけで、再利用されません。その他、サードパーティのDjangoパッケージなどもこれに含まれます。
  • INSTALLED_APPS: INSTALLED_APPSの設定によってプロジェクト内で使用可能なDjango appsのリストのこと。
  • サードパーティのDjangoパッケージ: Pythonパッケージングツールでパッケージ化され、プラグアンドプレイで使用できるDjango appsのこと。

(追記予定)

スクリプト言語 Tcl

はじめに

Tcl (Tool Command Language, ティクル) は、スクリプト言語と呼ばれるプログラミング言語です。スクリプト言語にはTclの他にも様々な言語があります。スクリプト言語を使用すると、ある作業を自動化したり、繰り返すことが求められるタスクを管理したりすることができます。

Tclコマンド

コマンド

まず注意すべきことは、Tclでは、大文字と小文字を区別する点です(Setとsetは異なるものとして扱われます)。

基本的な文法としては、コマンド、空白スペース、引数といった形でタイプします。簡単なサンプルを実行してみます。以下を入力してエンターキーを押します。
echo Hello World
ここでは、echoコマンドに引数”Hello World”を渡しています。結果として、標準出力に
Hello World
と出力されます。

コマンドはセミコロン(;)をつけることでコマンドの終端を表現できます。これによって、一行に複数のコマンドを書くこともできます。
echo Hello World1; echo Hello World2
上の文の結果は、以下のように1文ずつ実行した場合と同義です。
echo Hello World1
echo Hello World2

コメント

コマンドは実際に実行されるものですが、メモとしてコメント(comment)を記述することもできます。コメントを記述する場合は、文頭に文字#を使用します。
# これはコメントです
echo Hello World

変数

変数の定義

Tclでは変数(variable)を定義できます。変数では、ある状態またはある値を保持し表現できます。ある変数を定義するためには、setコマンドを使用して、以下のように定義します。
set 変数名 値
例えば、

# 名前がiという変数を定義し、1という値を入れる

set i 1
# 名前がmyVarという変数を定義し、foobarという文字列を入れる

set myVar foobar

Tclでは、内部的にはすべての変数は文字列型(string type)です。setコマンドには、変数に格納する値としてただひとつの引数を与えます。引数に空白スペースが含まれる場合は、ダブルクォーテーション(“)または中括弧({})で値を囲みます。
set myVar "Hello World"
または、
set myVar {Hello World}

変数の使用

定義した変数を引用するためには、定義した変数名の頭に$記号をつけます。
echo $myVar
標準出力には、先ほど変数を定義したときに代入されていた値が表示されます。
Hello World

(つづく)

Correlative light and electron microscopy (CLEM)

Correlative light and electron microscopy (CLEM) とは

Correlative light and electron microscopy (CLEM)とは、蛍光顕微鏡と電子顕微鏡の観察を組み合わせた解析方法です。
蛍光顕微鏡で観察した部分と同じ場所を電子顕微鏡で観察し、それぞれの方法で取得した画像を比較して相関をとることによって、分子特異的な局在を解析する手法です。

用いるプローブの種類によって様々なCLEMが開発されています[2: Sosinsky et al., 2007]。

はじめに

細胞のダイナミックな振る舞いは、細胞内の高分子複合体同士の相互作用の結果です。核酸、タンパク質、代謝生成物やイオンのライブセルイメージングと高解像による特定は、細胞の一部分から分子レベルで行うことが可能で、複雑な細胞内の機能を理解するために必要な重要な情報を明らかにします。
光学顕微鏡(light microscopy)と電子顕微鏡(electron microscopy)による手法は、細胞の情報を捉えるために非常に強力であり、免疫染色(immunolabeling)のような手法はin situで分子を特定することに成功しています。
分子生物学の遺伝子組み換え手法と合成化学の発展で、新しいプローブと標識技術が誕生しました。

メゾスケールの解析

メゾスケール(mesoscale)とは、細胞、組織、器官の中に含まれる機能的な複合体を形成する高分子の集合体の構造とダイナミクスに関する新しい知識を得るための画像化の範囲です。(語源となったギリシャ語の”mesos”は中位という意味です。)
メゾスケールの構造は、光学顕微鏡を使用して画像化され、より詳細な構造を捉えるために電子顕微鏡を使用して画像化されます。これは多数の予備的な手法とともに行われます。
分子同士の相互作用であるインタラクトーム(interactome)[Reual et al., 2005]に対するシステム生物学の計算機科学的なアプローチや、理想的には機能的な相互作用を完全に理解するために細胞内環境での高分子複合体の位置を特定するためのビジュアルプロテオミクス(visual proteomics)[Nickell et al., 2006]などもあります。

光学顕微鏡と電子顕微鏡の相補的効果

興味対象となるタンパク質をハイライトするひとつの方法は、それらのタンパク質にプローブ(probe)を付けることです。これには、蛍光(fluorophore)による分子のタグ付け[Giepmans et al., 2006]、ペルオキシダーゼ媒介沈殿物のような非蛍光染色が含まれます。
電子顕微鏡マーカーは、背景成分から区別を行うために、高い電子密度である必要があります。そのようなマーカーは、電子顕微鏡によるトモグラフィー(tomography)によって可視化でき、組織、細胞、高分子複合体の3次元での超構造に関する情報を得ることができます[Subramanian, 2005]。
ある構成要素に対してラベリングを行った電子顕微鏡のトモグラフィーによる再構築の組み合わせは、細胞要素の中におけるタンパク質の位置を特定するために強力な手法となります。

CLEMの応用事例は、細胞生物学の構造的基盤に対する我々の理解を革新します。対象とする特定のタンパク質をハイライトするために蛍光プローブが開発されています。また、よりよい蛍光顕微鏡装置はこれらのプローブを3次元または4次元(リアルタイム)でモニタリングできます。蛍光顕微鏡における発展は、タンパク質の共局在(colocalization)、ターンオーバー(turnover)、機能を決定するために役立ちます。しかしながら、蛍光顕微鏡の解像度での画像化は、プローブの一般的な細胞内での位置、サイズと形状、シーケンシャルなデータ取得のあいだのプローブの動きの程度だけしかわかりません。