0番染色体

科学は全世界を照らす光である

生物系のためのLaTeX関連ツール

今回は TeX & LaTeX Advent Calendar 2014 の17日目の記事として投稿しています.昨日は CardinalXaro氏 でした.明日は ZR氏 (2回目)の予定です.

「 TeX/LaTeX 初心者大歓迎 」という言葉を真に受けて,勢いで参加してしまいましたが本当に良かったのでしょうか……なにはともあれ,今年のテーマは「このパッケージがスゴイ!」ということだそうですので,生物系のLaTeXユーザーという希少価値の高いポジションを活かして「生物系のためのLaTeX関連ツール」をいくつかご紹介することにいたします.

BioTeXプロジェクト

生物系ではLaTeXはあまり使用されていないと一般に言われていますが,まったく使われていないというわけでもありません.実際,生化学者や(分子)生物学者のためにLaTeXのパッケージを開発するBioTeX( \rm B{\scriptsize IO}\TeX)なるものが存在します [4] .

色々と探してみましたが,このBioTeXに言及する日本語の文献は皆無に等しく,日本ではあまり認知されていないようです.しかし,このプロジェクトによって現在公開されている2つのパッケージには,(特にバイオインフォマティクスの分野で)一定の有用性があると思われるので,簡単に解説していきたいと思います.

TeXshade

公式ページ: http://www.uni-kiel.de/Pharmazie/chem/Prof_Beitz/texshade.htm

2つ以上の塩基配列またはアミノ酸配列をミスマッチ(置換)やギャップ(挿入・欠失)を解析することによって比較するために,類似した領域が特定しやすいように並べたものをアラインメントといいます [5] .TeXshadeはこのアラインメントに "影" を付ける(シェーディング)ことによってアラインメントを見やすくするためのLaTeXパッケージです.

このような機能をもつソフトウェアは他にも数多く存在しますが,その中でもTeXshadeは次のような特長をもっています [6] .

  • 出版可能なレベルの高い品質
  • ほかに類を見ない高いカスタマイズ性

また,TeXshadeは本来LaTeX用のパッケージですが,出力の美しい非常に強力なツールであるため,非LaTeXユーザーでもその機能の一部が利用できるよう SDSC Biology Workbench にGUIツールも用意されています [7] .

GUI版TeXshadeの画面
基本的な使い方

TeXshadeを使用するためにはLaTeXの他に,color.styとgraphics.styが必須です.また,場合によってはamsmathパッケージも必要となります.

color.styおよびgraphics.styはオプションとしてドライバ名(dvipdfmx,dvips等)を要求するので,そこで用いるドライバ名をtexshade.styを読み込む際にオプションとして指定します.

\usepackage[dvipdfmx]{texshade}

texshade.styが定義するのはtexshade環境というたった1つの環境です.このtexshade環境はオプション引数に設定ファイル,必須の引数にアラインメントファイルをとり,その書式は次のように一般化できます.

\begin{texshade}[ 設定ファイル ]{ アラインメントファイル }
       必要ならば,ここに各種TeXshadeコマンドを記入
\end{texshade}

引数で指定したファイルは必ずTeXが参照するところ(ソースと同じディレクトリまたはパスの通ったところ)に存在しなければなりません.

texshade環境はアラインメントをシェーディングするための環境なので,当然のことながらアラインメントファイルは必ず指定しなければなりません.TeXshadeは使用可能なアラインメントファイルとして,MSF形式,ALN形式,FASTA形式という3つの形式のファイルをサポートしています.

形式 拡張子
説明
MSF .msf UNIX用のGCG配列解析ソフトPILEUPで使用されるファイル形式
ALN .aln マルチプラットフォームの多重整形ソフトClustalの標準出力形式
FASTA .fasta / .fa > でコメントを挿入できる塩基/アミノ酸配列記述ファイル

設定ファイルはTeXshadeコマンドを記入しておくためのファイル(hoge.def)で,texshade環境中にTeXshadeコマンドを記述する場合とまったく同じ結果を出力します.したがって,よく使う設定は設定ファイルの中に書き込んでTeXのパスの通ったところに保存しておけば,いつでも簡単に呼び出すことができます.

ただし,設定ファイルおよびtexshade環境中のTeXshadeコマンドはいずれも省略可能で,省略した場合は初期設定が適用されます.したがって,最もシンプルなTeXshadeの使用例は次のようになります.

【入力】

\documentclass[fleqn]{jsarticle}
\usepackage[dvipdfmx]{texshade}
\begin{document}

\title{ \TeXshade を使ってみる }
\author{ ワトソン }
\date{ 2014年12月17日 }
\maketitle
\thispagestyle{empty}

\begin{texshade}{Sample-protein.MSF}
\end{texshade}

\end{document}

【出力】
出力結果

基本的なTeXshadeコマンド

TeXshadeのコマンドにはかなりの種類がありますが,最も基本的なものを以下にまとめておきます.既に説明したように,これらのコマンドはtexshade環境中もしくは設定ファイル内で使用することができます.

\threshold[ パーセンテージ ]{ パーセンテージ }

何パーセントの一致率でシェーディングを行うかを指定するためのコマンドです.デフォルトは50%になっています.オプション引数と合わせて2つの割合を設定し,2段階のシェーディングを行うことも可能です.

\setends{ 配列指定 }{ 開始番号..終了番号 }
\setdomains{ 配列指定 }{ 開始番号..終了番号 , 開始番号..終了番号 , ・・・ }

最初に登場した最もシンプルなTeXshadeの使用例では読み込んだファイル内の配列データをすべて出力していますが,特定の部分だけを抜き出して出力することもできます.

ここで,1つ目の引数「配列指定」にはアラインメントファイル内での番号または配列名を記入し *1 ,2つ目の引数には開始地点と終了地点を指定します.\setdomainsでは互いに離れた複数の箇所を指定することも可能です.なお,上の書式例ではすべての位置を手入力する場合になっていますが,PDBファイルの提供する3次元構造の情報に基いて自動で選択させるといったことも可能なようです.

\showruler[]{ 位置 }{ 配列指定 }
\rulersteps{ 目盛り間隔 }

塩基/アミノ酸の番号を表示する目盛りを出力します.位置はtopまたはbottomを選択することができます.

\showconsensus[ カラースケール ]{ 位置 }
\showlegend

コンセンサス(一致率)やレジェンド(凡例)を表示します.\showconsensusのカラースケールにはGray, BlueRed, RedBlue, GreenRed, RedGreen, ColdHot(推奨), HotColdなどを指定することができます.

この種のコマンドは,他にも多くの種類が存在します.

\hideseq{ 配列指定 , ・・・ }
\hideseqs
\hidenumbering
\hideconsensus

特定の配列や全配列,右側のナンバリング,下段のコンセンサスを非表示にします.この種のコマンドも,上の4つだけではなく多数定義されています.

\feature{ 位置 }{ 配列指定 }{ 開始番号..終了番号 }{ ラベルスタイル }{ テキスト }

TeXshadeで出力したアラインメントにラベルを付けるためのコマンドです.引数が多いことからもわかるように非常に高機能なコマンドになっています.ラベルスタイルの書式は少々複雑なので,言葉で説明するよりも次節に登場する具体例を見ていただいた方が早いでしょう.

TeXshadeのコマンドはこれだけではありませんが,全部をきちんと説明しているととんでもない分量になってしまうので今回はこのへんでやめておきます.興味のある方はTeXshadeのマニュアル(文献2)をご覧ください.なお,ここで説明したコマンドは以降に登場する例の中で何度か登場しますので,具体的な使用例についてはそれらを参照してみてください.

種々のシェーディングモード

TeXshadeには様々な基準にしたがってシェーディングを行うことができ,\shadingmodeコマンドで呼び出すことができます.そのうち,いくつかのシェーディングモードはTeXshadeに予め定義されています.この節ではそうした定義済みシェーディングモードを,具体例を用いながら紹介していきます.

1.Identityモード

あらゆるアラインメントソフトウェアに必ず実装されているといっても過言ではないぐらい基本的な処理を実行するモードです.塩基またはアミノ酸の一致率が\thresholdコマンドで指定した値(指定しない場合は50%)よりも大きければシェーディングが行われます.

【入力】

\begin{texshade}{Sample-DNA.MSF}
       \setdomain{1}{80..90,100..110,120..130}
       \showruler{1}{top}
       \threshold[50]{80}
       \showlegend
       \hidenumbering
       \hideconsensus
\end{texshade}

【出力】
出力結果

2.Similarityモード

アミノ酸配列を比較する場合,完全に一致していなくても類似したアミノ酸についてもシェーディングを行いたい場合があります.そうしたときに利用できるのがこのSimilarityモードで,類似したアミノ酸についても一致率の計算の中に加味されるようになります.なお,類似したアミノ酸は類似した色で区別してシェーディングが行われます.

【入力】

\begin{texshade}{Sample-protein.MSF}
       \shadingmode{similar}
       \threshold[50]{80}
       \setends{1}{80..112}
       \hideconsensus
       \feature{top}{1}{93..93}{fill:$\downarrow$}{first case (see text)}
       \feature{bottom}{1}{98..98}{fill:$\uparrow$}{second case (see text)}
\end{texshade}

【出力】
出力結果

3.T-Coffeeシェーディング

TeXshadeのシェーディング演算処理能力には限界があります. T-Coffee は前述の Clustal と並んで有名なマルチプルアラインメントソフトウェアですが,TeXshadeではこのT-Coffeeの出力結果(score_asciiファイル)を読み込んでシェーディングを行うことが可能です.

【入力】

\begin{texshade}{Sample-protein.MSF}
       \shadingmode[AQP_TC.asc]{T-Coffee}
       \setends{1}{30..63}
       \feature{top}{1}{30..63}{color:conservation[T-Coffee]}{}
       \showfeaturestylename{top}{feat-cons}             % ラベルの名前を表示
       \showconsensus{bottom}
\end{texshade}

【出力】
出力結果

4.Diversityモード

ここまでで紹介してきたシェーディングモードとは対照的に,このモードは配列の「違い」を可視化します.このモードは非常に近い種のタンパク質を比較する場合などに有効だと思われます.

【入力】

\begin{texshade}{Sample-protein2.ALN}
       \shadingmode{diverse}
       \setends{1}{77..109}
       \featureslarge
       \feature{top}{1}{77..109}{}{AQP2 species variants}
       \namesrm\namessl                                  % 配列名のフォントを変更
       \hidenumbering\showruler{top}{1}
       \shownames{left}
       \nameseq{1}{Bos taurus}                           % 配列名を変更
       \nameseq{2}{Canis familiaris}
       \nameseq{3}{Dugong dugong}
       \nameseq{4}{Equus caballus}
       \nameseq{5}{Elephas maximus}
       \frameblock{1}{82..82,106..106}{Red[1pt]}         % 赤いフレームを表示
\end{texshade}

【出力】
出力結果

5.Functionalityモード

ペプチドを,機能的な類似性に基いてシェーディングできるというのはTeXshadeの重要な特長の1つです.どのような機能をどのような基準でシェーディングするかはユーザーが簡単に定義することができますが,\shadingmode{functional}には予め次の7つのオプションが用意されています.

オプション名
説明
charge 一致率が指定閾値よりも高い場合,生理学的なpH値によって塗り分ける
hydropathy 酸塩基の区別の他に,極性の有無も区別してシェーディング
structure タンパク質の3次構造でどのように局在するかを表示する(?)
chemical 各アミノ酸残基のもつ官能基の種類によって塗り分けを行う
rasmol chemicalと同じ機能だが,RasMolのカラースキームで出力する
standard area アミノ酸側鎖の表面積に基いてシェーディングを行う(?)
accessible area 溶媒が接近しやすい部分の表面積(親水性?)に基いてシェーディングを行う

最後に,Functionalityモードの具体的な使用例を1つだけ挙げておきます.

【入力】

\begin{texshade}{Sample-protein.MSF}
       \shadingmode[accessible area]{functional}
       \setends{1}{138..170}
       \showlegend
       \feature{top}{1}{138..157,164..170}{helix}{membr.}
       \feature{top}{1}{158..163}{---}{loop}
       \shadeallresidues                                 % すべてのアミノ酸残基をシェーディング
\end{texshade}

【出力】
出力結果

その他の機能

TeXshadeには上で紹介した以外にも,例えば,次のような機能があります.

  • アラインメントの上下に棒グラフを出力
  • アラインメントをバーコード状に表示
  • 塩基やアミノ酸の一致率をロゴで表現

これらに関する具体例を列挙すると,ざっとこんな感じです.

【入力】

\begin{texshade}{Sample-protein.MSF}
       \setends{1}{138..170}
       \feature{ttop}{1}{138..170}{bar:conservation}{}   % topより上の位置(ttop)に出力
       \showfeaturestylename{ttop}{conserv.}
       \ttopspace{-\baselineskip}
       \feature{top}{1}{138..170}{color:charge}{}
       \showfeaturestylename{top}{charge}
       \feature{bottom}{1}{138..170}{color:molweight[ColdHot]}{}
       \showfeaturestylename{bottom}{weight}
       \bbottomspace{-\baselineskip}
       \feature{bbottom}{1}{138..170}{bar:hydrophobicity[Red,Gray10]}{}
       \showfeaturestylename{bbottom}{hydrophob.}        % bottomより下の位置(bbottom)に出力
       \bargraphstretch{3}
       \featurestylenamescolor{Red}                      % ラベルの名前を赤で表示
       \featurestylenamesrm\featurestylenamesit
       \hideconsensus
\end{texshade}

【出力】
出力結果

【入力】

\begin{texshade}{Sample-protein.MSF}
       \shadingmode[allmatchspecial]{similar}
       \shadingcolors{grays}
       \fingerprint{360}
       \showlegend
       \feature{top}{1}{13..36,51..68,94..112,138..156,165..185,211..232}{,-,}{TM}
\end{texshade}

【出力】
出力結果

【入力】

\begin{texshade}{Sample-protein.MSF}
       \setends{AQP3.PRO}{203..235}
       \showsequencelogo{top} \showlogoscale{leftright}
       \hideseqs
       \residuesperline*{33}
       \defconsensus{{$\bullet$}}{{$\bullet$}}{{$\bullet$}}
       \showconsensus[ColdHot]{bottom}
       \nameconsensus{conservation} \namessf\namessl
       \showruler{bottom}{AQP3.PRO} \rulersteps{1}
       \feature{top}{AQP3.PRO}{208..210}{---}{NPA}
       \feature{top}{AQP3.PRO}{211..219}{helix}{}
       \feature{top}{AQP3.PRO}{220..232}{brace}{loop E}
       \feature{top}{AQP3.PRO}{233..235}{helix}{TM6}
       \feature{bottom}{AQP3.PRO}{203..235}{brace}{1-step numbering}
\end{texshade}

【出力】
出力結果

駆け足になってしまいましたが,TeXshadeの説明はこのぐらいにしておきます.この記事の読者の方々にどの程度需要があるパッケージなのかは甚だ疑問でありますが,かなり高機能なパッケージであるということはお分かりいただけたかと思います.

Happy LaTeXing

TeXtopo

公式ページ: http://www.uni-kiel.de/Pharmazie/chem/Prof_Beitz/textopo.htm

TeXtopoは膜貫通タンパク質の2次構造模式図および貫通部のヘリックス車輪図を出力するための,BioTeXプロジェクトが提供する2つ目のLaTeXパッケージです.

基本的な使い方

TeXtopoも,使用するにあたってはLaTeXの他にcolor.styが必要です.したがって,TeXshadeの場合と同様,textopo.styを読み込む際には用いるドライバ名をオプションとして指定しなければなりません.

\usepackage[dvipdfmx]{textopo}

textopo.styはtextopo環境とhelicalwheel環境という2つの環境を定義します.

textopo環境は膜貫通タンパク質の2次構造模式図を描画するための環境で,次のような極めてシンプルな書式をもっています.

\begin{textopo}[ 設定ファイル ]
       ここに各種TeXtopoコマンドを記入
\end{textopo}

一方,helicalwheel環境はヘリックス車輪図を描くための環境で,textopo環境とは若干異なる書式を有しています.

\begin{helicalwheel}[ 設定ファイル ]{ ヘリックスリスト }
       ここに各種TeXtopoコマンドを記入
\end{helicalwheel}

ヘリックスリストは必須の引数で,出力する車輪図の番号を指定します(あとで登場する具体例を参照のこと).このリストでは,番号を{1,2,3,4,5}{5,2,3}のように番号を列挙することも,{1-3,5,9-11}のようにハイフンを用いてまとめて指定することもできます.さらに,各番号の後ろにオプション引数として{3[90]}のように整数値を書き込むと,書き込んだ整数(度)だけヘリックス車輪図が回転されて出力されます.

オプション引数「設定ファイル」の扱いについてはtextopo環境,helicalwheel環境いずれについても既に説明したtexshade環境の場合と同様です.

ただし,textopo環境およびhelicalwheel環境ではtexshade環境の場合と異なり,環境中に最低でも1つのコマンドを記入する必要があります.すなわち,2次構造模式図またはヘリックス車輪図を出力するアミノ酸配列を読み込むコマンドは省略できません.

したがって,TeXtopoを使用した最も簡単な入出力例は以下のようになります.

【入力】

\documentclass[fleqn]{jsarticle}
\usepackage[dvipdfmx]{textopo}
\begin{document}

\title{ \TeXtopo を使ってみる }
\author{ ワトソン }
\date{ 2014年12月17日 }
\maketitle
\thispagestyle{empty}

\begin{helicalwheel}{1,4[50]}
       \getsequence{PHD}{Sample-protein3.PHD}
\end{helicalwheel}

\begin{textopo}
       \getsequence{PHD}{Sample-protein3.PHD}
\end{textopo}

\end{document}

【出力】
出力結果

アミノ酸配列の読み込み

TeXtopoにアミノ酸配列を読み込ませる方法には,大きく分けて3通りの方法があります.

  1. \getsequenceコマンドを用いて,タンパク質の構造データファイルを読み込む
  2. \getsequenceコマンドを用いて,アラインメントファイルを読み込む
  3. \sequenceコマンドを用いて,アミノ酸配列を手入力する

以下では,これら3通りの方法についてそれぞれ個別に解説していくことにします.

1.構造データファイル

まず,インターネット上のデータベースからダウンロードするなどして入手できるタンパク質の構造データファイルを利用する方法を説明します.この方法が最も簡便かつ実用的です.

\getsequence[make new]{ ファイル形式 }{ ファイル名 }

構造データファイルおよびアラインメントファイルをTeXtopoに読み込むときは\getsequenceコマンドを使用します.このうち,タンパク質の構造データファイルを読み込む場合には,オプション引数に[make new]を記入する必要があります.

次に,\getsequenceの1つ目の引数には「ファイル形式」を与えますが,TeXtopoが読み込むことのできるファイル形式は次の表にまとめた3形式です.

形式 拡張子
説明
PHD .phd 配列データとそのクオリティ値を記述したファイル形式
HMMTOP .hmm 膜タンパク質の立体構造推定プログラムHMMTOPの出力ファイル形式
SwissProt .sp タンパク質データベースSwissProtで用いられているファイル形式

先ほど提示した「TeXtopoを使用した最も簡単な入出力例」ではこの方法を用いてPHD形式のファイルが読み込まれています.

2.アラインメントファイル

一方,アラインメントファイルを読み込む場合はオプション引数は省略可能です.代わりに,1つ目の引数に{alignment}と書き込みます.

\getsequence[ 配列番号 ]{alignment}{ ファイル名 }

TeXtopoで使用できるアラインメントファイル形式はMSF形式とALN形式の2つです.なお,これらのアラインメントファイルにはタンパク質の構造に関する情報を保持していないので,ヘリックス形成部(膜貫通部)の情報を\MRsコマンドMembrane Regions の略)で別途手入力する必要があります.

\MRs{ 開始番号..終了番号 }

なお,2次構造模式図を描く場合にはこの開始番号と終了番号の差が13〜35の範囲に収まる必要があります.この差が13よりも小さい場合,ペプチド鎖は膜を貫通せずハーフループを形成します *2

ハーフループ

さらに,アラインメントファイルを読み込んだアミノ酸配列を用いて2次構造模式図を描く場合はタンパク質のN末端が細胞内部(intra)と外部(extra)のいずれに位置するのかを\Ntermコマンドで指定しなければなりません.

\Nterm{ 位置 }

3.手入力

TeXtopoでアミノ酸配列を読み込む最後の選択肢は,textopo環境またはhelicalwheel環境の中でアミノ酸配列を直接打ち込む方法です.この場合は\getsequenceコマンドではなく\sequenceコマンドを使用します.

\sequence{ アミノ酸配列 }

アミノ酸配列を手入力する場合にもアラインメントファイルを読み込むときに用いた\MRsコマンドを用いて膜貫通位置を指定することができます.しかし,手入力の場合にはアミノ酸配列を打ち込む際にこれらの情報を同時に与えてしまうことも可能です.すなわち,\sequenceの引数で膜貫通部の配列をブラケット[ ]で囲うことで,\MRsの代わりになります.

TeXshadeとの併用

TeXtopoはv1.3以降のTeXshadeと組み合わせて使用することができます.

既に説明したように,TeXshadeには機能的な類似性に基いてシェーディングするFunctionalityモードが実装されているので,この2つのパッケージを協働させると,非常に強力なツールとなり得ます.

【入力】

\documentclass[fleqn]{jsarticle}
\usepackage[dvipdfmx]{biotex}
\begin{document}

\title{ \TeXshade$\times$\TeXtopo }
\author{ ワトソン }
\date{ 2014年12月17日 }
\maketitle
\thispagestyle{empty}

\begin{helicalwheel}{1,4[50]}
       \getsequence{PHD}{Sample-protein3.PHD}
       \applyshading{similar}{AQPpro.MSF}
       \hidelegend
\end{helicalwheel}

\begin{textopo}
       \getsequence{PHD}{Sample-protein3.PHD}
       \applyshading{similar}{AQPpro.MSF}
       \allmatchspecial
\end{textopo}

\end{document}

【出力】
出力結果

この例のプリアンプルは\usepackage[dvipdfmx]{biotex}ではなく,次のように書くこともできます.

\usepackage[dvipdfmx]{texshade}
\usepackage[dvipdfmx]{textopo}

ただし,biotex.styは単にTeXshadeとTeXtopoを読み込むだけではなく,それぞれが互いに対応しているバージョンかどうかの確認も行っているので,特別な事情がある場合を除いては\usepackage[dvipdfmx]{biotex}を用いることが推奨されています.また,

\usepackage[dvipdfmx]{textopo}
\usepackage[dvipdfmx]{texshade}

のように読み込む順序を逆にする(TeXtopoを先に読み込む)とエラーが発生するので注意が必要です.

基本的なTeXtopoコマンド

この節では,ここまでの説明で登場しなかったTeXtopoの基本的なコマンドをいくつかかいつまんで説明することにします.

\scaleplot{ 1〜10の整数 }

textopo環境中で使用すると,出力される2次構造模式図のサイズを10段階に変更できます.

\loopextent[ ループ ]{ 最大値 [ 最小値 ] }

こちらもtextopo環境中で使用するコマンドで,膜貫通部以外の部分が形成するループを制御します.唯一必ず引数としてとらなければならないのが最大値で,直線部(ループの"片道")に配置されるアミノ酸の個数の最大値を指定します(デフォルト値は30).最小値はオプション引数なので指定しないことも可能です(デフォルト値は5).

また,このコマンドは一部のループだけに適用することも可能で,その場合は制御綴り直後のオプション引数に適用したいループ番号を入力します.両端のループに関してはループ番号の代わりにNまたはC(それぞれN-末端とC-末端を表す)を記入することも可能です.

\labelloop[ x,y ]{ ループ番号 }{ ラベル }

textopo環境で使用するとループにラベルを表示することができます.第一引数でラベルを表示するループ番号,第二引数で表示するラベルの内容を指定します.オプション引数を利用すれば,ラベルの表示位置をずらすことも可能です.

\helixstyle{ スタイル }

ヘリックス車輪図の出力スタイルを変更できます.スタイルは perspective, wheel, net の中から選ぶことができ,それぞれ次のような出力を得ます.

ヘリックス車輪図のスタイル

今回は,TeXtopoコマンドの紹介はここまでにしておきます.TeXtopoに関するより詳細な情報についてはマニュアル(文献3)をご覧ください.

グラフィック

生物系の文書を作成する際,一番(技術的に)問題となるのはグラフィックに関する部分だと思います.実際,上で説明したBioTeXの2つのパッケージはいずれもグラフィックに関わるものでした.しかし,残念ながら現在BioTeXに含まれる2つのパッケージだけで生物系の文書に必要な画像を作成するのに十分とは言い難いです.そこで,ここからは生物系の文書をLaTeXで作成する際に使えそうなグラフィック関連のツールを簡単に紹介していきたいと思います.

構造式描画システム:XyMTeX

XyMTeX( \rm X\kern-.20em\smash{\raise.30ex\hbox{$\Upsilon$}}\kern-.20em{M}\TeX)は藤田眞作氏 *3 によって開発された非常に汎用性の高い構造式描画パッケージです.公式ページからダウンロードすることができます.一部の複雑な立体構造は扱えないとされていますが,基本的にはかなり複雑な構造も出力することができます.

構造式
ケクレン

化学構造式を出力する方法には他にも chemfigパッケージ などXyMTeX以外のLaTeXパッケージを利用したり, MarvinSketch などのWYSIWYG構造式エディタを用いて画像データを作成し,LaTeX文書に埋め込んだりなどの方法が存在します.ちょうど,今年のAdvent Calendarでは 8日目の記事 でアセトアミノフェン氏がWYSIWYG構造式エディタを用いる方法について, 12日目の記事 でdoraTeX氏がchemfigパッケージについて解説してくださっています.

なお,XyMTeXの基本的な使い方については,私も参加しているTeXゼミで作成した20日目の記事をご覧ください.

分子生物学用グラフィック描画:pgfmolbio(with TikZ)

pgfmolbioはクロマトグラムやタンパク質ドメインの模式図など,一般の分子生物学に関する文書で必要とされる図版を作成するためのLaTeXパッケージで, CTAN からダウンロードできます.

個人的には非常に興味の持てるパッケージですが,TikZとLuaTeXが必須となっており,今回の記事で紹介している他のツールと比べると一段敷居が高いようです.もしこのパッケージに興味のあるTikZユーザーの方がいらっしゃいましたら,ぜひ試してみてください.

LaTeXパッケージ以外のグラフィックツール

以下では,私の独断と偏見によって選出した「フリーかつ出力が美しい」ソフトウェアを列挙してみます *4 .これらのツールで作成した画像をLaTeX文書に取り込めば,きっと美しい生物系の文書が作成できるはずです.

グラフ描画ソフト:gnuplot

理系では言わずと知れた定番のグラフ作成ソフトです.PostScript形式の出力機能が強力であるためか,LaTeXとの相性もよいと言われています *5

とても高機能であるためインターネットや各種ソフトウェアで広く使われており(例えば, 過去の記事 で紹介した数式処理システムMaximaのグラフ描画機能でも利用されています),その使い方を解説しているウェブページも数多く存在します.

グラフ
ロジスティック写像の分岐図
フローチャート作成ソフト:yEd Graph Editor

レイアウトを自動的に整形する機能を特長とする高機能なフローチャート作成ソフトです.ドイツの yWorks社 が無償で提供しています.生物系としては,実験手順などをフローチャートにまとめるといった用途の他に,パスウェイを描画する際などに利用できそうです.

フローチャート
LaTeXによる文書作成の流れ(古典的な―例)
タンパク質構造可視化ソフト:Chimera

PDBファイルに保存されたタンパク質の立体構造をきれいに可視化するソフトウェアです. 公式ホームページ からダウンロードして利用することができます.

リボン型モデル
エボラウイルスの糖たんぱく質

タンパク質構造可視化ソフトには,他にも PyMOL などの有名なソフトウェアが存在します.

高機能画像編集ソフト:Inkscape

Inkscapeはドロー系の高機能画像編集ソフトです.高価なAdobe Illustratorにこそ敵わないかもしれませんが,かなり自由に図版の作成を行うことができます(ただし,技術を要します).

また, ne-G 3/4 というサイトでInkscapeで作成された高校生物用の図版が公開されており *6 ,高校生物用の教材作成時などに活用できるでしょう.ちなみに,下の画像にすかしとして用いられているDNAのイラストもこのサイトからダウンロードして使わせていただきました.

生物系なのにLaTeXを使うのはアレなのか?
この記事のロゴ的なナニカ

Inkscapeの他にも,フリーかつ高機能な画像編集ソフトとしては GIMP なども知られています.

おわりに

冒頭でも触れたとおり,残念ながら現在のところ生物系の分野ではLaTeXが標準的な文書作成ツールであるとは言い難いです.その理由については様々なことが言えると思いますが,よく言われるのは数式を使うことが少ない一方で図版を使用する頻度が高いためにLaTeXとあまり相性がよくないというものです.

しかし,図版を使用する頻度が高いというのがLaTeXを使用しない理由になるでしょうか? この記事でも多数紹介したように,生物系の文書を作成するのに便利なLaTeX関連ツールは徐々にではあるかもしれませんが,着実に揃ってきています.今後,生物系のLaTeXユーザー数が増えていけば,こうしたツールはさらに充実していくことでしょう.

また,LaTeXの魅力は数式だけではありません.生物系であってもLaTeX様々な機能を使いこなすことは可能です.なにより,LaTeXのように美しい出力は他のソフトウェアではなかなか得ることができません.

LaTeXが生物系にとって使いにくいソフトであった時代は終わりました.これからは,そうした古い固定観念に囚われることなく,生物系においてもLaTeXという文書作成ツールがひとつな大きな選択肢のひとつとなり,LaTeXを用いた生物系の美しき文書が増えていくことを願っています.


<参考文献>

[1] KUMAR, Senthil M. LaTeX Tools for Life Scientists (BioTeXniques?). The PracTeX Journal, No.4, 2007.
[2] BEITZ, Eric. The TeXshade package - Typesetting nucleotide and peptide alignments, v.1.24, 2011.
[3] BEITZ, Eric. The TeXtopo package - for shaded membrane protein topology plots. v.1.5, 2011.
[4] BEITZ, Eric. BioTeX. University of Kiel - Christian-Albrechts-Universität zu Kiel.
http://www.uni-kiel.de/Pharmazie/chem/Prof_Beitz/biotex.html , (accessed 2014-12-05).
[5] 巌佐庸, 倉谷滋, 斎藤成也, 塚谷裕一. 岩波生物学辞典. 第5版, 岩波書店, 2013, p.33.
[6] BEITZ, Eric. texshade – Package for setting nucleotide and peptide alignments. CTAN.
http://www.ctan.org/pkg/texshade , (accessed 2014-12-08).
[7] GIBAS, Cynthia; JAMBECK, Per. 実践 バイオインフォマティクス - ゲノム研究のためのコンピュータスキル. 水島洋, 明石浩史, ま たぬき 訳. オライリー・ジャパン, 2002, p.388-389.

*1:consensusを指定することも可能です.

*2:逆に,差が35を超えた場合はエラーになります.

*3:個人ホームページ: http://homepage3.nifty.com/xymtex/fujitas/fujita.html

*4:なるべく多くのOSで使用できるものを選びました.要するに,LaTeXのもつ特長に準じています.

*5:現在ではLaTeXへの挿入画像もPostScript形式が使用される頻度は低下しているため,実際のところ本当に「相性が良い」と言える側面があるのかどうかは不明です.

*6:Inkscape標準のSVG形式での配布が行われているため,Inkscapeを使用すれば自由に改変等を行うことができます.