Guia Definitivo: Do Zero à Simulação com NAMD-Agent e Ligante Customizado
Este guia pormenoriza todo o processo bem-sucedido para configurar um ambiente, parametrizar um ligante novo (CNFD) e executar uma simulação de Dinâmica Molecular com a proteína cruzaína (3KKU) usando o pipeline NAMD-Agent em um sistema Ubuntu.
Fase 1: Construção de um Ambiente de Trabalho Robusto
A base de qualquer trabalho computacional reprodutível é um ambiente de software estável. Esta fase descreve o método final e bem-sucedido que estabelecemos usando Conda.
1.1. Instalação do Miniconda e Pré-requisitos
# Atualiza o sistema e instala o Git
sudo apt update && sudo apt install git -y
# Baixa o instalador do Miniconda
cd ~
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# Executa o instalador (aceite os padrões e diga 'yes' para `conda init`)
bash Miniconda3-latest-Linux-x86_64.sh
# FECHE E REABRA O TERMINAL para que o conda seja ativado.1.2. Criação do Ambiente Híbrido e Instalação de Dependências
# 1. Cria o ambiente 'namd' com Python 3.11 e instala a base científica via Conda.
conda create -n namd python=3.11 \
openmm pdbfixer mdtraj selenium pyyaml requests matplotlib numpy pandas notebook ipykernel \
-c conda-forge -y
# 2. Ativa o novo ambiente.
conda activate namd
# 3. Usa o pip para instalar os pacotes de IA e o 'splinter' dentro do ambiente ativo.
pip install splinter llama-index llama-index-llms-google-genai llama-index-embeddings-google-genai google-generativeai
1.3. Conexão do Ambiente Conda ao Jupyter
# Com o ambiente (namd) ativo:
python -m ipykernel install --user --name "namd" --display-name "Python (namd)"Fase 2: Parametrização Manual de Alta Fidelidade do Ligante (CNFD)
Esta fase detalha como obter parâmetros de alta qualidade para nosso ligante, substituindo as "adivinhações" das ferramentas automáticas por dados derivados de cálculos de primeiros princípios.
2.1. Cálculo de Cargas RESP via ORCA e MultiWFN
O objetivo aqui é obter cargas parciais realistas.
- Execução do ORCA: Um cálculo de ponto único foi realizado em uma geometria já otimizada (`ligante_opt_freq.xyz`), gerando o arquivo de função de onda `CNFD_esp.gbw`.
- Conversão para Análise: O arquivo `.gbw` foi convertido para `CNFD_esp.molden.input` com o comando:
orca_2mkl CNFD_esp -molden - Ajuste no MultiWFN: O arquivo `.molden.input` foi carregado no MultiWFN, onde foi realizado um ajuste RESP de dois estágios, gerando o arquivo final com as cargas: `CNFD_esp.chg`.
2.2. Montagem Híbrida do Arquivo de Parâmetros Final
Agora, combinamos o melhor dos dois mundos: nossas cargas de alta qualidade com os parâmetros de valência de uma ferramenta automática.
# 1. Extrair apenas as cargas do arquivo do MultiWFN.
tail -n +2 CNFD_esp.chg | awk '{print $4}' > CNFD_cargas_RESP.txt
# 2. Copiar o rascunho gerado pelo CHARMM-GUI para o diretório de trabalho.
cp path/to/charmm-gui-output/toppar.str CNFD_charmm-gui_rascunho.str
# 3. Realizar a substituição das cargas.
grep '^ATOM' CNFD_charmm-gui_rascunho.str > atom_lines_temp.txt
paste atom_lines_temp.txt CNFD_cargas_RESP.txt > atom_lines_com_RESP_temp.txt
awk '{print $1, $2, $3, $(NF)}' atom_lines_com_RESP_temp.txt > atom_lines_finais_temp.txt
cp CNFD_charmm-gui_rascunho.str CNFD_parametros_final.str
sed -i '/^ATOM/d' CNFD_parametros_final.str
sed -i '/READ RTF CARD APPEND/r atom_lines_finais_temp.txt' CNFD_parametros_final.str
rm *temp.txt # Limpeza
2.3. Auditoria Final dos Parâmetros
# Procura por linhas com penalidades críticas no arquivo final.
grep -n -E "penalty ([5-9][0-9]\.|[1-9][0-9]{2,})" CNFD_parametros_final.str
Resultado Obtido: O comando não retornou nenhuma saída, confirmando que todos os parâmetros no arquivo CNFD_parametros_final.str são de qualidade confiável.
Fase 3: Preparação dos Arquivos do Sistema para Automação
Com o ligante pronto, preparamos os arquivos de entrada finais para o pipeline.
3.1. Limpeza do PDB da Proteína
# Extrai apenas as linhas de ATOM do PDB original
grep '^ATOM' 3kku.pdb > 3kku_limpo_temp.pdb
# Renomeia para o nome final e consistente
mv 3kku_limpo_temp.pdb 3KKU_apenas.pdb
3.2. Geração do PDB do Ligante
obabel ligante_opt_freq.xyz -o pdb -O CNFD.pdbFase 4: Configuração e Execução do Pipeline NAMD-Agent
Com todos os insumos de alta qualidade prontos, lançamos a automação a partir do Jupyter Notebook.
4.1. Iniciar o Jupyter e Selecionar o Kernel
# Ative o ambiente, defina a chave e inicie o Jupyter
conda activate namd
export GOOGLE_API_KEY='SUA_CHAVE_AQUI'
jupyter notebook
No notebook (`namd_agent_master.ipynb`), o passo crucial foi selecionar o kernel correto: **Menu Kernel > Change Kernel > Python (namd)**.
4.2. Execução Supervisionada
No notebook, executamos células que:
- Corrigiram os caminhos de diretório e as importações do LlamaIndex.
- Criaram programaticamente o arquivo `job_custom_cnfd.yml` com as chaves corretas (`pdb`, `ligand`, `ligand_str`).
- Chamaram a função `charmm_gui_solution`, passando o caminho para o nosso arquivo `.yml` sem a extensão.
A execução bem-sucedida abriu um terminal e uma janela do Firefox, que realizaram a automação e baixaram o arquivo `charmm-gui- JOB_ID.tgz`.
Fase 5: A Simulação e o Pós-Processamento
O resultado da automação bem-sucedida é um pacote com os arquivos de simulação prontos.
5.1. Extração dos Arquivos
O arquivo `charmm-gui-JOB_ID.tgz` foi extraído para revelar os scripts de input do NAMD.
cd ~/Documentos/NAMD_AGENT/auto_cgui_master
tar -xvzf charmm-gui-5286218897.tgz5.2. Execução da Simulação e Análise (Próximo Passo)
A etapa seguinte seria usar uma célula final no notebook para chamar a função `run_solution_simulation()`, que irá encontrar os arquivos extraídos, executar a simulação NAMD, e gerar as análises de trajetória (RMSD, RMSF, etc.).
Comentários
Postar um comentário