书写核苷酸基序

书写核苷酸基序

有没有办法写出像图中这样的核苷酸基序?

共有 4 个字母,每个字母都采用颜色编码。如果一个位置有多个选项,则所有选项都写在彼此下方,但总大小保持不变。

谢谢!

在此处输入图片描述

答案1

每个堆栈由 组成\DNA{<component>[<value>]...<component>[<value>]...}{<height>}。scomponent\Ad\Gu\Th\Cy。svalue为实数。必须小心,如果values 太高,则会发生算术溢出。

\thegapvalue定义专用于字母之间白色间隙的组件。设置为0将使字母堆叠时没有间隙。

选择一个值来-保留间隙,但不放置字母。

\documentclass{article}
\newcommand\thegap{.5}

\usepackage{stackengine,scalerel,xcolor}
\newcommand\Adenine{\textcolor{green}{\sffamily\bfseries A}}
\newcommand\Guanine{\textcolor{orange}{\sffamily\bfseries G}}
\newcommand\Thiamine{\textcolor{red}{\sffamily\bfseries T}}
\newcommand\Cytosine{\textcolor{blue}{\sffamily\bfseries C}}
\def\grow#1[#2]{%
  \ifx-#2\else\stretchto{$#1$}{\dimexpr#2pt-\thegap pt\relax}\fi%
}
\newcommand\Ad{\grow\Adenine}
\newcommand\Gu{\grow\Guanine}
\newcommand\Th{\grow\Thiamine}
\newcommand\Cy{\grow\Cytosine}
\newcommand\DNA[2]{\setstackgap{S}{\thegap pt}\setstackEOL{ }\stretchto{\Shortstack{#1}}{#2}}
\begin{document}
\DNA{\Cy[14] \Gu[4] \Ad[5] \Th[5]}{30pt}%
\DNA{\Cy[17] \Gu[3] \Ad[4] \Th[3]}{30pt}%
\DNA{\Th[17] \Gu[5] \Ad[3] \Cy[-]}{30pt}%
\DNA{\Ad[120] \Gu[40] \Th[4] \Cy[3]}{30pt}%
\DNA{\Th[70] \Gu[20] \Cy[20] \Ad[20]}{30pt}%
\DNA{\Ad[90] \Gu[20] \Cy[20] \Th[5]}{30pt}%
\end{document}

在此处输入图片描述

相关内容