###### 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. ```