5 Exploración y manipulación de archivos fasta
Ahora que ya sabes buscar, filtrar y manipular texto, vamos a aplicar las mismas herramientas sobre un formato muy usado en biología: el archivo FASTA. Aunque contiene secuencias biológicas, no deja de ser texto plano, así que todos los comandos que aprendimos funcionan igual.
5.1 Prepara el directorio de trabajo
Crea un directorio nuevo para trabajar en este capítulo y muevete a el
mkdir Ejercicio_hsp70cd Ejercicio_hsp705.2 Descarga el archivo desde github
En este capítulo trabajaremos con el archivo:
ncbi_seqdata.tar.gz
Este archivo contiene un conjunto de secuencias descargadas desde la página del NCBI
Para obtener archivos desde Internet directamente en tu terminal podemos usar el comando wget, una herramienta muy útil para transferir datos desde servidores web.
wget https://github.com/ISCB-RSG-MEXICO/Workshop_Bash2025/raw/refs/heads/main/ncbi_seqdata.tar.gz
Cuando el proceso de descarga termine, podrás verificar que el archivo se descargó correctamente con:
lsDeberías ver el archivo ncbi_seqdata.tar.gz presente en tu directorio
5.3 Descomprime el archivo
Cuando trabajamos con datos biológicos —como secuencias FASTA, archivos de anotaciones o resultados de programa es común que los archivos sean pesados o que deban enviarse como un grupo. Para facilitar su manejo, estos archivos suelen comprimirse o empaquetarse antes de ser distribuidos.
5.3.1 ¿Por qué comprimir?
Reduce el tamaño del archivo → descarga más rápida.
Ahorra espacio en disco.
Permite agrupar varios archivos en uno solo.
Mantiene organizado un conjunto de datos que deben viajar juntos.
En bioinformática, los formatos más comunes son:
| Extensión | ¿Qué hace? | Descomprimir | |
|---|---|---|---|
.tar |
Empaqueta | Agrupa varios archivos/directorios en un solo archivo, sin comprimirlos. | |
.gz |
Comprime | Comprime un solo archivo, reduciendo su tamaño. |
|
.tar.gz |
Empaqueta y comprime |
|
Los archivos pueden tener distintas extensiones según su propósito. En algunos casos será necesario descomprimirlos para acceder a su contenido, y en otros conviene mantenerlos comprimidos para ahorrar espacio en tu entorno de trabajo.
| Tipo de archivo | Comprimir | Descomprimir |
|---|---|---|
| directorio.tar | tar -cvf directorio.tar directorio/ |
tar -xvf directorio.tar |
| directorio.tar.gz | tar -czvf directorio.tar.gz directorio/ |
tar -zxvf directorio.tar.gz |
| archivo.gz | gzip -9 archivo.txt |
gunzip -kd archivo.txt.gz |
| directorio.zip | zip -r directorio.zip directorio |
unzip directorio.zip |
Ahora que descargaste el archivo ncbi_seqdata.tar.gz, el siguiente paso es descomprimirlo para acceder al conjunto de secuencias.
Un archivo .tar.gz combina empaquetado (.tar) y compresión (.gz), por lo que para usar su contenido necesitamos expandirlo.
- ¿Qué línea de comando utilizarías para descomprimir el archivo
ncbi_seqdata.tar.gzen tu directorio?
5.4 Exploración del contenido de un archivo FASTA
Recuerda que el contenido de un archivo FASTA es texto plano que tiene la siguiente estructura:
>encabezado con información #(gen, organismo, ID de acceso...)
Secuencia de ADN/ARN/aminoácidos
Una vez descomprimido el archivo ncbi_seqdata.tar.gz, ahora tienes una carpeta con varios archivos FASTA.
ls ncbi_seqdata/Antes de analizarlos a fondo, es útil ver su contenido sin abrirlos en un editor sin inundar la terminal con miles de caracteres.
El comando less permite revisar archivos largos sin cargarlos completos en pantalla y moviéndote libremente dentro de ellos.
Es ideal para explorar FASTA grandes porque:
No modifica el archivo
Puedes moverte hacia arriba y abajo
Permite búsquedas dentro del archivo
Es rápido incluso con archivos enormes
Una vez dentro de less, puedes navegar así:
| Atajo | Acción |
|---|---|
↑ / ↓ |
Mover una línea arriba/abajo |
Space |
Avanzar una página |
b |
Retroceder una página |
g |
Ir al inicio del archivo |
G |
Ir al final del archivo |
/texto |
Buscar hacia adelante |
?texto |
Buscar hacia atrás |
| h | Ayuda |
q |
Salir de less |
Recuerda: el símbolo | (pipe) permite encadenar comandos: la salida de uno pasa como entrada al siguiente. El wildcard * funciona como un comodín que representa “cualquier número de caracteres” cuando buscas archivos o patrones en nombres dentro del shell.
- Dentro del nuevo directorio
ncbi_seqdata/los archivos pueden contar con una extensión.fnao.faa¿cuál es la diferencia entre los archivos que tienen una exxtensión o la otra? - Enlista todos los archivos que contengan en su nombre la extensión
.fna - Enlista todos los archivos que contengan en su nombre la extensión
.faa
Los archivos FASTA almacenan una o varias secuencias, y cada una de ellas comienza con una línea de encabezado marcada por el signo “>” seguida de la información descriptiva de la secuencia.
Por lo tanto, una manera común de saber cuántas secuencias contiene un archivo es contar cuántos encabezados tiene.
- Imprime todos los encabezados de las secuencias de cada archivo
- ¿Qué línea de comando utilizarías para contar el número de secuencias en el archivo archivo
C_lupus_familiaris_cds.fna? - ¿Cómo contarías el número de secuencias por archivo en una sola línea de comando?
Ahora que ya exploraste los archivos FASTA, es momento de comenzar a analizarlos de forma más sistemática. Las secuencias contenidas en ncbi_seqdata/ representan genes y proteínas ortólogos de distintos organismos, por lo que son ideales para practicar tareas comunes en bioinformática.
Las operaciones típicas al trabajar con secuencias son:
Identificar patrones importantes en ADN (como codones de inicio).
Generar archivos combinados que integren información de varios organismos.
Obtener recuentos que te permitan comparar rápidamente cuántas secuencias hay en distintos conjuntos.
Recuerda que el comando grep sirve para entontrar patrones en un archivo. grep -o muestra solo la parte del texto que coincide con el patrón, una coincidencia por línea. Esto es útil cuando quieres contar ocurrencias reales, no líneas en donde aparece el patrón (grep -c).
- Cuenta el número de codones de inicio (
ATG) por archivo que contenga secuencias nucleotídicas - Concatena todas las secuencias de nucleótidos de todos los organismos en un archivo nuevo con extensión .fna
- Concatena todas las secuencias de proteínas de todos los organismos en un archivo nuevo con extensión .faa
- ¿Cuántas secuencias hay en total de todos los archivos con secuencias de nucleótidos? ¿Y de proteínas?
5.5 Edición de secuencias con sed
sed (stream editor) es una herramienta que permite modificar texto sin abrir los archivos, procesándolo “en flujo” mientras pasa por la terminal.
Es muy útil cuando queremos reemplazar, eliminar, extraer o transformar patrones en archivos FASTA o cualquier archivo de texto, especialmente cuando se combina con pipes (|).
sed no cambia el archivo original a menos que se indique explícitamente; por defecto solo imprime el resultado modificado, lo cual lo hace seguro y práctico para análisis rápidos.
Por ejemplo:
sed 's/AAA/TTT/g' archivo.fna/→ Separador (puedes utilizar cualquiera)AAA→ patrón dentro del archivo que se quiere reemplazarTTT→ reemplazo del patróns→ significa “substitute” (sustituir)g→ indica que tiene que reemplazar todas las coincidencias de esa línea (sing,sedsolo reemplaza la primera ocurrencia de cada línea)
En cualquier archivo
.fnareemplaza temporalmente todas las apariciones del codónATGpor NNNEn el archivo
H_sapiens_cds.fnaimprime en pantalla las líneas donde se reemplace solo la primera ocurrencia deAporNen cada línea.Crea un nuevo archivo llamado
mod_cds.fnadonde todas las apariciones del codónGAAsean reemplazadas por---.Crea una nueva versión del archivo
X_tropicalis_cds.fnadonde se eliminen todos los caracteresNde las secuencias, guardándolo comoX_tropicalis_clean.fna.En cualquier archivo
.fna, elimina el símbolo “>” al inicio de las cabeceras
Puedes utilizar un “|” y después el comando less para visualizar la salida de una línea de comando. De esta manera se evita saturar el espacio de trabajo de muchos caracteres.
5.6 Referencias
- National Center for Biotechnology Information. Orthologs of gene 100496320 (HSPA8) in NCBI Datasets. Recuperado de https://www.ncbi.nlm.nih.gov/datasets/gene/100496320/#orthologs