11 Filtrado de texto (grep, cut, sort, uniq, wc
)
Veamos ahora los comandos más usados en tuberías de filtrado de texto en acción, haciendo uso de sólo algunas de las opciones más frecuentes listados en la sección anterior.
11.1 Contar el número de secuencias en un archivo FASTA
- ¿Cuántas líneas tiene el archivo S_clavuligerus_proteome.fasta?
cd ~/unix.bioinfo.rsgecuador-gh-pages/_files
wc -l S_clavuligerus_proteome.fasta
# 40739 lineas
En archivos de formato FASTA o similares, el número de líneas no corresponde al número de secuencias. Esto se debe a la estructura del archivo:
Formato FASTA: Cada secuencia comienza con una línea que tiene el símbolo
>
, seguido de un identificador o descripción de la secuencia.Las líneas siguientes contienen la secuencia de nucleótidos o aminoácidos, que pueden estar divididas en varias líneas.
Por lo tanto, para contar el número de secuencias en un archivo FASTA, debes contar las líneas que comienzan con >
. Aquí tienes un ejemplo práctico en Bash para lograrlo:
- ¿Cuántas secuencias tiene el archivo S_clavuligerus_proteome.fasta?
grep -c "^>" S_clavuligerus_proteome.fasta
# 6439 secuencias
- ¿Cuáles bases de datos detectaron estas secuencias?
grep ">" S_clavuligerus_proteome.fasta | cut -d '|' -f1 | sed 's/>//' | uniq
# sp y tr
UniProtKB (Universal Protein Knowledgebase) tiene dos secciones principales:
Swiss-Prot (
sp
): Contiene secuencias revisadas y anotadas manualmente.TrEMBL (
tr
): Contiene secuencias computacionalmente anotadas y aún no revisadas manualmente.
- ¿Qué organismo produce esta proteína y cuál es su Taxonomy ID?
organism=$(grep ">" S_clavuligerus_proteome.fasta | sed -n 's/.*OS=\([^ ]*\).*/\1/p' | sort -u)
taxonomy=$(grep ">" S_clavuligerus_proteome.fasta | sed -n 's/.*OX=\([0-9]*\).*/\1/p' | sort -u)
echo "Organismo: $organism"
echo "Taxonomy ID: $taxonomy"
- ¿Cuántos genes codifican a estas proteínas?
grep ">" S_clavuligerus_proteome.fasta | sed -n 's/.*GN=\([^ ]*\).*/\1/p' | sort | uniq | wc -l
# 6410 genes
- ¿Qué nivel de evidencia tiene la existencia de la proteína TMUUS_STRC2?
TMUUS_STRC2
: Es el nombre de la proteína en formato abreviado y en mayúsculas.
TMUUS
: Abreviatura de la función de la proteína: “(+)-T-muurolol synthase”.STRC2
: Abreviatura del organismo de origen, Streptomyces clavuligerus.
El nivel de evidencia de la existencia de la proteína TMUUS_STRC2
está especificado en la cabecera FASTA mediante el campo PE
. En este caso: >sp|B5GW45|TMUUS_STRC2 (+)-T-muurolol synthase ((2E,6E)-farnesyl diphosphate cyclizing) OS=Streptomyces clavuligerus OX=443255 GN=SCLAV_p0068 PE=1 SV=1
El campo PE=1
indica que el nivel de evidencia es 1, lo que significa que la existencia de esta proteína está confirmada experimentalmente.
Interpretación de PE (Protein Existence) en UniProt:
PE=1: Evidencia experimental a nivel de proteína.
PE=2: Evidencia experimental a nivel de transcripción.
PE=3: Inferido por homología.
PE=4: Predicho.
PE=5: Proteína no existente.
En Bash:
grep ">.*TMUUS_STRC2" S_clavuligerus_proteome.fasta | sed -n 's/.*PE=\([0-9]\).*/\1/p'
Por lo tanto, TMUUS_STRC2 tiene el nivel más alto de evidencia (PE=1), lo que confirma su existencia a nivel experimental.
Contesta las siguientes preguntas empleando el archivo S_clavuligerus_proteome.fasta:
- ¿Qué proteínas tienen un nivel de evidencia menor o igual a 2?
- ¿Cuántas proteínas tienen el identificador de taxonomía (
OX=443255
) específico? - ¿Cuántas variantes de secuencia (SV, sequence version) diferentes hay en el archivo FASTA?