Tuesday, August 23, 2011

Algoritmos en Latex

El paquete "algorithm2e" nos permite escribir el código de algoritmos en nuestros textos. Se invoca en el preámbulo como

\usepackage[portugues]{algorithm2e}

la opción de portugués es para que el encabezado de algoritmo se vea como algoritmo, y no en inglés algorithm.
Acá les dejo un pedazo de código:

\begin{algorithm}[H]
\caption{Alineamiento}
\SetKwInOut{Input}{entrada} %renombramos input como entrada
\SetKwInOut{Output}{salida} %renombramos output como salida
\Input{Secuencia$_1,...,$ secuencia$_n$.}
\Output{Secuencias par\'alogas}
\For{$query\leftarrow$ secuencia$_1$ \KwTo secuencia$_n$}
{
\For{$x\leftarrow$secuencia$_1$ \KwTo secuencia$_n$}
{
\lIf{query $= x$}
{
next
\tcp*[r]{Evitamos comparaci\'on entre las mismas secuencias}
}
\lElse
{
$query$ blastp $x$
\tcp*[r]{Alineamiento pareado con blastp}
}
\If{Eval $\leq$ 10$^-$$^5$ {\bf and} identidad $\geq$ 30\% {\bf and} longitud $\geq$ 60\%}
{
par\'alogos $\leftarrow$ (query, x)
\tcp*[r]{Almacenamos pares de secuencias par\'alogas}
}
}
}
\Return par\'alogos\;
\end{algorithm}

Lo que nos da la siguiente salida





El paquete "algorithm2e" es una mejor opción a la de "verbatim" para la escritura de nuestros códigos.