top of page

1.

Docking de múltiplos ligantes

1.1. Seleção de ligantes

  • Esse tutorial é baseado no protocolo do Dr. Arman Firoz (Firoz; Talwar, 2024)

  • Eu recomendo usar o PubChem para o download de ligantes

    • No IGNIS, como o objetivo do docking era o reposicionamento de fármacos, os ligantes foram retirados de bancos de dados de compostos da FDA e EMA:

      • Entrar no PubChem​

      • Acessar "Classification Browser"

      • Selecionar "Drug and Medication Information"

      • Selecionar "FDA Approved Drugs"

        • Fazer o download dos compostos com estrutura 3D em arquivos .sdf em "Summary", no canto superior direito

      • Repetir processo com "EMA Drug Information"

  • Nessa etapa, qualquer lista de ligantes em arquivos .sdf de estrutura 3D é válida

    • Se for do seu interesse, você pode até fazer o download de uma série de compostos semelhantes entre si​​

  • OBS: Nenhum desses softwares e bancos de dados é de minha autoria. Cite cada ferramenta de acordo com a política de citações delas​​​​​​​​​​

1.2. Preparação dos ligantes

  • No IGNIS, essa etapa foi feita no Ubuntu:

    • Em um diretório com os ligantes, digite os seguintes comandos:​

      • obabel -isdf [nome do arquivo do PubChem].sdf -osdf -o *.sdf ---split​

      • obminimize

      • obminimize -ff MMFF94 -n 1000 *.sdf

      • obabel -isdf *.sdf -opdbqt -o *.pdbqt

    • Agora, o seu arquivo .sdf foi dividido vários arquivos .sdf,os quais tiveram a energia minimizada e foram transformados em arquivos .pdbqt.​

    • Apague os arquivos .sdf

    • Digite o comando:

      • ls > ligand.txt​

    • Abrir esse arquivo em um editor de texto e apagar qualquer linha que seja o nome de arquivo que não é ligante (inclusive ligand.txt)​

    • OBS: Nenhum desses softwares e bancos de dados é de minha autoria. Cite cada ferramenta de acordo com a política de citações delas

1.3. Preparação da proteína

  • Obter estrutura 3D da proteína

    • Para uma estrutura experimental (cristal), use o Protein Data Bank​

    • Para uma estrutura de uma previsão, use o AlphaFold Protein Structure Database

    • Em ambos os casos, faça o download em .pdb

  • No AutoDock 4:​​​

    • Remova as moléculas de água​

    • Selecione átomos "hetatm"

      • Os remova​

    • Adicione hidrogênios polares​

    • Repare os átomos que estão faltando

    • Adicione cargas Kollman

    • Selecione AD4 como tipo de átomo

    • Salvar a proteína como .pdbqt

    • OBS: Nenhum desses softwares e bancos de dados é de minha autoria. Cite cada ferramenta de acordo com a política de citações delas

1.4. Arquivo config.txt

  • Crie um documento de texto (.txt)

    • Na primeira linha, digite:​

      • receptor=[nome do arquivo da proteína].pdbqt​

    • Na quarta, quinta e sexta linhas, digite (respectivamente)​

      • center_x = xx.xxx​

      • center_y = yy.yyy

      • center_z = zz.zzz

        • Essa parte se refere ao sítio de ligação do docking​

    • Na oitava, nona e décima linhas, digite (respectivamente)​​​​

      • size_x = xx.x​

      • size_y = yy.y

      • size_z = zz.z

    • Pule uma linha e digite:​​​

      • num_modes=12 (ou outro número de posições que serão testadas)​

      • energy_range=4

      • exhaustiveness=16 (para exploratório, ou 32 para refinado)

1.5. Docking e análise

  • OBS: Nenhum desses softwares e bancos de dados é de minha autoria. Cite cada ferramenta de acordo com a política de citações delas

  • Além dos arquivos que você já tem, você precisará do vina.exe, disponível ao fazer download do AutoDock Vina

  • Você também precisa de um arquivo .pl de acordo com o seu sistema operacional

    • Busque um tutorial no Youtube do seu sistema operacional e só faça o download desse arquivo​

    • O do Windows está digitado na próxima seção

  • Para rodar o docking, digite no terminal:​

    • perl [nome do seu arquivo].pl​

  • Para analisar o docking:​

    • Digite o comando:​

      • tail -n(número de conformações + 2) *.log > Results.txt​

        • Isso junta todos os seus resultados em um arquivo​

    • Abra o Reuslts.txt no Excel para analisar os dados​​

    • CUIDADO: o docking tende a valorizar moléculas grandes e não é consistente/preciso o suficiente nos resultados

      • Por isso, sugiro usar um controle da bibliografia para comparações​

      • Também recomendo o cálculo da eficiência do ligante (= delta G/quantidade de átomos diferentes de hidrogênio)

      • Por fim, considere fazer uma média entre as energias de ligação de cada composto

Vina_Windows.pl

​#!/usr/bin/perl
print"Ligand_file:\t";
$ligfile=<STDIN>;
chomp $ligfile;
open (FH,$ligfile)||die "Cannot open file\n";
@arr_file=<FH>;

for($i=0;$i<@arr_file;$i++)
{
print"@arr_file[$i]\n";
@name=split(/\./,@arr_file[$i]);
}
for($i=0;$i<@arr_file;$i++)
{
chomp @arr_file[$i];
print"@arr_file[$i]\n";
system("vina.exe --config conf_vs.txt --ligand @arr_file[$i] --log
@arr_file[$i]_log.log");
}

Script automatizado para Linux e Ubuntu
Salve o código a seguir como um arquivo com a extensão .sh e o execute com o comando ./nomedoarquivo.sh em um diretório com o AutoDock Vina e o obabel instalados.
OBS: proteína deve estar preparada para o docking.


echo -e "\nEsse é um script para automatizar o processo de docking de múltiplos ligantes, usando o AutoDock Vina e o protocolo do Dr. Arman Firoz.\n\nPara o script funcionar, é necessário ter alguns arquivos no seu diretório:\n1. Os ligantes em .sdf, seja um arquivo do PubChem contendo todos os ligantes ou arquivos .sdf separados.\n2. Um arquivo da proteína em .pdbqt\n3. Um arquivo perl para o docking no AutoDock Vina no Linux\n4. O arquivo vina.exe\n"

read -p "Digite o nome do arquivo da proteína (adicione a extensão .pdb ou .pdbqt na resposta): " protein
read -p "Digite o nome do arquivo do script perl para docking (adicione a extensão .pl na resposta): " vinaperl

echo -e "\nVamos começar o processo do docking!\n"

mkdir -m 755 proteinfiles
mv $protein proteinfiles

read -p "Os ligantes já estão preparados para docking (y/n)? " ae1


if [[ ${ae1,,} = "y" ]]; then
   echo -e "\nEntendido!\n"
   read -p "Os nomes dos ligantes já estão listados em um arquivo .txt (y/n)? " ae11

elif [[ ${ae1,,} = "n" ]]; then
   echo -e "\nEtapa 1: Preparação dos ligantes\n"
   read -p "Os ligantes estão em um único arquivo .sdf do PubChem (y/n)? " ual

   if [[ ${ual,,} = "y" ]]; then
       read -p "Digite o nome do arquivo (adicione a extensão .sdf na resposta): " nomelseparar
       obabel -isdf $nomelseparar -osdf -O *.sdf --split
       rm $nomelseparar
       echo -e "\nO arquivo foi separado para cada ligante ter seu próprio arquivo com sucesso e foi removido em seguida.\n"
   elif [[ ${ual,,} = "n" ]]; then
       echo -e "\nEntendido, continuando a preparação dos ligantes\n"
   else
       echo -e "\nResposta inválida"
       exit
   fi

   obminimize -ff MMFF94 -n 1000 *.sdf
   echo -e "\nConvertendo os ligantes para o formato .pdbqt...\n"
   obabel -isdf *.sdf -opdbqt -O *.pdbqt
   echo -e "\nApagando os arquivos .sdf...\n"
   rm *.sdf
   echo -e "\nArquivos .sdf removidos com sucesso.\n"
   ae11="n"
else
   echo -e "\nResposta inválida"
   exit
fi

if [[ ${ae11,,} = "y" ]]; then
   echo -e "\nProsseguindo para a próxima etapa!\n"
elif [[ ${ae11,,} = "n" ]]; then
   mkdir -m 755 compounds
   mv *.pdbqt compounds
   echo -e "Criando um arquivo .txt com os nomes de todos os ligantes...\n"
   cd compounds
   ls >ligand.txt
   sed -i 's/ligand.txt//' ligand.txt

   cd ..
   mv compounds/* .
   rmdir compounds

        echo -e "\nArquivo com apenas os nomes dos ligantes foi criado com sucesso.\n\nProsseguindo para a próxima etapa!\n"

else
   echo -e "\nResposta inválida\n"
   exit
fi

mv proteinfiles/* .
rmdir proteinfiles

read -p "Você já possui o arquivo com as configurações para docking em .txt (y/n)? " ae3

if [[ ${ae3,,} = "y" ]]; then
        read -p "Digite o nome do seu arquivo com as configurações (com a extensão .txt): " confignome
   if [[ $confignome != "conf.txt" ]]; then
       mv $confignome conf.txt
   fi
   read -p "Você programou o arquivo com as configurações para ter um docking com quantas conformações? " conformacoes
   echo -e "\nProsseguindo para a próxima etapa!\n"

elif [[ ${ae3,,} = "n" ]]; then
        echo -e "\nEtapa 2: Arquivo conf.txt\n\nEm caso de decimais, por favor use ponto em vez de vírgula. Não responda com a unidade de medida, digite apenas o número para cada resposta.\n"
   read -p "Digite as coordenadas do centro x da grid: " centrox
   read -p "Digite as coordenadas do centro y da grid: " centroy
   read -p "Digite as coordenadas do centro z da grid: " centroz
   read -p "Digite o tamanho da dimensão x da grid em ångström: " sizex
   read -p "Digite o tamanho da dimensão y da grid em ångström: " sizey
   read -p "Digite o tamanho da dimensão z da grid em ångström: " sizez
   read -p "Digite o número de conformações desejado por ligante: " conformacoes
   read -p "Digite o intervalo de energia desejado: " range
   read -p "Digite a exaustividade desejada: " exaust

   touch conf.txt
   echo -e "receptor=$protein\n\ncenter_x = $centrox\ncenter_y = $centroy\ncenter_z = $centroz\n\nsize_x = $sizex\nsize_y = $sizey\nsize_z = $sizez\n\nnum_modes=$conformacoes\nenergy_range=$range\nexhaustiveness=$exaust" > conf.txt
   echo -e "\nArquivo com as configurações criado com sucesso!\n"
else
        echo -e "\nResposta inválida"
        exit
fi

read -p "O docking pode demorar consideravelmente (alguns dias) dependendo da quantidade de compostos, conformações e exaustividade. Tendo isso em vista, o docking pode começar (y/n)? " ae4

if [[ ${ae4,,} = "y" ]]; then
        echo -e "\nEntendido! Quando o programa pedir o nome do arquivo dos ligantes, digite ligand.txt (ou o nome desse arquivo caso você o tiver preparado antes com outro nome). Começando o docking!\n"
   perl $vinaperl/
   echo -e "\nDocking completo! Salvando os dados em um único arquivo de texto...\n"
   linenumber=$(($conformacoes + 2))
   tail -n$linenumber *.log > Resultados.txt
   echo -e "\nOs resultados do seu docking foram compilados no arquivo Resultados.txt, que você pode abrir no Excel, Google Sheets ou outro software para a análise dos dados.\n\nParabéns, você terminou todos os procedimentos da produção de dados do docking! Boa análise de dados!\n"
   exit
elif [[ ${ae4,,} = "n" ]]; then
        echo -e "\nQuando estiver pronto, use o script novamente pulando as etapas anteriores para começar o docking!\n"
   exit
else
        echo -e "\nResposta inválida"
        exit
fi

Tutoriais dos protocolos usados no Projeto IGNIS (Integration of gut-neuro illness solutions), de Gabriela Goes da Cunha

Em caso de dúvida, entre em contato pelo e-mail ggoesdacunha@gmail.com

bottom of page