Диаграмма выравнивания последовательности с помощью tikz

Диаграмма выравнивания последовательности с помощью tikz

Я пытаюсь создать схему выравнивания ДНК. Вот что у меня есть:

\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\,};

Связанный контент