Skip to content

Instrucciones para instalar, configurar y correr DRAM2 en el servidor de OMICA.

Notifications You must be signed in to change notification settings

ruben1294/easy-DRAM2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Easy-DRAM2 🧬

Configuración sencilla de DRAM2 para que corra en el HPC de OMICA 🖥️. Facilito.


Índice

📁 Estructura del repositorio

Este repositorio consiste de los siguientes archivos:

easy-DRAM2/
├── scripts/
│   ├── META_install_DRAM2.sh
│   └── META_MAG_distill_DRAM2.slurm
└── configs/
    ├── META_nf_DRAM2.config
    └── META_omica_slurm.config
Archivo Descripción
META_install_DRAM2.sh Script que copia el repositorio de DRAM2 a tu home y coloca META_omica_slurm.config dentro de DRAM2.
META_MAG_distill_DRAM2.slurm Script que ejecuta el pipeline principal de Nextflow/DRAM2.
META_nf_DRAM2.config Archivo de configuración de Nextflow. Aquí puedes personalizar los parámetros del pipeline.
META_omica_slurm.config Archivo con parámetros de SLURM. No recomiendo editarlo; el script de META_install_DRAM2.sh lo copia a donde debe de ir y listo.

📌Prerrequisitos

Para poder correr DRAM2 en el servidor de OMICA, hay unos prerrequisitos que se deben cumplir. El servidor ya los cumple:

  • Docker: En el servidor de OMICA, Docker está instalado sólo en el nodo nodo5.
  • Nextflow: Se instaló Nextflow en el ambiente de conda DRAMV2.
  • Bases de datos de referencia: Al día de hoy, las siguientes bases de datos están descargadas en el servidor: Kofam, Pfam, UniRef, Sulfur, Metals, Methyl, Camper, dbCAN y FeGenie. Puedes elegir las bases de datos a usar en tu flujo.

🚀Instrucciones

🛠️Instalación de DRAM2

Sitúate dentro de la carpeta en la que desees clonar este repositorio. Clona:

git clone ruben1294/easy-DRAM2.git
cd easy-DRAM2

Corre el script META_install_DRAM2.sh:

sbash scripts/META_install_DRAM2.sh

Este script va a clonar el repositorio de DRAM2 en tu home, y dentro de él, va a colocar una copia del archivo META_omica_slurm.config. Ahora debes configurar dos archivos para personalizar tus rutas y parámetros del pipeline. Recomiendo que los modifiques en este orden:

⚙️Configuración de SLURM: META_MAG_distill_DRAM2.slurm

Este script lanza el job maestro y ejecuta el orquestador, que es Nextflow, quien a su vez pasa los subjobs a SLURM. Actualmente, Docker sólo está instalado en el nodo5, por esta razón, debemos dejarlo disponible para que sólo ahí se ejecuten los subjobs del pipeline. Entonces, el script del orquestador debe ejecutarse en cualquier nodo, excepto en el nodo5. Esto lo hacemos con:

#SBATCH --exclude=nodo5

Modifica el job-name y el tiempo a reservar a tu gusto:

#SBATCH --job-name=MAG_distill_DRAM2
#SBATCH --time=160:00:00

Nextflow usa pocos recursos. Por esta razón, recomiendo dejar los valors de nodes, ntasks, cpus-per-task y mem intactos:

#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2
#SBATCH --mem=2G

Ahora, modifica las rutas a los logs de output y error para que se guarden donde desees:

#SBATCH --output=/LUSTRE/bioinformatica_data/metagenomica/DRAM2_%j.out
#SBATCH --error=/LUSTRE/bioinformatica_data/metagenomica/DRAM2_%j.err

Si quieres usar un archivo .env con rutas definidas, coloca la ruta del archivo y descomenta la sección con el encabezado Configuration Section:

#log_info "Loading configuration..."
#CONFIG_FILE="/LUSTRE/bioinformatica_data/metagenomica/config.env"
#if [[ ! -f "$CONFIG_FILE" ]]; then
#    log_error "Configuration file not found: $CONFIG_FILE"
#    exit 1
#fi
#source "$CONFIG_FILE"
#log_info "Configuration file sourced successfully"

Configura las siguientes rutas:

export OUT_DIR="/LUSTRE/bioinformatica_data/metagenomica" # Directorio de salida (donde se colocarán las salidas del pipeline)
export RAW_DIR="/LUSTRE/bioinformatica_data/metagenomica" # Directorio donde están los MAGs a procesar
export QUALITY_DIR="/LUSTRE/bioinformatica_data/metagenomica" # Directorio donde están los resultados de calidad
export TAXONOMY_DIR="/LUSTRE/bioinformatica_data/metagenomica" # Directorio donde están los resultados de la clasificación taxonómica

Eso es todo lo que tienes que hacer en este archivo.

⚠️ Importante: la etiqueta -resume sirve para que DRAM2 guarde una caché de tu pipeline. Si llegaras a cancelar el job maestro (el del orquestador), puedes relanzar el script más adelante, y DRAM2 reanudará el pipeline en donde se quedó. La caché se guarda en:

~/.nextflow/assets/WrightonLabCSU/DRAM/work

Si quieres borrar la caché para que el script corra todo desde cero, simplemente borra la carpeta work. Puedes hacerlo sin preocupaciones.

⚙️Configuración de Nextflow: META_nf_DRAM2.config

Aquí es donde puedes configurar el pipeline para que corra los módulos que desees, que use las bases de datos de referencia que desees, etcétera. Te recomiendo modificar sólo lo que menciono a continuación.

Ruta

Lo primero es elegir la ruta a tu directorio de trabajo. Las rutas a los archivos crudos (MAGs), reporte de calidad y reporte de taxonomía, van a estar en función de esta ruta:

WORK_DIR = "/LUSTRE/bioinformatica_data/metagenomica/"

Módulos

El pipeline de DRAM2 se divide en módulos. Puedes encender o apagar los que desees correr. Sin embargo, hay algunas condiciones que se deben cumplir si quieres usar algunos módulos. Para poder correr el módulo de traits, forzosamente se deben tener tres bases de datos: KEGG, FeGenie y Sulfur. Al día de hoy, no he podido conseguir la base de datos de KEGG, por lo que no he podido correr este módulo. Además, los módulos summarize y visualize encienden el módulo traits, por lo que también deben estar apagados. De lo contrario, obtendrás este error: When using Adjectives, make sure you use Kegg, FeGenie, and Sulfur Databases.

Esto es lo que hace cada módulo:

  • rename: agrega el nombre del MAG en el encabezado de cada contig, antes del ID actual.
  • annotate: asigna funciones biológicas a los genes predichos, usando como referencia las bases de datos que más adelante definas.
  • summarize: el "destilado" del metabolismo. Resume las anotaciones del módulo de annotate en rutas metabólicas, módulos funcionales, etcétera, por MAG.
  • visualize: genera gráficos con los resultados de summarize.
  • traits: intenta extraer rasgos biológicos a partir de las anotaciones. Existen varias hojas llamadas "distill sheets", con una serie de reglas para definir los traits de cada MAG.
  • qc: usa barrnap y tRNAscan-SE para identificar rDNAs y tRNAs, respectivamente.
  • call: usa Prodigal para predecir marcos abiertos de lectura, genes y secuencias proteicas.

Opciones de Prodigal

Si quieres usar tus propias salidas de Prodigal, puedes apagar el módulo call y definir la ruta a tus archivos aquí:

input_genes = "$GENES_DIR"

Modifica la ruta input_fasta para que vaya a la carpeta donde están tus MAGs:

input_fasta = "${WORK_DIR}/01_raw_files"

Puedes modificar los parámetros con los que correrá Prodigal:

prodigal_mode = 'single'
prodigal_trans_table = 11
min_contig_len = 2500

Bases de datos de referencia

En la parte de Annotation Database Flags, puedes elegir qué base de datos de referencia usar para la anotación funcional de proteínas. Puedes encender o apagar a tu gusto. No obstante, al día de hoy, hay un bug con la base de datos de Pfam. Si la enciendes, te dará el error: PFAM database is currently disabled in this pipeline due to a bug in the DRAM2 implementation with the PFAM database. It will be re-enabled in a future release.

Reportes de calidad y taxonomía

En la sección de Taxonomy and Bin Quality ingest, puedes definir rutas a tu reporte de taxonomía y de calidad:

taxa = "${WORK_DIR}/03_taxonomy_assigned/classify/summary.tsv"
bin_quality = "${WORK_DIR}/02_mags_quality/quality_report.tsv"

Estos resultados se incorporan al reporte raw-annotations.tsv.

Quality control (rDNAs y tRNAs)

Si tienes apagado el módulo de qc y deseas incluir tus propios resultados de la búsqueda de rDNAs y tRNAs, puedes incluir las rutas a los archivos aquí:

rrnas = null
trnas = null

Opciones de SLURM

En la parte de SLURM options, el único parámetro que recomiendo modificar (si lo deseas), es la partición, si no vas a usar la de 'cicese':

partition = 'cicese'

Queue size

El parámetro de queue_size es para definir cuántos subjobs se ejecutarán al mismo tiempo. Aquí es importante mencionar que los subjobs usarán la memoria RAM disponible del nodo repartida entre ellos, por lo que a mayor cantidad de subjobs, menor RAM podrá usar cada uno. A mí me ha funcionado usar un valor conservador:

queue_size = 3

Esto es todo lo que te sugiero modificar en el archivo.

🚀Correr Nextflow/DRAM2

Una vez que hayas revisado esos parámetros, puedes correr el script de SLURM:

sbatch scripts/META_MAG_distill_DRAM2.slurm

Como habrás notado, el script está diseñado para que coloque las salidas en la carpeta que elijas, pero el comando de Nextflow se debe ejecutar en la carpeta del repositorio. El script hace todo eso, no necesitas hacer nada más.

Espero que funcione.

About

Instrucciones para instalar, configurar y correr DRAM2 en el servidor de OMICA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages