tikz による配列アラインメント図

tikz による配列アラインメント図

私は DNA 配列図を作成しようとしています。ここに私が持っているものを示します:

\definecolor{color1}{RGB}{255,183,236}
\definecolor{color2}{RGB}{255,249,158}

\begin{center}
\begin{tikzpicture}
  \node (read) [rectangle,draw,fill=color1] {TTTCAGATTT};
  \node (refread) at (1,3) [rectangle,draw,fill=color1] {TTTCAGATTT};
  \node at (refread.west) [rectangle,draw,fill=color2,anchor=east] {ACCAGG};
  \node at (refread.east) [rectangle,draw,fill=color2,anchor=west] {AAA};
  \draw[->]{(read) -- (refread)};
\end{tikzpicture}
\end{center}

ここに画像の説明を入力してください

一番上の部分を、その部分が強調表示された単一のシーケンスのように見せるにはどうしたらいいでしょうか。

ここに画像の説明を入力してください

答え1

まずフレームなしで上部のボックスを描き、次にそれらすべてを囲むボックスを描きます。

\begin{tikzpicture}
  \node (read) [rectangle,draw,fill=color1] {TTTCAGATTT};

  \node (refread) at (1,3) [rectangle,fill=color1,inner xsep=0pt,line width=0] {TTTCAGATTT};
  \node (first) at (refread.west) [rectangle,fill=color2,anchor=east,inner xsep=0pt,,line width=0] {\,ACCAGG};
  \node (last) at (refread.east) [rectangle,fill=color2,anchor=west,inner xsep=0pt,line width=0] {AAA\,};
  \draw (first.south west) rectangle (last.north east);

  \draw[->]{(read) -- (refread)};
\end{tikzpicture}

編集: 白い境界線の問題を解決するために修正しました。ボックスの高さは変更されていません。これはおそらく、PDF ビューア (スクリーン キャプチャを取得したビューア) によって作成されたアーティファクトです。

ここに画像の説明を入力してください

答え2

マイケルの回答に加えて:

ボックスの高さはまだ不均一でした。\vphantom次のように修正しました。

\node at (refread.east) [...] {\vphantom{ACTG}AAA\,};

関連情報