---
# System prepended metadata

title: "Análisis de Similitudes de Proteínas de \U0001F9EC Pediococcus pentosaceus con BLASTp:"

---

# Análisis de Similitudes de Proteínas de 🧬 *Pediococcus pentosaceus* con BLASTp:
# Desde la Anotación hasta los Resultados Finales

## 🧬 Ejercicio: Anotación del genoma con Prokka

El siguiente comando ejecuta Prokka para anotar el genoma ensamblado de *Pediococcus pentosaceus* cepa **Pp16CC**:

```bash
prokka \
  --outdir A5End_prokka_Pp16CC \
  --prefix Pp16CC_annotation \
  --genus Pediococcus \
  --species pentosaceus \
  --strain Pp16CC \
  --kingdom Bacteria \
  --cpus 8 \
  EnsambleA5.final.scaffolds.fasta
  ```
## 🧬 Anotación con Prokka tras ensamblaje de A5 (sin `--end=5`)

Si ejecutaste A5 sin la opción `--end=5`, tu archivo ensamblado se llama típicamente:

```bash
prokka \
  --outdir A5_prokka_Pp16CC_contigs \
  --prefix Pp16CC_annotation \
  --genus Pediococcus \
  --species pentosaceus \
  --strain Pp16CC \
  --kingdom Bacteria \
  --cpus 4 \
  Pp16CC.contigs.fasta
```
## 🔬 Ejercicio: Descargar proteínas de *Pediococcus pentosaceus* con Entrez

Este ejercicio te guía en la preparación de un análisis usando BLASTp a partir de proteínas descargadas desde NCBI con Entrez.

---

### 📁 Paso 1: Salir de la carpeta actual y crear una nueva carpeta

```bash
cd ..
mkdir blastP_pediococcus
cd blastP_pediococcus
```
### 🧪 Paso 2: Activar el ambiente Conda
```bash
conda activate EntrezEnv
```
### 🧬 Paso 3: Descargar proteínas de interés con Entrez
Usaremos esearch, efetch y xargs para descargar 5 proteínas conocidas de *Pediococcus pentosaceus* asociadas con funciones importantes.

#### Algunos ejemplos de proteínas de interés:
Bacteriocin (actividad antimicrobiana)
Lactate dehydrogenase (fermentación)
DNA gyrase (replicación)
Elongation factor Tu (traducción)
Heat shock protein (respuesta al estrés)
```bash
esearch -db protein -query "Pediococcus pentosaceus AND (bacteriocin OR lactate dehydrogenase OR DNA gyrase OR elongation factor Tu OR heat shock protein)" | efetch -format fasta > pediococcus_proteins.faa
```
#### 🔎 Contar la cantidad de proteínas descargadas en el archivo pediococcus_proteinas.faa
```bash
grep -c "^>" pediococcus_proteins.faa
```
## 🔧 Ejercicio: Crear una base de datos BLASTp con las proteínas descargadas

Una vez que ya tienes el archivo `pediococcus_proteins.faa` (obtenido con Entrez), puedes convertirlo en una base de datos para búsquedas BLAST locales (local BLAST).

---

### 🧪 Paso 1: Crear la base de datos

Ejecuta el siguiente comando:

```bash
makeblastdb -in pediococcus_proteins.faa -dbtype prot -out pediococcus_db
```
## 🧬 Ejercicio: Alinear proteínas anotadas con Prokka usando BLASTp

Ahora vamos a usar las proteínas anotadas por Prokka para hacer una búsqueda con `blastp` contra la base de datos que generamos previamente.

---

### 📁 Paso 1: Copiar el archivo de proteínas anotadas

Ubica el archivo `.faa` generado por Prokka (contiene las proteínas predichas), y cópialo a la carpeta donde está la base de datos `pediococcus_db`.

🔎 Reemplaza /PATH/ con la ruta correcta donde Prokka guardó sus archivos (por ejemplo: prokka_Pp16CC/).

```bash
cp /PATH/Pp16CC_annotation.faa .
```
### Paso 2: Crear una carpeta para resultados
```bash
mkdir blastp_out
```

### 🧪 Paso 3: Ejecutar BLASTp
Usamos blastp para alinear las proteínas anotadas contra la base de datos creada con Entrez:

```bash
blastp \
  -query Pp16CC_annotation.faa \
  -db pediococcus_db \
  -out blastp_out/Pp16CC_vs_pediococcus.tsv \
  -evalue 1e-5 \
  -num_threads 4 \
  -outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore"
```
✅ Usamos **outfmt 6**, que genera resultados en formato tabular .tsv fácilmente legible y procesable.
🔎 Otra manera de correr el comando anterior:

```bash
blastp -query Pp16CC_annotation.faa -db pediococcus_db -out blastp_out/Pp16CC_vs_pediococcus.tsv -evalue 1e-5 -num_threads 4 -outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore"
```
#### Columnas incluidas en el resultado (outfmt 6)
Las 12 columnas más comunes en alineamientos informativos:
![Tabla de columnas con descripción de campos del formato outfmt 6 de BLASTp](https://hackmd.io/_uploads/SJU7wTWVll.png)
## 🔍 Últimos pasos en el análisis: Filtrado de mejores hits

### 📂 Paso 1: Ir al directorio de resultados de BLASTp

Primero, navega al directorio donde se encuentran los resultados de BLASTp:

```bash
cd blastp_out/
```
### 📊 Paso 2: Contar cuántas proteínas anotadas tienen al menos un hit
Usamos el siguiente comando para contar cuántas proteínas de tu anotación (qseqid) tienen al menos una coincidencia significativa en la base de datos:
```bash
cut -f 1 Pp16CC_vs_pediococcus.tsv | sort | uniq | wc -l
```
🔍 Este comando:
Extrae las primeras columnas (qseqid).
Ordena las secuencias únicas.
Cuenta cuántas proteínas tienen al menos un hit.
### 📑 Paso 3: Extraer el mejor hit (mayor bitscore) para cada proteína
Este script en awk seleccionará el mejor hit para cada proteína de la anotación (la proteína con el mayor bitscore) y lo guardará en un nuevo archivo best_hits.tsv:
```bash
awk '              
{
  if (!($1 in best) || $12 > best[$1]) {
    best[$1] = $12;      # guarda el mejor bitscore
    line[$1] = $0;       # guarda la línea completa del mejor hit
  }
}
END {
  for (id in line) print line[id];
}
' Pp16CC_vs_pediococcus.tsv > best_hits.tsv
```
🔍 Este script:
Compara el bitscore ($12) de cada hit para la proteína (qseqid, $1).
Guarda solo el mejor hit para cada proteína.
Imprime el resultado final en el archivo best_hits.tsv.
### 🔧 Paso 4: Filtrar los mejores hits por identidad (>70%)

Ahora, para quedarnos solo con las proteínas que tengan una **alta identidad** (mayor al 70%), usamos `awk` de la siguiente manera:

```bash
awk '$3 > 70' best_hits.tsv
```
#### Finalmente guardamos los mejores hits con más del 70% de identidad
```bash
awk '$3 > 70' best_hits.tsv > filtered_best_hits.tsv
```