foldseek - lncc-sered/manual-sdumont2nd GitHub Wiki
EM CONSTRUÇÃO
Página oficial do FoldSeek Documentação da versão 10-941cd33 e tutoriais disponíveis em: Tutoriais Oficiais FoldSeek v10
Tutorial utilizado: "Foldseek Exmples"
Testes utilizando os exemplos de nossa autoria: Realizamos uma comparação estrutural entre duas diferentes conformações tridimensionais da enzima triose-fosfato isomerase (TIM). Disponível para download no banco de dados Protein Data Bank - PDB sob os códigos PDB 1tim e 8tim: Referências: https://doi.org/10.2210/pdb1TIM/pdb e https://doi.org/10.2210/pdb8TIM/pdb
(recomenda-se executar primeiro o exemplo comparativo entre as proteínas 1tim e 8tim para validação)
Clone a partir do repositório do steineggerlab o programa foldseek. Nele você encontrará a pasta "exemple". Este diretório contem os arquivos necessários para realização deste Tutorial Básico.
mkdir tutorial-foldseek
cd tutorial-foldseek
git clone https://github.com/steineggerlab/foldseek.git
cd example
mkdir tutorial-foldseek
cd tutorial-foldseek
cp /scratch/app/gpu/foldseek/10-941cd33/example/1tim.pdb.gz .
cp /scratch/app/gpu/foldseek/10-941cd33/example/8tim.pdb.gz .
O exemplos abaixo utilizou 1 nó e apenas GPU. Os mesmos Procedimentos são aplicáveis a versão ARM do FoldSeek.
Instalação do FoldSeek V10 CPU+H100 localizada em: "/scratch/app/gpu/foldseek/10-941cd33/bin" Instalação do FoldSeek V10 ARM+HG200 localizada em :/scratch/app/arm/foldseek/10_arm64/bin"
Carregamento via módulo de ambiente: " Utilize os comando abaixo para carregar e visualizar todos os módulos compatíveis com GPUs:
module load arch_gpu/current
module avail
--------------------------------- /scratch/app/modulefiles_extra/gpu ----------------------------------
amber/amber24+ambertools25_singularity gromacs/2024.5_openmpi-4.1_gnu (D)
amber/amber24+ambertools25 (D) lammps/3Nov2022_nv_container
cp2k/9.1_nv_container lammps/15Jun2023_nv_container
cp2k/2023.1_nv_container lammps/2024.8_openmpi-5.0_gnu (D)
cp2k/2023.2_nv_container namd/2.13-multinode_nv_container
cp2k/2025.1_openmpi-5.0.6 (D) namd/2.13-singlenode_nv_container
cuda/11.8 namd/3.0_nv_container
cuda/12.2 namd/3.0.1_multicore_cuda (D)
cuda/12.9 (D) quantum-espresso/7.3_nv_container
fftw/3.3_nvhpc quantum-espresso/7.4 (D)
>>>foldseek/10_avx2-gpu<<< (L) tensorflow/23.12-tf2-py3_nv_container
-------------------------------------------------------------------------------------------
Após localiza-lo, carregue o module o foldseek/10_avx2-gpu com o comando abaixo:
module load foldseek/10_avx2-gpu
module load arch_arm module load foldseek/10_arm
O repositório oficial do Foldseek fornece exemplos que podemos utilizar. Para sua comodidade já realizamos este download. Então basta utilizar os comando abaixo para criar a pasta "tutorial-foldseek" e copiar os arquivos ".pdb" para o diretório criado. Vamos copiar os dois arquivos PDB compactados: 1tim.pdb.gz e 8tim.pdb.gz.
mkdir tutorial-foldseek
cd tutorial-foldseek
cp /scratch/app/gpu/foldseek/10-941cd33/example/1tim.pdb.gz .
cp /scratch/app/gpu/foldseek/10-941cd33/example/8tim.pdb.gz .
O Foldseek requer que os arquivos de estrutura sejam convertidos em um formato de banco de dados interno.
# Criar banco de dados para o arquivo 1tim.pdb.gz
foldseek createdb 1tim.pdb.gz 1tim_db
# Criar banco de dados para o arquivo 8tim.pdb.gz
foldseek createdb 8tim.pdb.gz 8tim_db
Após a conversão o terminal irá reporta os seguinte resultados. Para sua comodidade escrevemos comentários ao lado de cada linha do resultado para facilitar a compreensão:
[rafaelfs@sdumont2nd5 tutorial-foldseek]$ foldseek createdb 1tim.pdb.gz 1tim_db --gpu 1 # Comando para criar banco de dados a partir do arquivo PDB createdb 1tim.pdb.gz 1tim_db # Confirmação do comando executado MMseqs Version: 941cd33ff0771cd2e3f144e3293e22a2b87e9fda # Versão do software Foldseek/MMseqs2 Use GPU 1 # Indica que foi utilizada 1 GPU para esta operação Path to ProstT5 # Caminho para modelo ProstT5 (vazio = não usado) Chain name mode 0 # Modo de nomeação de cadeias (0 = padrão) Createdb extraction mode 0 # Modo de extração de dados (0 = padrão) Interface distance threshold 8 # Limiar de distância para interfaces (8Å) Write mapping file 0 # Não gerou arquivo de mapeamento adicional Mask b-factor threshold 0 # Limiar para filtro por fator B (0 = desativado) Coord store mode 2 # Modo de armazenamento de coordenadas (2 = compacto) Write lookup file 1 # Gerou arquivo de lookup (mapeamento de IDs) Input format 0 # Formato de entrada (0 = PDB) File Inclusion Regex .* # Regex para inclusão de arquivos (todos) File Exclusion Regex ^$ # Regex para exclusão de arquivos (nenhum) Threads 96 # Número de threads utilizadas Verbosity 3 # Nível de detalhe do output (3 = detalhado) Output file: 1tim_db # Nome do arquivo de saída principal [=================================================================] 100.00% 1 eta - # Barra de progresso (completa) Time for merging to 1tim_db_ss: 0h 0m 0s 4ms # Tempo para gerar estrutura secundária Time for merging to 1tim_db_h: 0h 0m 0s 4ms # Tempo para gerar dados de hélices Time for merging to 1tim_db_ca: 0h 0m 0s 4ms # Tempo para gerar coordenadas CA Time for merging to 1tim_db: 0h 0m 0s 4ms # Tempo para gerar banco principal Ignore 0 out of 2. # Número de cadeias ignoradas (0 de 2) Too short: 0, incorrect: 0, not proteins: 0. # Razões para ignorar cadeias Time for processing: 0h 0m 0s 60ms # Tempo total de processamento [rafaelfs@sdumont2nd5 tutorial-foldseek]$ foldseek createdb 8tim.pdb.gz 8tim_db # Comando para segunda proteína sem utilizar GPU (para fins de teste e comparação) createdb 8tim.pdb.gz 8tim_db # Confirmação do comando MMseqs Version: 941cd33ff0771cd2e3f144e3293e22a2b87e9fda # Mesma versão Use GPU 0 # GPU não utilizada Path to ProstT5 # ProstT5 não utilizado Chain name mode 0 # Mesmo modo de nomeação Createdb extraction mode 0 # Mesmo modo de extração Interface distance threshold 8 # Mesmo limiar Write mapping file 0 # Sem arquivo de mapeamento Mask b-factor threshold 0 # Fator B desativado Coord store mode 2 # Mesmo modo de armazenamento Write lookup file 1 # Gerando lookup file Input format 0 # Mesmo formato de entrada File Inclusion Regex .* # Mesma regex inclusão File Exclusion Regex ^$ # Mesma regex exclusão Threads 96 # Mesmo número de threads Verbosity 3 # Mesmo nível de verbosidade Output file: 8tim_db # Nome do segundo banco de dados [=================================================================] 100.00% 1 eta - # Barra de progresso Time for merging to 8tim_db_ss: 0h 0m 0s 4ms # Tempo estrutura secundária Time for merging to 8tim_db_h: 0h 0m 0s 4ms # Tempo dados de hélices Time for merging to 8tim_db_ca: 0h 0m 0s 4ms # Tempo coordenadas CA Time for merging to 8tim_db: 0h 0m 0s 3ms # Tempo banco principal Ignore 4 out of 6. # 4 cadeias ignoradas de 6 Too short: 4, incorrect: 0, not proteins: 0. # Razões (4 cadeias muito curtas) Time for processing: 0h 0m 0s 61ms # Tempo total
Agora, vamos comparar a estrutura de 1tim.pdb.gz contra 8tim.pdb.gz utilizando a função "easy-search". Crie um diretório temporário para armazenas dos dados durante a execução do comando "foldseek": Em seguida execute o comando com a função easy-search, indicando a pasta de arquivos temporários criada "tmp" e utilize a flag --gpu 1 para realizar os cálculos na GPU disponível:
mkdir tmp foldseek easy-search 1tim.pdb.gz 8tim.pdb.gz result.tsv tmp --gpu 1
Será gerado o arquivo "result.tsv": Contendo os resultados da busca.
O Foldseek, por padrão, gera uma saída tabular com os seguintes campos:
query target fident alnlen mismatches gapopens qstart qend tstart tend evalue bits
Em nosso exemplo ao visualizar os resultados no arquivo "result.tsv" com o comando cat, o retorno foi:
1tim_B 8tim_B 0.967 247 8 0 1 247 1 247 1.050E-43 1554 1tim_B 8tim_A 0.967 247 8 0 1 247 1 247 2.723E-42 1488 1tim_A 8tim_A 0.967 247 8 0 1 247 1 247 5.412E-43 1530 1tim_A 8tim_B 0.967 247 8 0 1 247 1 247 1.188E-42 1515
Colunas principais: fident (0.967): 96.7% de identidade estrutural - muito alta, indicando estruturas muito similares
alnlen (247): 247 resíduos alinhados (tamanho total da proteína)
evalue (1.050E-43): Valor E extremamente baixo, indica que a similaridade não é por acaso
bits (1554): Score alto, confirma a alta similaridade
O arquivo mostra 4 alinhamentos significativos entre as cadeias:
Coluna | Exemplo | Significado |
---|---|---|
query
|
1tim_B
|
Nome do modelo/entrada da estrutura de origem (arquivo 1tim.pdb , cadeia B)
|
target
|
8tim_B
|
Nome da estrutura de destino (arquivo 8tim.pdb , cadeia B)
|
fident
|
0.967
|
Fração de identidade (96.7% dos resíduos são idênticos no alinhamento) |
alnlen
|
247
|
Comprimento do alinhamento (número total de resíduos alinhados) |
mismatches
|
8
|
Número de resíduos diferentes (substituições) |
gapopens
|
0
|
Número de aberturas de gap (inserções/deleções) no alinhamento |
qstart
|
1
|
Início do alinhamento na sequência da query |
qend
|
247
|
Fim do alinhamento na query |
tstart
|
1
|
Início do alinhamento na target |
tend
|
247
|
Fim do alinhamento na target |
evalue
|
1.050E-43
|
Valor-E: probabilidade de obter esse resultado por acaso (quanto menor, melhor) |
bits
|
1554
|
Score em bits (quanto maior, mais significativa a similaridade) |
Arquivo | Descrição |
---|---|
1tim.pdb.gz
|
Arquivo PDB compactado contendo a estrutura da triose-fosfato isomerase (forma 1) |
8tim.pdb.gz
|
Arquivo PDB compactado contendo a estrutura da triose-fosfato isomerase (forma 8) |
Para 1tim_db
Arquivo | Descrição |
---|---|
1tim_db
|
Banco de dados principal contendo informações da proteína |
1tim_db.dbtype
|
Define o tipo de banco de dados |
1tim_db.index
|
Índice para acesso rápido ao banco de dados |
1tim_db.lookup
|
Mapeamento de identificadores |
1tim_db.source
|
Informações sobre a origem dos dados |
1tim_db_ca
|
Coordenadas dos átomos de carbono alfa |
1tim_db_ca.dbtype
|
Tipo do banco de coordenadas CA |
1tim_db_ca.index
|
Índice para coordenadas CA |
1tim_db_h
|
Informações sobre hélices |
1tim_db_h.dbtype
|
Tipo do banco de hélices |
1tim_db_h.index
|
Índice para informações de hélices |
1tim_db_ss
|
Estrutura secundária |
1tim_db_ss.dbtype
|
Tipo do banco de estrutura secundária |
1tim_db_ss.index
|
Índice para estrutura secundária |
Para 8tim_db
Arquivo | Descrição |
---|---|
8tim_db
|
Banco de dados principal contendo informações da proteína |
8tim_db.dbtype
|
Define o tipo de banco de dados |
8tim_db.index
|
Índice para acesso rápido ao banco de dados |
8tim_db.lookup
|
Mapeamento de identificadores |
8tim_db.source
|
Informações sobre a origem dos dados |
8tim_db_ca
|
Coordenadas dos átomos de carbono alfa |
8tim_db_ca.dbtype
|
Tipo do banco de coordenadas CA |
8tim_db_ca.index
|
Índice para coordenadas CA |
8tim_db_h
|
Informações sobre hélices |
8tim_db_h.dbtype
|
Tipo do banco de hélices |
8tim_db_h.index
|
Índice para informações de hélices |
8tim_db_ss
|
Estrutura secundária |
8tim_db_ss.dbtype
|
Tipo do banco de estrutura secundária |
8tim_db_ss.index
|
Índice para estrutura secundária |
Com o módulo carregado, acesse ajuda com o comando abaixo:
module help foldseek --------------------------- Module Specific Help for "foldseek/10_avx2-gpu" --------------------------- Foldseek v10 (GPU-accelerated) -------------------------------------- O QUE E FOLDSEEK? Foldseek e uma ferramenta para busca e comparacao ultra-rapida de estruturas proteicas. Compara estruturas 3D de proteinas de forma muito mais rapida que metodos tradicionais. PRINCIPAIS APLICACOES: - Identificacao de proteinas com estrutura similar - Analise de relacoes evolutivas - Predicao de funcao proteica - Deteccao de dobras proteicas remotamente relacionadas CONFIGURACAO ATUAL: - Versao: 10 (compilada com CUDA 12.4) - Suporte GPU: NVIDIA (H100 compativel) - Otimizado para bancos de dados estruturais em larga escala COMO USAR (EXEMPLOS PRATICOS): # Busca basica (CPU): foldseek easy-search query.pdb target.pdb resultados tmp # Busca acelerada por GPU (recomendado): foldseek easy-search queryDB targetDB resultDB tmp_dir --gpu 1 # Criar banco de dados a partir de PDBs: foldseek createdb arquivo.pdb nome_banco # Alinhamento com visualizacao HTML: foldseek easy-search query.pdb target.pdb resultado.html tmp --format-mode 3 --gpu 1 OPCOES AVANCADAS: --gpu 1 : Ativa aceleracao GPU --threads N : Controla numero de threads CPU --format-mode 3 : Gera saida visual em HTML REFERENCIAS E LINKS UTEIS: - Repositorio Oficial: https://github.com/steineggerlab/foldseek - Artigo Cientifico: Nature Biotechnology (2023) 'Fast and accurate protein structure search with Foldseek' Autores: van Kempen et al. DOI: 10.1038/s41587-023-01773-0 PRECISA DE AJUDA? Execute 'foldseek --help' para ver todas as opcoes ou consulte a documentacao online. Ou acesso nosso guia rapido no GitHub -> https://github.com/lncc-sered/manual-sdumont2nd/wiki/foldseek --------------------------------------