Nociones de Bash y alineamientos básicos

Última actualización:

17 de mayo de 2026

PRÁCTICA 1

Nota1: Esta práctica se realizó en la primera sesión de informática de la asignatura. No obstante, he elaborado el guion de prácticas correspondiente a esta sesión a partir del guion dispuesto en el Aula Virtual.

Nota2: En esta práctica se elaboró también un archivo README.txt que se subió el mismo día en el que se realizó (29 de enero de 2026)

Objetivos

  1. Practicar los comandos básicos de Bash.

  2. Generar la estructura del cuaderno de prácticas.

  3. Realizar algunos alineamientos básicos.

Comandos básicos

A continuación se dispone una tabla con los comandos básicos de Bash.

Comando Función
pwd Conocer la dirección absoluta del directorio actual
cd .. Cambiar al directorio superior
cd a Entrar en el directorio “a”
cp a b Crear una copia “b” el archivo “a”
mv a b Renombrar el archivo “a” como “b”
mkdir a Crear el directorio “a”
rm a Eliminar el archivo “a”
rm -r a Eliminar el directorio “a” y su contenido
touch a Crear el archivo vacío “a” o actualizar su fecha de su consulta si ya existía

Ejercicio 1

Escoge un lugar adecuado en el árbol de directorios de tu ordenador para crear la carpeta que contendrá tu cuaderno de prácticas, en el cual incluirás tu propia versión de este primer guión. El cuaderno será una carpeta entera. Dale un nombre adecuado y genera esta estructura en su interior usando los comandos de Bash que has aprendido.

En este caso se ha creado una carpeta llamada “cuaderno”, ya que hace referencia a mi cuaderno de prácticas. Dentro de esta carpeta, utilizando el comando “mkdir” he creado otras tres carpetas:

  • Doc: aquí no se incluyen ni los datos, ni los resultados. Esta carpeta se utilizará para introducir referencias bibliográficas, informes, etc.

  • Results: en esta carpeta se incluyen los resultados y guiones que se realizarán a lo largo de las sesiones de prácticas. A su vez se han creado (utilizando mkdir) diferentes carpetas en su interior, cada una con la fecha de la sesión de prácticas correspondiente.

  • Data: en esta carpeta se incluirán los datos necesarios para la elaboración de cada una de las prácticas.

Alineamientos de pares de secuencias

En clase no llegamos a realizar este apartado, sin embargo, he intentado hacerlo en casa con el objetivo de practicar esta parte.

El objetivo de este apartado es alinear los tránscritos a sus respectivos fragmentos genómicos y comprobar que el alineamiento predice correctamente la estructura de intrones y exones del gen. Se utilizarán las siguientes secuencias:

  • HumanChr17 Un fragmento del cromosoma 17 humano.

  • ChimpChr17 Un fragmento del cromosoma 17 de chimpancé, homólogo al anterior.

  • HumanSMARCD2 Tránscrito del gen SMARCD2 humano.

  • ChimpSMARCD2 Tránscrito del gen SMARCD2 de chimpancé.

Utilizaramos las herramientas de EMBOSS para usar los programas needle o water, De esta forma se realizará el alineamiento desde la línea de ordenes mediante los algoritmos de Needleman-Wunsch o de Smith-Waterman, respectivamente.

Las órdenes siguientes descargan dos de las secuencias y las alinean con needle, a modo de ejemplo. El resultado del alineamiento se guardará en un archivo en formato de texto.

# Sólo queremos ejecutar el código si los resultados no
# están ya disponibles, es decir, si el archivo de salida no existe.
if [ ! -e aln1.txt ]; then
   # Sólo descargaremos las secuencias, si no están ya descargadas.
   if [ ! -e HumanSMARCD2.fa ]; then
      # Con la opción "-O" (letra mayúscula, no número cero) indicamos
      # el nombre del archivo donde queremos guardar la secuencia.
      wget -O HumanSMARCD2.fa https://www.ebi.ac.uk/ena/browser/api/fasta/AAI36323.1
   fi
   if [ ! -e HumanChr17.fa ]; then
      wget -O HumanChr17.fa \
         https://rest.ensembl.org/sequence/region/human/17:63832000..63843000:1?content-type=text/x-fasta
   fi
   # Utilizamos el carácter "\" para que Bash ignore el salto de línea
   # y poder distribuir los argumentos y opciones en más de una línea.
   needle -asequence HumanChr17.fa \
          -bsequence HumanSMARCD2.fa \
          -gapopen 15.0 \
          -gapextend 0.5 \
          -auto \
          -outfile aln1.txt
fi

Al ejecutar este bloque de código se han descargado en formato FASTA las secuencias correspondientes al tránscrito del gen SMARCD2 humano y un fragmento del cromosoma 17 humano. Asimismo, se ha creado el archivo de texto con el nombre “aln1.txt” que contiene el alineamiento de las dos secuencias.

Desafíos

  1. Lee detenidamente las órdenes y los comentarios y asegúrate de entenderlos.

Entiendo que únicamente se descargaran las secuencias en caso de que no existan, al igual que sólo se creará el archivo con el alineamiento en caso de que este no exista previamente.

Con la letra O guardaremos la secuencia en el archivo con el nombre que se le indique.

  1. Si al ejecutarlas aparece algún mensaje de error, léelo y corrige el error.

Al principio al ejecutarlo me aparecía un error debido a que se había escrito “HumanaChr17.fa” y no “HumanChr17.fa” en una de las ocasiones.

  1. Lee la ayuda del programa needle e intenta ajustar los parámetros para obtener un alineamiento más convincente. El programa needle sirve

    Tenemos que tener en cuenta que el programa needle se utiliza para hacer el alineamiento global de dos secuencias. Leyendo la ayuda para este programa he utilizado -gapopen a 30 en vez de a 15 (como antes) para penalizar en caso de que haya gaps, y -gapextend a 2 en vez de a 0.5 como antes.

needle -asequence HumanChr17.fa \
       -bsequence HumanSMARCD2.fa \
       -gapopen 25.0 \
       -gapextend 2.0 \
       -auto \
       -outfile aln_parametrosajudastados.txt

En este caso se ha creado un nuevo archivo de texto de nombre “aln_parametrosajudastados” (quería poner parámetros ajustados pero lo escribí mal) para crear un alineamiento “más convincente” al ajustar los parámetros.

  1. Prueba el programa water, para que el alineamiento sea local.

    En este caso para que el alineamiento sea local usamos el programa water (Smith-Waterman). Se ha creado un nuevo archivo de texto pero esta vez con el alineamiento local. Le he cambiado el nombre (añadido una W al final) para no confundirlo con el alineamiento global.

if [ ! -e aln1W.txt ]; then
   if [ ! -e HumanSMARCD2.fa ]; then
      wget -O HumanSMARCD2.fa https://www.ebi.ac.uk/ena/browser/api/fasta/AAI36323.1
   fi
   if [ ! -e HumanChr17.fa ]; then
      wget -O HumanChr17.fa \
         https://rest.ensembl.org/sequence/region/human/17:63832000..63843000:1?content-type=text/x-fasta
   fi
   water -asequence HumanChr17.fa \
          -bsequence HumanSMARCD2.fa \
          -gapopen 15.0 \
          -gapextend 0.5 \
          -auto \
          -outfile aln1W.txt
fi
  1. Intenta guardar el alineamiento en formato FASTA.

    Voy a guardar este último alineamiento en formato FASTA. Unicamente cambio .txt por .fasta

  water -asequence HumanChr17.fa \
          -bsequence HumanSMARCD2.fa \
          -gapopen 15.0 \
          -gapextend 0.5 \
          -auto \
          -outfile aln1W.fasta
  1. Alinea también el tránscrito de SMARCD2 de chimpancé a su cromosoma.

    El procedimiento será el mismo que antes, pero cambiando las secuencias. En este paso es muy importante copiar bien los enlaces que corresponden a cada una de las secuencias. Ahora se guardará el alineamiento en un archivo de texto llamado “aln2.txt”.

if [ ! -e aln2.txt ]; then
   if [ ! -e ChimpSMARCD2.fa ]; then
      wget -O ChimpSMARCD2.fa https://rest.ensembl.org/sequence/region/chimpanzee/17:63309800..63321000:1?content-type=text/x-fasta
   fi
   if [ ! -e ChimpChr17.fa ]; then
      wget -O ChimpChr17.fa \
         https://www.ebi.ac.uk/ena/browser/api/fasta/PNJ01291.1
   fi
   # Utilizamos el carácter "\" para que Bash ignore el salto de línea
   # y poder distribuir los argumentos y opciones en más de una línea.
   needle -asequence ChimpChr17.fa \
          -bsequence ChimpSMARCD2.fa \
          -gapopen 15.0 \
          -gapextend 0.5 \
          -auto \
          -outfile aln2.txt
fi
  1. Alinea también los dos fragmentos cromosómicos.

    Este alineamiento se guardará en un archivo de texto llamado “aln3.txt”.

if [ ! -e aln3.txt ]; then
   if [ ! -e HumanChr17.fa ]; then
      wget -O HumanChr17.fa  https://rest.ensembl.org/sequence/region/human/17:63832000..63843000:1?content-type=text/x-fasta
   fi
   if [ ! -e ChimpChr17.fa ]; then
      wget -O ChimpChr17.fa \
         https://www.ebi.ac.uk/ena/browser/api/fasta/PNJ01291.1
   fi
   needle -asequence ChimpChr17.fa \
          -bsequence ChimpSMARCD2.fa \
          -gapopen 15.0 \
          -gapextend 0.5 \
          -auto \
          -outfile aln3.txt
fi