O que é classificação de cadeias e por que ela te dá dor de cabeça
Classificação de cadeias é o processo de agrupar sequências — sejam proteínas, ácidos nucleicos ou até polímeros sintéticos — com base em similaridades estruturais ou funcionais para organizar um universo que, pela própria escala, não pode ser lido linha por linha. No mundo real, isso significa pegar uma lista de entradas no PDB e decidir se a cadeia 3XYZ é parente da 4ABC ou se estão em famílias completamente diferentes. A maioria dos tutoriais começa pela definição e só depois fala na ferramenta. Vou começar pelo contrário, porque é assim que eu aprendi a fazer direito.
Classificação de cadeias na prática
A primeira coisa que eu tentei fazer, anos atrás, foi rodar um script Python que lia arquivos PDB brutos, calculava RMSD par a par e entregava um dendrograma. O resultado parecia bonito em 20 cadeias. Em 2.000 cadeias, o tempo de processamento explodiu e a memória do servidor foi pro espaço. O algoritmo em si estava correto; o problema era ingenuidade minha sobre como a escala muda tudo. O truque que funcionou foi: não classificar todas as cadeias individualmente. Primeiro, você faz um pré-filtro por identidade de sequência usando algo rápido como MMseqs2 ou CD-HIT com cutoffs estritos. Só as cadeias que realmente se aproximam é que entram na etapa mais pesada de comparação estrutural, que nesse ponto já opera em um conjunto manejável.
Se você está começando agora, o fluxo prático que recomendo é: 1. Baixe as cadeias que precisa. Uma opção viável é o repositório do wwPDB, onde você pode filtrar por resolução, por método experimental e por número de cadeias assimétricas no assembly. Não baixe tudo. Filtre antes.
2. Rode CD-HIT ou MMseqs2 para agrupar por identidade de sequência. Use cutoff de 40% para famílias amplas, 90% se quiser quase-idênticas. Isso reduz drasticamente o conjunto antes de qualquer comparação estrutural. 3. Classifique as estruturas usando SCOP 2.07 ou CATH 4.3. Eu gosto mais do SCOP2 pela interface, mas o CATH tem uma consistência interessante em domínios pequenos. Ambos são gratuitos e podem ser baixados como arquivos de classificação prontos, sem precisar rodar seu próprio algoritmo de classificação.
👉 Clique no botão abaixo para saber mais sobre o assunto!
4. Mapeie suas cadeias de volta para as classes. Use scripts de anotação como o scop2py ou os parsers do CATH. Aqui é onde a classificação de cadeias vira algo útil mesmo: você transforma uma lista crua de PDB IDs em hierarquia funcional. O que pouca gente explica é que classificação de cadeias nunca é um problema puramente computacional. Tem um viés histórico enorme. Cadeias muito estudadas — como cinases e globinas — estão sobrepesadas nas bases. Cadeias de organismos extremófilos ou complexos multifuncionais são sub-representados. Se você treina um classificador automático só com dados existentes, ele vai replicar esses vieses. Eu passei semanas tentando entender por que um modelo meu classificava mal certas cadeias bacterianas até perceber que o treinamento tinha 85% de entradas de mamíferos. Ajustei o peso amostral e o recall melhorou em cerca de 12% nas bactérias.
Outro detalhe que ninguém destaca: a definição de "cadeia" no PDB nem sempre corresponde ao que você considera biologicamente relevante. Uma entrada pode ter quatro cadeias assimétricas, mas o assembly biológico é um dímero. Se sua classificação for por cadeia, você vai duplicar exemplos artificialmente. O workaround que eu uso é rodar PISA ou EMMA primeiro para identificar assemblies biológicos e depois classificar cadeia por cadeia dentro de cada assembly, não dentro de cada entrada PDB. Se você quiser apenas explorar classificações prontas, há duas fontes confiáveis:
- SCOP 2.07 — classificação hierárquica manual baseada em estrutura. - CATH v4.3 — classificação hierárquica automática com curadoria.
- wwPDB — depósito primário de estruturas para download bruto. Um aviso sincero: classificação de cadeias tem limitações que ferramentas não resolvem. Quando duas cadeias compartilham menos de 25% de identidade de sequência mas têm fold similar, a classificação automática falha com frequência. Você precisa recorrer a modelos de threading como HHpred ou Phyre2 para esses casos. E mesmo assim, há regiões desordenadas que nenhuma classificação estrutural cobre adequadamente — nesses casos, a função é que guia, não a forma.
Se o seu objetivo é só organizar dados para um trabalho, usar o SCOP ou CATH pronto é mais rápido e confiável do que construir seu próprio classificador. Se o objetivo é pesquisa metodológica, aí vale a pena entender o pipeline inteiro, mas espere gastar pelo menos algumas semanas limpando vieses e ajustando thresholds.