10 Extracción de información de diversos archivos
10.1 Archivo FASTA
Un archivo FASTA es un formato estándar para almacenar secuencias biológicas, como ADN, ARN o proteínas. Cada secuencia está compuesta por:
- Una línea de encabezado que comienza con el símbolo
> - Una o más líneas con la secuencia en formato de texto plano
Ejemplo:
>ENSMUSG00000049605 Olfr418-ps1
ATGGCCTGTTTCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTGCTG
10.1.1 Encabezado FASTA explicado (UniProtKB)
Este ejemplo describe una proteína curada manualmente en UniProt (Swiss-Prot), identificada como (+)-T-muurolol synthase, una enzima que convierte farnesyl diphosphate en terpenos. Proviene de la cepa ATCC 27064 de Streptomyces clavuligerus. El gen responsable es SCLAV_p0068, y hay evidencia experimental directa de su existencia (PE=1).
>sp|B5GW45|TMUUS_STRC2 (+)-T-muurolol synthase ((2E,6E)-farnesyl diphosphate cyclizing) OS=Streptomyces clavuligerus (...) OX=443255 GN=SCLAV_p0068 PE=1 SV=1
| Campo | Significado | Traducción didáctica |
|---|---|---|
sp |
Swiss-Prot: base de datos revisada manualmente | Entrada curada por expertos |
B5GW45 |
Accession number: identificador único de la proteína | Clave única en UniProt |
TMUUS_STRC2 |
Nombre corto: nombre de la proteína + especie | Abreviación de la enzima en Streptomyces clavuligerus |
(+)-T-muurolol synthase |
Nombre funcional: enzima que cicla farnesyl diphosphate | Enzima que produce terpenos |
(2E,6E)-farnesyl diphosphate cyclizing |
Actividad específica | Tipo de reacción química que realiza |
OS=Streptomyces clavuligerus (...) |
Organism Species: especie y cepas | Organismo fuente y cepas de referencia |
OX=443255 |
Organism Taxonomy ID | ID taxonómico en NCBI |
GN=SCLAV_p0068 |
Gene Name | Nombre del gen que codifica esta proteína |
PE=1 |
Protein Existence: nivel de evidencia |
|
SV=1 |
Sequence Version | Versión de la secuencia en UniProt |
Colocate dentro de la carpeta
_filesdeunix.bioinfo.rsgecuador-gh-pages. En mi caso sería empleando:cd /Users/ecoss/Documents/LCG2025_IntroBioinfo_S1/practica/unix.bioinfo.rsgecuador-gh-pages/_filesContesta las siguientes preguntas empleando el archivo
S_clavuligerus_proteome.fastaCambia los permisos para que las OTRAS personas cuenten con todos los permisos (escritura, lectura y ejecución) sobre el archivo
FASTA.¿Cuántas líneas tiene el archivo
FASTA?¿Cuántos registros (“>”) tiene el archivo FASTA?
¿Cuántas veces aparece el motivo
DDXXDen el archivoFASTA?¿Cuántos de esos registros son “Uncharacterized protein”?
¿Cuántos de esos registros cuentan con evidencia experimental (PE=1)?
¿De cuántos provienen las secuencias presentes en el archivo
FASTA?
10.2 Archivo GTF
Un archivo GTF(Gene Transfer Format) es un formato tabular utilizado para anotar elementos genómicos, como genes, exones, transcritos y regiones codificantes. Es ampliamente usado en bioinformática para describir la estructura de genes en un genoma de referencia.
Cada línea representa una característica genómica y contiene 9 columnas separadas por tabulaciones.
Ejemplo:
1 pseudogene gene 3054233 3054733 . + . gene_id "ENSMUSG00000090025"; gene_name "Gm16088"; gene_source "havana"; gene_biotype "pseudogene";
10.2.1 Columnas del GTF
| Nº | Nombre (ES) | Name (EN) | Descripción |
|---|---|---|---|
| 1 | Cromosoma | seqname |
Nombre del cromosoma o contig (ej. chr1) |
| 2 | Fuente | source |
Programa o base de datos que generó la anotación (ej. ENSEMBL) |
| 3 | Característica | feature |
Tipo de elemento anotado (gene, exon, CDS, etc.) |
| 4 | Inicio | start |
Posición inicial del elemento (1-based) |
| 5 | Fin | end |
Posición final del elemento |
| 6 | Puntuación | score |
Valor de calidad o puntuación (. si no aplica) |
| 7 | Hebra | strand |
Hebra del ADN: + para sentido, - para antisentido |
| 8 | Marco de lectura | frame |
Marco de lectura para CDS: 0, 1, 2 o . si no aplica |
| 9 | Atributos | attribute |
Campo con pares clave-valor (gene_id, gene_name, gene_biotype, etc.) |
Crear una carpeta llamada
GTFdentro de_files.Descargar el archivo GTF del cromosoma 1 de ratón (Mus_musculus.GRCm38.75_chr1)
curl -O https://raw.githubusercontent.com/Data-Skills/bds-files/master/chapter-07-unix-data-tools/Mus_musculus.GRCm38.75_chr1.gtfContesta las siguientes preguntas empleando el archivo Mus_musculus.GRCm38.75_chr1.gtf
Muestra las primeras tres líneas del archivo GTF que no sean comentarios (#), y extrae únicamente las primeras ocho columnas de cada línea.
Filtra las líneas tipo
geney cuenta cuántas tienengene_biotype "protein_coding".Filtra las líneas tipo
geney cuenta cuántas tienengene_biotype "lincRNA".Extrae los primeros cinco identificadores de genes (
gene_id) del archivo GTF usando una expresión regular.¿Cuántos genes tenemos de cada
gene_biotypeque aparece en el archivo GTF?Cuenta cuántas veces aparece cada tipo de característica genómica (columna 3) en el archivo GTF, excluyendo los comentarios.
Identifica cuántas veces aparece cada tipo de característica genómica (columna 3) asociada al gen
ENSMUSG00000033793en el archivo GTF.Extrae los primeros diez identificadores únicos de genes (
gene_id) del archivo GTF, eliminando duplicados y ordenándolos alfabéticamente.Genera un nuevo archivo llamado
gene_id_name.tsvque contenga dos columnas: 1) gene_id y 2) gene_name.
10.3 Archivo BED
Un archivo BED(Browser Extensible Data) es un formato tabular utilizado para representar intervalos genómicos. Es ampliamente usado en bioinformática para definir regiones como genes, exones, picos de ChIP-seq, regiones repetitivas, entre otros.
Cada línea representa una región en el genoma y contiene al menos tres columnas obligatorias, aunque puede incluir hasta doce.
Ejemplo:
chr22 1000 5000 cloneA 960 + 1000 5000 0 2 567,488, 0,3512
chr22 2000 6000 cloneB 900 - 2000 6000 0 2 433,399, 0,3601
10.3.1 Columnas del BED
| Nº | Nombre (ES) | Name (EN) | Descripción |
|---|---|---|---|
| 1 | Cromosoma | chrom |
Nombre del cromosoma (ej. chr1, chrX) |
| 2 | Inicio | start |
Posición inicial (0-based, inclusiva) |
| 3 | Fin | end |
Posición final (exclusiva) |
| 4 | Nombre | name |
(Opcional) Identificador de la región |
| 5 | Puntuación | score |
(Opcional) Valor entre 0 y 1000 |
| 6 | Hebra | strand |
(Opcional) Hebra del ADN: + o - |
| 7–12 | Campos avanzados | thickStart, thickEnd, itemRgb, etc. |
(Opcionales) Usados en visualización en genome browsers |
Convertir el archivo GTF a BED
grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | \
grep -w "gene" | \
sed -n 's/.*gene_name "\([^"]*\)".*/\1/p' | \
paste -d'\t' <(grep -v "^#" Mus_musculus.GRCm38.75_chr1.gtf | grep -w "gene" | cut -f1,4,5,7) - > Mus_musculus.GRCm38.75_chr1.bed- grep -v “^#” : Elimina las líneas de comentario (que empiezan con
#) - grep -w “gene” : Filtra solo las líneas que anotan genes (no exones, CDS, etc.)
- sed -n ‘s/.gene_name “([^”])“.*/\1/p’ : Extrae el valor del campo
gene_nameusando una expresión regular. - paste -d’ <(…) - : Une dos flujos de datos por columnas, separados por tabulación.
- <(grep … | cut -f1,4,5,7) : Extrae las columnas:
1: cromosoma4: posición inicial5: posición final7: hebra (+o-)
Otra manera de hacer esta transformación de GTF a BED es con convert_GTF_to_BED12.sh
Contesta las siguientes preguntas empleando el archivo Mus_musculus.GRCm38.75_chr1.bed.
¿Cuál es el tamaño de este archivo?
¿Cuántas líneas contiene este archivo?
Agrega el prefijo
Chrsolo a la primera columna de un archivo BED.Agrega una columna con el tamaño del transcrito usando solo herramientas básicas (
cut,paste,expr,while).
11 AWK
AWK es un lenguaje de programación diseñado para procesar datos de texto, ya sean ficheros o flujos de datos. El nombre AWK deriva de las iniciales de los apellidos de sus autores: Alfred Aho, Peter Weinberger, y Brian Kernighan. awk, cuando está escrito todo en minúsculas, hace referencia al programa de UNIX que interpreta programas escritos en el lenguaje de programación AWK. Es decir, AWK es un lenguaje interpretado por el intérprete de comandos.
11.1 Más ejercicios
Para el ejercicio 6.3 debes saber sobre AWK, puedes aprender más sobre el siguiento esta guia Curso avanzado de programación AWK y Bash para bioinformática y biocómputo en sistemas GNU/Linux.
Aqui les dejo la informacion que se puede consultar, solo sepan que existe.