Rosetta Commons and PyRosetta - lncc-sered/manual-sdumont2nd GitHub Wiki

Table of Contents

Rosetta Commons & PyRosetta

EM CONSTRUÇÃO

Página oficial do Rosetta

Documentação e tutoriais oficiais: Rosetta Tutorials, Demos, and Protocol Captures.

Principais publicações e Referências.

Recomenda-se começar as leituras Iniciando no Rosetta.

A diferença entre Rosetta e PyRosetta

Tanto Rosetta quanto PyRosetta são suítes de software abrangentes para projeto e modelagem de estruturas macromoleculares. Ambas utilizam uma biblioteca de ferramentas de modelagem macromolecular escritas em C++. Rosetta fornece uma interface para essas bibliotecas com executáveis ​​de linha de comando compilados, enquanto PyRosetta fornece acesso por meio de uma interface em linguagem de programação Python. Tanto Rosetta quanto PyRosetta são capazes de alcançar resultados semelhantes de projeto e modelagem. A escolha de qual usar depende da preferência pessoal. A interface padrão do Rosetta é ideal para quem busca incorporar a modelagem macromolecular em um fluxo de trabalho orientado à linha de comando, enquanto PyRosetta é a escolha ideal para quem prefere usar um fluxo de trabalho de script Python ou precisa da flexibilidade que uma interface de biblioteca mais direta pode oferecer.

Foram instaladas três versões diferentes do Rosetta no SDumont2nd:

📥 Tabela 1 - Versões do modulo rosetta_and_pyrosetta

Versão Descrição Data da liberação
2025.22_py3.12_openmpi Versão empacotada pelo Conda com base no commit exato do repositório Git release/2025.22. Utiliza como base o Python 3.12. 06/06/2025
2025.23_py3.12_openmpi Versão empacotada pelo Conda com base no commit exato do repositório Git release/2025.23. Utiliza como base o Python 3.12. 06/06/2025
371_release_py3.9_openmpi Número da release publicada no portal RosettaCommons, sem ligação direta (pelo nome) ao hash Git ou data. É um sistema de numeração próprio. Utiliza como base o Python 3.9. Disponivel no link -> Rosetta Academic Download 07/03/2024

Para sua comodidade, todas as versões do Rosetta instalados contém adicionalmente os seguintes programas listado abaixo:

 - Rosetta: Suite completa para modelagem de proteinas
 - PyRosetta (interface Python para Rosetta)
 - CS-Rosetta: Integracao de dados de RMN
 - TALOS-N: Predicao de estrutura secundaria
 - OpenMPI (4.1.6) para computacao paralela
 - **Bibliotecas Python Adicionais ja inclusas neste modulo:**
    * **Biopython**: Manipulacao de sequencias e estruturas biologicas
    * **Matplotlib**: Plotagem e visualizacao de dados
    * **SciPy**: Computacao cientifica e matematica avancada
    * **scikit-learn**: Ferramentas de aprendizado de maquina
    * **Pandas**: Analise e manipulacao de dados estruturados
    * **JupyterLab**: Ambiente interativo para desenvolvimento e execucao de notebooks Python
 - **OpenBabel (3.1.1)**: Conversao e manipulacao de formatos quimicos

🗂️ Local da Instalação e Carregando Module

Instalação do Rosetta and PyRosetta localizada em:

# Rosetta 2025.22
/scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/2025.22_mpich

# Rosetta 2025.23
/scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/2025.23_openmpi

# Rosetta Release 371
/scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/371_openmpi

🚀Carregamento via módulo de ambiente

" Utilize os comando abaixo para visualizar todos os módulos compatíveis com CPU:

module avail 

-------------------------------------- /scratch/app/modulefiles ---------------------------------------
   amd-compilers/5.0.0         hide-and-seek/0.1
   amd-libraries/5.0.0         intel_oneapi/2025.0
   amd-uprof/5.0               intel_oneapi/2025.1                           (D)
   anaconda3/2024.10           mpich/4.3.0
   arch_apu_amd/current        nvhpc/25.1
   arch_arm/current            orca/6.0_openmpi-4.1.6_avx2
   arch_cpu_amd/current        paraview/5.13.3
   arch_gpu/current      >>>>>>rosetta_and_pyrosetta/371_release_py3.9_openmpi <<<<<<<
   arch_gpu_sc/current   >>>>>>rosetta_and_pyrosetta/2025.22_py3.12_mpich      <<<<<<<
   cmake/4.0             >>>>>>rosetta_and_pyrosetta/2025.23_py3.12_openmpi    <<<<<<<      
   fftw/3.3_openmpi-4.1_gnu    siesta/5.2_openmpi-5.0
   tensorflow/2.19.0


-------------------------------------------------------------------------------------------

Após localiza-lo, carregue uma das versões, rosetta_and_pyrosetta/371_release_py3.9_mpich ou rosetta_and_pyrosetta/2025.22_py3.12_mpich com um dos comando abaixo:

No exemplo abaixo carregamos a versão 371_release:

module load rosetta_and_pyrosetta/371_release_py3.9_openmpi

🎓 Tutorial rápido para Execução teste Rosetta

Tutorial utilizado: "De novo structure prediction" Escrito por Sebastian Rämisch - [email protected]

Para melhor compreensão deste tutorial recomendamos também a leitura dos link -> Como interpretar nosso tutoriais & Iniciação ao Rosetta

A documentação completa de todos os tutoriais, Demonstrações e protocolos, bem como a aquisição dos arquivos utilizados neste tutorial estão disponíveis no link -> Rosetta Tutorials, Demos, and Protocol Captures

Para facilitar a execução do tutorial teste, crie um diretório. Em segunda clone a partir do repositório do RosettaCommons o diretório de demonstrações do Rosetta. Nele você encontrará a pasta "exemple". Este diretório contem os arquivos necessários para realização deste Tutorial Básico.

1. Preparação do Sistema

mkdir tutorial-rosetta
cd tutorial-rosetta
git clone https://github.com/RosettaCommons/demos.git
cd demos
Ou copie o diretório "demos" que estão disponível no caminho " /scratch/app/anaconda_module/envs/rosetta_371_mpich/rosetta.binary.linux.release-371/main/demos" para sua pasta de execução do teste com os comando abaixo:
mkdir tutorial-foldseek
cd tutorial-foldseek
cp -r /scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/371_openmpi/rosetta.binary.linux.release-371/main/demos .

# Navegue até o diretório de 
cd demos/tutorials/denovo_structure_prediction/input_files/
# Liste o conteúdo do diretório input_files
ls
2LZMA.fasta  2LZMA.pdb  aa2LZMA03_05.200_v1_3  aa2LZMA09_05.200_v1_3  options  options.short
O Conteúdo do diretório input_files
📥 Tabela 2 – Arquivos de Entrada
Arquivo Descrição
2LZMA.fasta Sequência da proteína em formato FASTA.
2LZMA.pdb Fragmentos de 3 resíduos.
aa2LZMA03_05.200_v1_3 Fragmentos de 3 resíduos. Usados para modelar conformações locais (e.g., ângulos diedros φ/ψ).
aa2LZMA09_05.200_v1_3 Fragmentos de 9 resíduos. Guiam a formação de estruturação secundária (e.g., α-hélices, folhas-β)
options Arquivo de configuração principal
options.short Versão simplificada para testes rápidos.

Conteúdo do arquivo "options" comentado:

: >>>OBS: caso você execute o tutorial dentro da pasta "input_files" apague o caminho completo abaixo e deixe somente os arquivos ao lado das funções native, fasta, frag3 e frag9.<<<

# Configurações principais
-in:file:native input_files/2LZMA.pdb    # Estrutura de referência para analise comparativa como por exemplo ROOT MEAN SQUARE DEVIATION - RMSD
-in:file:fasta input_files/2LZMA.fasta   # Sequência alvo
-in:file:frag3 input_files/aa2LZMA03_05.200_v1_3
-in:file:frag9 input_files/aa2LZMA09_05.200_v1_3

# Parâmetros do protocolo:
-abinitio:relax                          # Combina Abinitio + Relax
-abinitio:increase_cycles 10             # Aumenta ciclos de Monte Carlo
-abinitio:rg_reweight 0.5                # Peso do raio de giração (compactação)
-abinitio:rsd_wt_helix 0.5               # Peso para resíduos em hélices
-abinitio:rsd_wt_loop 0.5                # Peso para resíduos em loops

# Saída:
-out:pdb                                 # Gera arquivos PDB
-out:nstruct 1                           # Número de modelos a gerar
-out:file:scorefile score.sc             # Arquivo de scores
-overwrite                               # Sobrescreve arquivos existentes

2. Execução do protocolo Ab_initio_Relax

Ainda, localizado no diretório "demos/tutorials/denovo_structure_prediction/input_files/" execute um dos comandos abaixo. Escolha se quer realizar o teste utilizando somente uma Thread (Somente um núcleo de cpu) ou em Multi-Thread (EM paralelo ou Multiplas CPUS):

# Comando sendo executado em 1 Thread
AbinitioRelax.default.linuxclangrelease @options

# Comando sendo executado em 8 Treads
parallel -j 8 AbinitioRelax.static.linuxgccrelease @options

# Ou Alternativamente utilize o MPI
mpiexec -np 8 AbinitioRelax.static.linuxgccrelease @options
ou
mpirun -np 8 AbinitioRelax.static.linuxgccrelease @options
Por que usar "@"options no comando?

O símbolo @ antes do arquivo de opções indica que o Rosetta deve ler as opções do arquivo em vez de passá-las diretamente na linha de comando.

Ao rodar o comando você verá os cálculos serem iniciados observando o retorno em seu terminal semelhante ao exemplo abaixo:

[rafaelfs@sdumont2nd5 input_files]$ AbinitioRelax.static.linuxgccrelease @options
********  (C) Copyright Rosetta Commons Member Institutions.  ***************
* Use of Rosetta for commercial purposes may require purchase of a license. *
********  See LICENSE.md or email [email protected] for more details. **********
core.init: Checking for fconfig files in pwd and ./rosetta/flags 
core.init: Rosetta version: rosetta.binary.linux.release-371 r371 2024.09+release.06b3cf8 06b3cf8ad0940d628690d0ed6fa2009d72ad2b44 https://www.rosettacommons.org 2024-03-01T01:30:53.796737
core.init: command: AbinitioRelax.static.linuxgccrelease @options

O processo irá continuar até que o número de estruturas solicitado na função "nstruct" interna do arquivo "options" sejam geradas.

Ao termino do processo você verá a mensagem como no exemplo abaixo, indicando quais modulos do Rosetta foram utilizado e as referências para Citação:

The following Rosetta modules were used during this run of Rosetta, and should be cited:

AbinitioRelax Application's citation(s):
Simons KT, Bonneau R, Ruczinski I, and Baker D.  (1999).  Ab initio protein structure prediction of CASP III targets using ROSETTA.  Proteins Suppl 3:171-6.  doi: 10.1002/(sici)1097-0134(1999)37:3+<171::aid-prot21>3.3.co;2-q.

Bonneau R, Tsai J, Ruczinski I, Chivian D, Rohl C, Strauss CE, and Baker D.  (2001).  Rosetta in CASP4: progress in ab initio protein structure prediction.  Proteins Suppl 5:119-26.  doi: 10.1002/prot.1170.

Raman S, Vernon R, Thompson J, Tyka M, Sadreyev R, Pei J, Kim D, Kellogg E, DiMaio F, Lange O, Kinch L, Sheffler W, Kim BH, Das R, Grishin NV, and Baker D.  (2009).  Structure prediction for CASP8 with all-atom refinement using Rosetta.  Proteins 77 Suppl 9:89-99.  doi: 10.1002/prot.22540.
[rafaelfs@sdumont2nd5 input_files]$ 

3 Entendendo as Etapas internas do protocolo "extremamente resumidas":

📥 Tabela 3 – Resumo do protocolo "AbinitioRelax"
Etapa Objetivo Algoritmo/Metodologia
Geração de conformações iniciais (Fragment Insertion) Construir modelos iniciais com fragmentos. Inserção estocástica de fragmentos (3/9-mer)
Fase de "(High-temperature Monte Carlo" Explorar amplamente espaço conformacional Monte Carlo com alta temperatura (simulated annealing)
Fase de "Refinamento": Simulated Annealing para otimizar energia. Otimizar energia local e global Monte Carlo com temperatura decrescente, energia detalhada
Relaxamento rápido (FastRelax) Refinar modelo full-atom, minimizar energia Repacking + minimização com gradiente (FastRelax)

Após a execução do protocolo serão gerados os seguintes arquivos de saída:

📥 Tabela 4 – Arquivos de Saída
Arquivo Descrição
score.sc ou score.fsc Sequência da proteína em formato FASTA.
output_0001.pdb (ou output.pdb): Estrutura 3D prevista em formato PDB.
output.silent (se habilitado) Formato compacto para armazenar múltiplos modelos

4 Entendendo o arquivo score.sc

Esse arquivo contém uma tabela com as pontuações (scores) e métricas calculadas para cada modelo gerado pelo Rosetta. Cada linha (exceto o cabeçalho) corresponde a um modelo diferente (output_0001.pdb, output_0002.pdb, etc...).

Os Cabeçalho (nomes das colunas) abaixo são descritos na tabela-5:

#Cabeçalhos disponíveis no arquivo score.fsc
score fa_atr fa_rep fa_sol fa_intra_rep fa_intra_sol_xover4 lk_ball_wtd fa_elec pro_close hbond_sr_bb hbond_lr_bb hbond_bb_sc hbond_sc dslf_fa13 omega fa_dun p_aa_pp yhh_planarity ref rama_prepro Filter_Stage2_aBefore Filter_Stage2_bQuarter Filter_Stage2_cHalf Filter_Stage2_dEnd co rms maxsub clashes_total clashes_bb time description

#Formato real do arquivo com valores reais por coluna (resumido). 
SCORE: total_score dslf_fa13    fa_atr    ... 
 -215.678    0.000  -129.541    32.117    ... 
📥 Tabela 5 – Colunas do arquivo "score.fsc" (Extremamente resumido)
Descrição das Colunas de Saída do Rosetta (Score File)
Coluna Descrição
score Energia total do modelo (soma ponderada dos termos abaixo). Valores mais negativos são melhores.
fa_atr Termo de atração de van der Waals (forças de atração entre átomos).
fa_rep Termo de repulsão de van der Waals (penaliza átomos muito próximos).
fa_sol Energia de solvatação (custo de expor átomos hidrofóbicos ao solvente).
fa_intra_rep Repulsão intra-residual (dentro do mesmo resíduo).
fa_intra_sol_xover4 Termo de solvatação intra-residual com cruzamento (detalhes técnicos).
lk_ball_wtd Energia relacionada à interação hidrofóbica e hidrofílica (modelo Lazaridis-Karplus).
fa_elec Energia eletrostática (interações carregadas).
pro_close Penalidade por geometria incorreta em resíduos de prolina (fechamento do anel).
hbond_sr_bb Energia de pontes de hidrogênio de curto alcance entre backbones.
hbond_lr_bb Energia de pontes de hidrogênio de longo alcance entre backbones.
hbond_bb_sc Energia de pontes de hidrogênio entre backbone e sidechain.
hbond_sc Energia de pontes de hidrogênio entre sidechains.
dslf_fa13 Energia relacionada a ligações dissulfeto (pontes de enxofre).
omega Penalidade para ângulo omega (trans/cis) dos resíduos peptídicos.
fa_dun Energia baseada na distribuição Dunbrack para rotâmeros (conformações de sidechains).
p_aa_pp Probabilidade de aminoácidos em conformação específica (propensão de aminoácidos).
yhh_planarity Penalidade por não planaridade em anéis aromáticos de tirosina/histidina.
ref Termo de referência para aminoácidos (ajustes estatísticos).
rama_prepro Termo de Ramachandran para ângulos φ/ψ, penalizando conformações proibidas.
Filter_Stage2_* Termos específicos de filtros usados em estágios do protocolo (geralmente zero se não usados).
co Cobertura de contato (se calculada).
rms RMSD (Root Mean Square Deviation) em relação à estrutura nativa (se fornecida). Medido em angstroms (Å).
maxsub Métrica de similaridade estrutural (máximo subconjunto estrutural).
clashes_total Número total de colisões atômicas (átomos muito próximos).
clashes_bb Colisões específicas no backbone.
time Tempo gasto para gerar o modelo (segundos).
description Nome ou identificador do modelo.
cat score.fsc 
SCORE:     score     fa_atr     fa_rep     fa_sol    fa_intra_rep    fa_intra_sol_xover4    lk_ball_wtd    fa_elec    pro_close    hbond_sr_bb    hbond_lr_bb    hbond_bb_sc    hbond_sc    dslf_fa13      omega     fa_dun    p_aa_pp    yhh_planarity        ref    rama_prepro    Filter_Stage2_aBefore    Filter_Stage2_bQuarter    Filter_Stage2_cHalf    Filter_Stage2_dEnd    co        rms     maxsub    clashes_total    clashes_bb       time description
SCORE:  -239.833   -621.231     75.953    405.028           1.254                 18.300        -15.515   -173.118        0.882        -68.994          0.000        -11.371      -8.739        0.000     10.348    115.208    -13.975            0.013     41.326          4.798                    0.000                     0.000                  0.000                 0.000 14.469      6.367     85.000            0.000         0.000    151.000  S_00000001
SCORE:  -239.136   -623.135     82.781    393.315           1.299                 20.461        -22.633   -162.926        0.442        -60.915         -1.513         -8.714     -14.653        0.000      8.346    121.744    -15.597            0.009     41.326          1.229                    0.000                     0.000                  0.000                 0.000 18.621      6.973     93.000            0.000         0.000    157.000  S_00000002
SCORE:  -238.105   -603.718     74.920    398.117           1.288                 19.707        -20.974   -187.141        0.594        -65.135         -2.057        -17.553      -9.983        0.000      6.990    128.820     -9.271            0.061     41.326          5.905                    0.000                     0.000                  0.000                 0.000 11.812      4.723     97.000            0.000         0.000    156.000  S_00000003
Interpretando os principais valores acima:
  • score total = -239.833: Energia total do modelo, valor negativo indica estabilidade. Modelos com scores mais baixos são preferíveis.
  • fa_atr = -621.231: Forte contribuição atrativa (boa interação hidrofóbica).
  • fa_rep = 75.953: Penalidade por átomos muito próximos, idealmente deve ser baixa.
  • fa_sol = 405.028: Energia de solvatação, geralmente positiva (custo).
  • rms = 6.367 Å: Desvio RMSD medido em angstroms (Å) em relação à estrutura nativa — menor é melhor (tipicamente < 2 Å indica boa predição).
  • clashes_total = 0.000: Sem colisões atômicas detectadas, ótimo.
OBS:Rosetta utiliza majoritariamente uma unidade própria chamada Rosetta Energy Units (REU) para os valores de energia em suas funções de score, incluindo termos como atração, repulsão, solvatação, eletrostática, etc. Essas unidades são arbitrárias e calibradas para que valores mais baixos (mais negativos) correspondam a estruturas mais estáveis, mas não correspondem diretamente a unidades físicas padrão como kcal/mol. Para mais informações sobre unidades de medidas leia -> Units-in-Rosetta, Scoring, Rosetta_Energy_Function e também o artigo Tuning ProteinMPNN to reduce protein visibility via MHC Class I through direct preference optimization

Dica prática:

Ordene o arquivo pelo score total para identificar os melhores modelos:

grep -v SCORE score.fsc | sort -nk2

Para realizar analises mais profunda dos dados, gerar gráficos analiticos e verificação da confiabilidade dos leia o item 3 do Tutorial no link -> Denovo_structure_prediction. Nele você irá encontrar forma de criar graficos "RMSD x Score", Ramachandran entre outros.

➡️ Execução via script SLURM (srun ou .sbatch)

Para executar o Rosetta em ambientes gerenciados pelo SLURM (como o SDumont), você pode usar scripts sbatch ou comandos srun. Abaixo está um exemplo configurável para execução paralela:

Script Básico em apenas um node computacional (rosetta_abinitio.sbatch)

#!/bin/bash
#SBATCH --nodes=1                  # Número de nós
#SBATCH --ntasks-per-node=96       # CPUs por nó (ajuste para lncc-cpu_amd)
#SBATCH --time=24:00:00           # Tempo máximo (HH:MM:SS)
#SBATCH -p lncc-cpu_amd           # Partição (use a mesma do sinfo)
#SBATCH -J rosetta_denovo         # Nome do job
#SBATCH --output=rosetta_%j.log   # Arquivo de log

# Carrega os módulos necessários
module load rosetta_and_pyrosetta/VERSÃO DESEJADA 

# Diretório de trabalho
cd $SLURM_SUBMIT_DIR

# Variáveis de execução (Opicional)
ROSETTA_BIN="AbinitioRelax.static.linuxgccrelease"
OPTIONS_FILE="options"
OUTPUT="output.silent"

### Escolha uma dos comando abaixo. A depender da configuração de hardware que você dejesa utilizar. 

# 1 - Executa com MPI em um Nó (Caso utiliza as váriavies opcionais acima).
srun -n $SLURM_NTASKS mpirun $ROSETTA_BIN @$OPTIONS_FILE -out:file:silent $OUTPUT

# 2 - Ou execute diretamente para usar 96 Threads 
parallel -j 96 AbinitioRelax.static.linuxgccrelease @options

# 3 - Execução em 1 nó com 8 CPUs
mpiexec -np 8 AbinitioRelax.static.linuxgccrelease @options
# Ou
mpirun -np 8 AbinitioRelax.static.linuxgccrelease @options

## 4 - Também, para execução em múltiplos nós (ex: 2 nós com 96 CPUs cada, total 192 CPUs)
mpiexec -hostfile hosts.txt -np 96 AbinitioRelax.static.linuxgccrelease @option

## Alternativamente para (ex: 2 nós com 96 CPUs cada, total 192 CPUs)
mpirun -hostfile hosts.txt -np 192 AbinitioRelax.static.linuxgccrelease @options"
📥 Tabela 6 – Comparação entre os métodos de paralelização
Método Comando Vantagens Quando Usar
GNU Parallel parallel -j ... Simples, saídas separadas Jobs independentes em 1 nó.
MPI (mpirun) mpirun -np -hostfile ... Escalável para multi-nós Cálculos acoplados ou grandes.
SLURM Direct srun -N mpirun ... Integração nativa com filas SLURM Clusters gerenciados por SLURM.
MPIEXEC mpiexec -np Padronizado (funciona em qualquer implementação MPI) Mas requer um "hostfile" Quando precisão na alocação de processos é crítica.

Como mostrado no script acima para execussão em mutiplos node é necessário o uso de um arquivo contendo os nomes dos nodes que serão utilizados. Recomendamos a verificação de quais nodes estão com status ocioso (idle) para agilizar o processo de submissão.

# Para criar um arquivo hosts.txt contendo os nomes dos dois primeiros node de cpu (independentmente do estatos de uso)
sinfo -p lncc-cpu_amd -h -o "%n" | head -n 2 | awk '{print $1 " slots=96"}' > hosts.txt

# Para criar um arquivo hosts.txt contendo os nomes de dois primerios nodes de cpu com estatos ocioso (idle status)
sinfo -p lncc-cpu_amd -h -t idle -o "%n" | grep -v "sdumont2nd2019" | head -n 2 > hosts.txt
Exemplo de como deve ser um arquivo hosts.txt apos o pipeline do comando "sinfo" acima:
cat  hosts.txt 
sdumont2nd1000 slots=96
sdumont2nd1001 slots=96

Para verificar o nomes nome de todos os nodes do SDumont2nd disponível, utilize o comando "sinfo" abaixo. Ele retornara também os estatos de cada node, como no exemplo abaixo:

sinfo 
PARTITION          AVAIL  TIMELIMIT  NODES  STATE NODELIST
gh200                 up   infinite      1    mix sdumont2nd3001
gh200                 up   infinite      1   idle sdumont2nd3000
h100                  up   infinite      4    mix sdumont2nd[2000-2003]
lncc-cpu_amd          up   infinite     48   resv sdumont2nd[1000-1022,1025-1049]
lncc-cpu_amd_dev      up      20:00     50   resv sdumont2nd[1000-1049]
ict-cpu_amd           up   infinite     34   resv sdumont2nd[1025-1049,1051-1059]
cpu_amd_dev           up      20:00     10   resv sdumont2nd[1050-1059]
petrobr-cpu_amd       up   infinite      9   resv sdumont2nd[1051-1059]
lncc-h100             up   infinite      4    mix sdumont2nd[2000-2003]
lncc-h100             up   infinite      6  alloc sdumont2nd[2004-2007,2009-2010]
lncc-h100             up   infinite      8   idle sdumont2nd[2008,2011-2017]
lncc-h100_shared      up   infinite      2  fail* sdumont2nd[2019,2036]
lncc-h100_shared      up   infinite      3    mix sdumont2nd[2037-2039]
lncc-h100_shared      up   infinite     20   idle sdumont2nd[2020-2035,2040-2043]
lncc-h100_dev         up      20:00      2  fail* sdumont2nd[2019,2036]
lncc-h100_dev         up      20:00      3    mix sdumont2nd[2037-2039]
lncc-h100_dev         up      20:00     21   idle sdumont2nd[2018,2020-2035,2040-2043]
ict-h100              up   infinite      3  fail* sdumont2nd[2019,2036,2061]
ict-h100              up   infinite      3    mix sdumont2nd[2037-2039]
ict-h100              up   infinite     36   idle sdumont2nd[2020-2035,2040-2043,2045-2060]
petrobr-h100          up   infinite      1  fail* sdumont2nd2061
petrobr-h100          up   infinite     16   idle sdumont2nd[2045-2060]
h100_dev              up      20:00      1  fail* sdumont2nd2061
h100_dev              up      20:00     17   idle sdumont2nd[2044-2060]
lncc-gh200            up   infinite      1 drain* sdumont2nd3009
lncc-gh200            up   infinite      7  alloc sdumont2nd[3002-3008]
lncc-gh200_shared     up   infinite     15   idle sdumont2nd[3011-3025]
lncc-gh200_dev        up      20:00     16   idle sdumont2nd[3010-3025]
ict-gh200             up   infinite     24   idle sdumont2nd[3011-3025,3027-3035]
petrobr-gh200         up   infinite      9   idle sdumont2nd[3027-3035]
gh200_dev             up      20:00     10   idle sdumont2nd[3026-3035]
lncc-mi300a           up   infinite      2  alloc sdumont2nd[4000-4001]
lncc-mi300a           up   infinite      3   idle sdumont2nd[4002-4004]
lncc-mi300a_shared    up   infinite      7   idle sdumont2nd[4006-4012]
lncc-mi300a_dev       up      20:00      8   idle sdumont2nd[4005-4012]
ict-mi300a            up   infinite      2    mix sdumont2nd[4014-4015]
ict-mi300a            up   infinite      9   idle sdumont2nd[4006-4012,4016-4017]
petrobr-mi300a        up   infinite      2    mix sdumont2nd[4014-4015]
petrobr-mi300a        up   infinite      2   idle sdumont2nd[4016-4017]
mi300a_dev            up      20:00      2    mix sdumont2nd[4014-4015]
mi300a_dev            up      20:00      3   idle sdumont2nd[4013,4016-4017]
lncc-grace            up   infinite      4   idle sdumont2nd[8000-8003]
Interpretando o resultado do comando "sinfo"
Coluna Significado
PARTITION Nome da partição SLURM. Um agrupamento lógico de nós, geralmente por finalidade, usuário ou hardware.
AVAIL Indica se a partição está ativa (up) ou indisponível (down, drain, etc.).
TIMELIMIT Tempo máximo permitido para jobs nesta partição. Ex: 20:00 = 20 horas, infinite = sem limite.
NODES Número total de nós listados nesta linha, com o estado indicado na coluna STATE.
STATE Estado atual dos nós:
  • idle: nós livres para uso
  • mix: nós parcialmente utilizados
  • alloc: nós totalmente alocados
  • resv: nós reservados
  • drain ou drain*: nós em manutenção
  • fail ou fail*: nós com falhas
NODELIST Lista dos nós correspondentes. Pode ser um nó único (ex: sdumont2nd3001) ou um intervalo (ex: sdumont2nd[1000-1049]).


Com o comando sinfo você verá todos os nodes disponíveis no SDumont2nd. ```

📚 Documentação Adicional

Leia também as perguntas frequentes no link -> Frequently Asked Questions - FAQ

Ou acesse a sessão de ajuda rápida dentro de cada modulo do Rosetta com o comando abaixo:

module help rosetta_and_pyrosetta/371_release_py3.9_mpich 

------------------------------------ Module Specific Help for "rosetta_and_pyrosetta/371_release_py3.9_mpich" ------------------------------------

###############################################
Ambiente Rosetta 371 Release e PyRosetta 2025.23 com MPICH
###############################################

Este modulo configura o ambiente para uso de:
 - Rosetta (versao 371 release, compilado com GCC 12 e OpenMPI 4.1.6)
    * Rosetta: Suite completa para modelagem de proteinas
 - PyRosetta (interface Python para Rosetta)
 - CS-Rosetta: Integracao de dados de RMN
 - TALOS-N: Predicao de estrutura secundaria
 - OpenMPI (4.1.6) para computacao paralela
 - **Bibliotecas Python Adicionais ja inclusas neste modulo:**
    * **Biopython**: Manipulacao de sequencias e estruturas biologicas
    * **Matplotlib**: Plotagem e visualizacao de dados
    * **SciPy**: Computacao cientifica e matematica avancada
    * **scikit-learn**: Ferramentas de aprendizado de maquina
    * **Pandas**: Analise e manipulacao de dados estruturados
    * **JupyterLab**: Ambiente interativo para desenvolvimento e execucao de notebooks Python
 - **OpenBabel (3.1.1)**: Conversao e manipulacao de formatos quimicos


=== EXEMPLOS DE USO (PARALELIZACAO) ===


1. EXECUCAO SERIAL (1 thread):
    AbinitioRelax.default.linuxclangrelease @options

2. PARALELIZACAO EM 1 NO:
    # Metodo 1: GNU Parallel (jobs independentes)
    parallel -j 8 AbinitioRelax.static.linuxgccrelease @options -out:file:silent output_{}.silent ::: {1.
.8}
    # Metodo 2: MPI (1 no com 8 processos)
    mpiexec -np 8 AbinitioRelax.mpi.linuxgccrelease @options
    # ou
    mpirun -np 8 AbinitioRelax.mpi.linuxgccrelease @options

3. EXECUCAO EM MULTIPLOS NOS (SLURM):
    # Metodo 1: Usando apenas nos IDLE (recomendado)
    sinfo -p lncc-cpu_amd -h -t idle -o "%n" | head -n 2 | awk '{print $1 " slots=96"}' > hosts.txt
    mpirun -hostfile hosts.txt -np 192 AbinitioRelax.mpi.linuxgccrelease @options

    # Metodo 2: SLURM com alocacao automatica
    srun -p lncc-cpu_amd -N 2 --ntasks-per-node=96 \
      mpirun AbinitioRelax.mpi.linuxgccrelease @options

    # Metodo 3: Hostfile dinamico com SLURM
    srun -p lncc-cpu_amd -N 2 bash -c 'hostname | sort | uniq -c | awk "{print \$2 \" slots=\"\$1}"' > ho
sts.txt
    mpirun -hostfile hosts.txt -np 192 AbinitioRelax.mpi.linuxgccrelease @options

4. EXECUCAO AVANCADA:
    # Filtrando nos especificos (ex: evitar nos problematicos)
    sinfo -p lncc-cpu_amd -h -t idle -o "%n" | grep -v "sdumont2nd2019" | head -n 4 > hosts.txt


=== CONFIGURACOES RECOMENDADAS ===

 - Para jobs paralelos, inclua em 'options':
    -nstruct 1000       # Numero total de estruturas
    -jd2:ntrials 1      # Tentativas por trabalho
    -out:file:silent output.silent
    -out:file:scorefile scores.sc
 - Para MPI:
    -mpi_trajectory 1 # Habilita saida por processo MPI


=== COMPARACAO DE METODOS ==

 | Metodo          | Comando                            | Quando Usar                      |
 |-----------------|------------------------------------|----------------------------------|
 | GNU Parallel    | parallel -j 8 ...                  | Jobs independentes em 1 no       |
 | MPI (mpiexec)   | mpiexec -np 192 -hostfile...       | Controle preciso de recursos     |
 | SLURM (srun)    | srun -N 2 mpirun...                | Clusters gerenciados             |
 


=== DIRETORIOS IMPORTANTES ===

 - Binarios do Rosetta: /scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/371_openmpi/rosetta.sourc
e.linux.release-3.14/main/source/bin/
 - Binarios do ambiente Conda (inclui Python, OpenMPI, OpenBabel, etc.): /scratch/app/anaconda_module/env
s/rosetta_and_pyrosetta/371_openmpi/bin/
 - Bibliotecas Python (PyRosetta, Biopython, Matplotlib, SciPy, Pandas, scikit-learn): /scratch/app/anaco
nda_module/envs/rosetta_and_pyrosetta/371_openmpi/lib/python3.9/site-packages/
 - CS-Rosetta: /scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/371_openmpi/rosetta.source.linux.r
elease-3.14/main/csRosetta
 - TALOS-N: /scratch/app/anaconda_module/envs/rosetta_and_pyrosetta/371_openmpi/rosetta.source.linux.rele
ase-3.14/main/talosn
 

Dica: Verifique nodes disponiveis com: sinfo -p lncc-cpu_amd -h -t idle -o "%n %C"


USO NAO OFICIAL DO ROSETTA E PYROSETTA EM GPU
No Linux, o Open MPI é desenvolvido com reconhecimento da nvidia para execucao juntamente com a linguagem CUDA,
mas esta desabilitado por padrão. Pois o Rosetta não é nativamente compilado para utilizar CUDA e GPUs nvidia.
Porem, em alguns casos é possível utilizar aceleração por GPU em scripts do Rosetta e Pyrosetta.
Busce na comunidade cientifica sobre uso de GPU e verifique se e realmente justificavel seu uso,
já que nao existe ainda uma compilação especifica para o uso em GPUs.
Para habilita-lo, defina a variável de ambiente: 
  "OMPI_MCA_opal_cuda_support=true"
antes de iniciar seus processos MPI. Da mesma forma, você pode definir o parâmetro MCA na linha de comando:
  "mpiexec --mca opal_cuda_support 1 ... "
Observe que você também pode precisar definir UCX_MEMTYPE_CACHE=n para reconhecimento de CUDA via UCX.
Consulte a documentação do UCX para obter mais detalhes.


Documentacao adicional disponivel nos diretorios das ferramentas.
Ou o link de perguntas frequentes -> https://docs.rosettacommons.org/docs/latest/getting_started/FAQ#frequently-asked-questions
⚠️ **GitHub.com Fallback** ⚠️