Criando arquivo sbatch
Para usar o NP³ MS Workflow no HPC MARVIN, a forma mais eficiente é submentendo um job no seu gerenciador de filas slurm.
Neste job colocamos todos os comandos que devem ser executados em um arquivo de texto simples de extesão .sh.
Cabeçalho
No cabeçalho os principais parametros são:
--jobname=<jobname>| Nome do seu job;--ntaks=<numero>| Número tarefas, geralmente 1 é suficiente;--cpus-per-task=<numero>| Número de CPUS que serão usadas, se usar um valor diferente de1lembre-se também modificar o parâmetro-l(é a letra éle) em seurun;--partition=<nome_particao>| O NP³ não é otimizado para GPU, então escolha uma das filas de CPU (que geralmente são menos concorridas, então pode ser uma vantagem). As fila de CPU atualmente disponíveis são:- debug-cpu | até 30:00 min | Recomendada para testes;
- gui-cpu | até 12:00:00 horas | Recomendada para sessões VNC no OOD;
- short-cpu | até 5-00:00:00 dias | Recomendada para maioria dos trabalhos;
- long-cpu | até 15-00:00:0 dias | Recomendada para processamentos muito demorados.
Exemplo de cabeçalho:
#!/bin/bash
#SBATCH --job-name=NP3_MS_WORKFLOW_your_intuitive_name
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=short-cpu
Corpo
No corpo do arquivo colocamos os comandos que serão executados. Nesse caso, é o comando para executar o np3_ms_workflow instalado dentro de um container do singularity e os parâmetros para execução.
Execução do NP³
Depois de ter enviado seus arquivos MZXML e metadado à sua área do OpenOnDemand, basta construir seu comando de processamento utilizando os endereços completos dos diretórios
Abaixo um exemplo para o run:
- Da usuário
marie.curie; - Saída no diretório
tmpsdentro de suahome; - Com metadao em pasta de mzxml em
Documentos\NPTest, também dentro dahome; - Tempos de tolerância de 1s para o mesmo batch e 2s geral;
- Verbose 10 que significa ligado para registro e ativa o teste de integridade no final (consulte o manual para mais opções).
Note que para quebrar a linha, e ficar mais legível, basta colcoar uma \ logo antes da quebra que o programa interpreta como estivesse tudo na mesma linha
singularity run /opt/images/NP3/ms_workflow/np3_ms_workflow.sif run \
-n NPTrial \
-o /home/marie.curie/tmps/ \
-m /home/marie.curie/Documentos/NPTest/marine_bacteria_lib_metadata.csv \
-d /home/luiz.alves/Documentos/NPTest/mzxml \
-t 1,2 \
-v 10
Arquivo final
Ao final, juntando tudo, temos arquivo como o abaixo que pode ser colocando em um arquivo my_np3_awsome_run.sh e ser enviado ao slurm com o comando
sbatch my_np3_awsome_run.sh
Conteúdo final do my_np3_awsome_run.sh:
#!/bin/bash
#SBATCH --job-name=NP3_MS_WORKFLOW_your_intuitive_name
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=short-cpu
#SBATCH --mem-per-cpu=4G
# Execute a imagem Singularity com o comado NP3
singularity run /opt/images/NP3/ms_workflow/np3_ms_workflow.sif run \
-n NPTrial \
-o /home/marie.curie/tmps/ \
-m /home/marie.curie/Documentos/NPTest/marine_bacteria_lib_metadata.csv \
-d /home/luiz.alves/Documentos/NPTest/mzxml \
-t 1,2 \
-v 10