Published on

TeXshade でシーケンスアラインメントを組版してみる

Authors

BioTeX

生物学分野において LaTeX が利用されているイメージはあまりないが, 実際はそうでもないようで, 生物学やバイオインフォマティクス分野でよく使用されるデータの可視化, 組版, 解析を支援する目的で開発されているプロジェクトとして BioTeX が存在する.

TeXshade

さて, 前述した BioTeX において開発された LaTeX でシーケンスアラインメントを組版するためのパッケージとして, TeXshade パッケージが存在する. 使用例を以下に示す1.

\documentclass{ltjsarticle}
\usepackage{texshade}
\thispagestyle{empty}
\begin{document}
\begin{texshade}{sample.fasta}
\end{texshade}
\end{document}

上記により, 以下のような出力を得る.

aqp01

また, オプション指定により一致率を考慮したシェーディングが可能となる. 具体的には, 以下のように記述する.

\documentclass{ltjsarticle}
\usepackage{texshade}
\thispagestyle{empty}
\begin{document}
\begin{texshade}{sample.fasta}
  \threshold[80]{50}
  \showconsensus[ColdHot]{bottom}
  \defconsensus{.}{lower}{upper}
  \showlegend
\end{texshade}
\end{document}

上記により, 以下のような出力を得る.

aqp02

アクアポリン (Aquaporin, AQP) の異なるアイソフォームのフィンガープリントは, 以下の記述で可能.

\documentclass{ltjsarticle}
\usepackage{texshade}
\thispagestyle{empty}
\begin{document}
\begin{texshade}{sample.fasta}
  \shadingmode[charge]{functional}
  \shadeallresidues
  \fingerprint{360}
  \gapchar{rule}
  \showlegend
\end{texshade}
\end{document}

上記により, 以下のような出力を得る.

aqp03

ここまで, いくつかの機能を試してみた. 詳しい使用法については, 公式ドキュメントを参照されたい.

なお, 入力ファイルにおける文字数が多くなると以下のエラーが発生し, 十分な量のファイルを扱うことが出来なかった.

TeX capacity exceeded, sorry [input stack size=10000].
<to be read again>
\res11

このエラーは, 公式ドキュメントにおいても言及されており, 以下のように対応した.

kpsewhich texmf.cnftexmf.cnf の場所を探し, texmf.cnf

stack_size = 50000

を記述. その後, fmtutil-sys --all を実行し, ファイルを更新. しかし, 今度は

TeX capacity exceeded, sorry [input stack size=50000].
<to be read again>
\res11

が表示され上手くいかず...

stack_size を50000より大きくしたり, main_memory を変更したりしたがエラーは解消されなかった. 謎🙃

Footnotes

  1. DVI ファイルを経由する LaTeX エンジンを使用している場合は, TeXshade パッケージを読み込む際に, ドライバオプションで DVI ドライバを指定する必要がある.