###### tags: `resistome` `WGS` `estudiantes` `tutoriales`
# Trabajo Mar
### 1. Análisis exploratorio de los datos:
- [ ] Comparar la matrix de counts `AMR_analytic_matrix.csv` con un par de resultados individuales en `ResitomeCounts/` para entender si se trata de RPK, Abundancias relativas, hits, counts… y poder trabajar con esos datos.
- [ ] Escoger si preferimos trabajar con cada archivo individual -por tipo de dato- de `ResistomeCounts/` (Haciendo algún script para juntar todos en una tabla) o si nos vale la matrix `AMR_analytic_matrix.csv` para hacer un análisis descriptivo de los resultados, por:
* [ ] Tipo de resistencia
* [ ] Clase de ATB
* [ ] Mecanismos
* [ ] Gen
* [ ] Grupos
En este análisis descriptivo queremos ver la distribución de nuestros datos, ver si en general hay algun tipo más o menos de resistencia... ver que hay. Para esto puedes hacer tablas de resumen con [gtsummary](https://www.danieldsjoberg.com/gtsummary/) y visualizaciones como histogramas, gŕaficos de dispersión o algún otro gŕafico exploratorio sencillo. Puedes ver si te vale el paquete [GGpairs](https://r-charts.com/es/correlacion/ggpairs/) e ideas de tipos de gráficos [aquí](https://www.data-to-viz.com/).
:::info
Cuando tengas el análisis descriptivo con el grupo de celíacos, puedes repetirlo con los datos de AI4Food/obesidad (que ya están analizados) son `results_AI4foodV1` y `results_AI4foodV3`.
:::
:::warning
Después de hacer el análisis exploratorio, puedes lanzar los controles celíacos, ya están descargados y los tenemos ubicados. Y mientras trabaja el ordenador, tu pasarías al **punto 2: integración con otros datos.**
:::
### 2. Integración con otros datos:
Una vez entendidos, y analizados los datos. Es decir conocemos los genes de resistencia que tenemos, clase de resistencia que confieren, grupos, etc. integramos con otros resultados (metadata).
:::info
Cuando llegeus a este punto te pasaré los metadatos que necesites
:::
Nos interesa ver:
**Para dasatet celíacos:**
- Diferencias entre clústers de pacientes (Paper NRCD que te pasé).
- Correlación con taxonomía.
- Correlación con otros datos que tenemos y puedens er intersantes: dieta, tratamiento con otros fármacos.
**Para daset AI4Food:**
- Cambios en el resistoma después de laintervención de pérdida de peso (antes y después).
- Correlación con taxonomía.
- Correlación con otros datos que tenemos y puedens er intersantes: dieta, tratamiento con otros fármacos.
:::warning
Cuando tengas esto hecho, podemos pasar al punto 3: análisis de elemntos móviles.
:::
### 3. Elementos móviles de resistencia: :face_with_cowboy_hat:
Ejecutar el pipeline de metamobilepicker en el cluster de la UAM, porque ya está instalado y lo pude ejecutar con una muestra. (De esto te pasé mis apuntes de cómo iba el trabajo).
# Tutoriales e información útil:
- Github [AMR++](https://github.com/Microbial-Ecology-Group/AMRplusplus)
- Base de datos [MEGares](https://db.meglab.org/)
- [Phyloseq](https://joey711.github.io/phyloseq/)
# Ejecutar pipeline AMR++ con controles de celiacos (Cluster IMDEA)
- Datos de tCD-TG (Te pasé la ubicación por Element)
- En tu carpeta del cluster clonar el repositorio de Github de AMR++
`git clone https://github.com/Microbial-Ecology-Group/AMRplusplus.git`
- Te recomiendo crear una sesión de [screen](https://www.hostinger.com/es/tutoriales/instalar-usar-linux-screen) para trabajar en el cluster (Ya está instalado)
- Ejecutar AMR++
En principio ya está todo instalado en el cluster y te debría servir sólo con el comando:
```bash=1
#Crear sesión de screen
screen -S Nombre_de_tu_sesion
#Ejecutar AMR++
cd AMRplusplus
nextflow run main_AMR++.nf -profile singularity --pipeline standard_AMR --reads "/RUTA_A_LOS_DATOS/*_{1,2}.fastq.gz"
```
:::info
:memo: Puedes modificar algunos parametros en el script `params_config` como los threads y el nombre de la carpeta output.
:::
Error trimmomatic: hay que usar las lecturas crudas. OJO!
Este es el comando:
```
nextflow run main_AMR++.nf -profile singularity --pipeline standard_AMR --reads "/shared/data/diego/kraken_celiac_control/data/raw_data/*_{1,2}.fastq.gz"
```
Revierte los cambios que hayas hecho en el archivo `params_config` deja sólo la carpeta de output con el nombre que quieras y los threads, que como dijimos para no petar el cluster la mitad de los que hay.
# Metamobilepicker
:warning: Hacer en el cluster de la UAM.
- Ejecutar los trabajos en: `/home/proyectos/imdeaalim/jgcorder`
- Crear un directorio con las muestras que vas a usar.
- Crear archivo config primero, que debe ser algo así: (Este es para una sóla muestra, la idea es que puedas mandar varias a la vez, aquí tienes que ver como se hace)
```yaml
datadir: /lustre/NodoBIO/imdeaalim/ljmarcos
host: /lustre/local/metamobilepicker/0.7.2/lib/python3.10/site-packages/MetaMobilePicker/test/no_h$
max_mem: 8
outdir: /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta
samples:
V1_1077:
fwd: /lustre/NodoBIO/imdeaalim/ljmarcos/clean_data/V1_1077_1.fastq
rev: /lustre/NodoBIO/imdeaalim/ljmarcos/clean_data/V1_1077_2.fastq
threads:
big: 8
huge: 16
medium: 8
small: 4
```
- Ejecutar metamobile usando el script de slurm similar a esto, Ejemplo `script.sh` modifica tu email, los directorios de output y error que es donde se guardan los logs.
```bash
#!/bin/bash
#SBATCH -p bioinfo #partition/queue name
#SBATCH --job-name=metamobile1 #Job name
#SBATCH -N 1 #Un nodo
#SBATCH -n 16 #Lo que tiene por default metamobile
#SBATCH -t 20:00:00 #Time limit hrs:min:sec
#SBATCH --output=/home/ljmarcos/metamobile/log-%j.o #Log de salida
#SBATCH --error=/home/ljmarcos/metamobile/log-%j.e #Log de errores
#SBATCH --mail-user=judith.marcos@alimentacion.imdea.org
#SBATCH --mail-type=END,FAIL
# Copiar a temporal los ficheros de entrada necesarios para metamobile
mkdir /temporal/$SLURM_JOB_USER/$SLURM_JOB_ID
cp -r data /temporal/$SLURM_JOB_USER/$SLURM_JOB_ID
cd /temporal/$SLURM_JOB_USER/$SLURM_JOB_ID
mkdir output
# Ejecutar el comando Metamobile
module load metamobilepicker/0.7.2
metamobilepicker run -c /home/proyectos/imdeaalim/ljmarcos/V1_1077_config.yaml
# Mover a imdeaalim los resultados del cálculo.
mv output /lustre/NodoBIO/imdeaalim/ljmarcos/output
```
- Lanzar el script de SLURM.
```bash
sbatch -A imdeaalim_serv -p bioinfo script.sh
```
:memo: La última prueba que he hecho me dió este error:
```
# Filters contigs based on length, with a minimum of either 1000 or 500 bp.
echo "Filtering assembly on 1000bp" > /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/log/assembly/V1_1077_length_filtering_out.txt
seqkit seq -m 1000 /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/V1_1077_metaspades/contigs.fasta > /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/V1_1077_metaspades/V1_1077_1000bp.fasta 2> /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/log/assembly/V1_1077_length_filtering_error.txt
echo "Moving assembly to temp directory for plasclass" >> /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/log/assembly/V1_1077_length_filtering_out.txt
mkdir -p tmp
cp /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/V1_1077_metaspades/V1_1077_1000bp.fasta tmp/V1_1077_1000bp.fasta 2>> /lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/log/assembly/V1_1077_length_filtering_error.txt
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
Removing output files of failed job cut_assembly since they might be corrupted:
/lustre/NodoBIO/imdeaalim/ljmarcos/out_meta/V1_1077/V1_1077_metaspades/V1_1077_1000bp.fasta
[Wed Jul 2 14:36:10 2025]
Finished job 12.
5 of 21 steps (24%) done
[Wed Jul 2 14:43:20 2025]
Finished job 14.
6 of 21 steps (29%) done
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
[2025-07-02 14:43 CRITICAL] Command 'snakemake --use-conda --snakefile /lustre/local/metamobilepicker/0.7.2/lib/python3.10/site-packages/MetaMobilePicker/Snakefile --cores 16 --configfile /home/proyectos/imdeaalim/ljmarcos/V1_1077_config.yaml --rerun-incomplete --nolock --latency-wait 60 --directory /lustre/local/metamobilepicker/0.7.2/lib/python3.10/site-packages/MetaMobilePicker --use-singularity --singularity-prefix /lustre/local/metamobilepicker/0.7.2/lib/python3.10/site-packages/MetaMobilePicker/.snakemake --singularity-args '--home $PWD/.. --bind $TMPDIR,$PWD/..'' returned non-zero exit status 13.
```