Pular para o conteúdo
Skillpedia
Diversos51 mil · #1906

medchem

Faz seu agente aplicar filtros de química medicinal para avaliar compostos. Ele usa regras de 'drug-likeness' e alertas estruturais.

O que ela faz

Esta ferramenta ajuda a verificar se moléculas (substâncias químicas) são adequadas para serem usadas como medicamentos. Ela aplica regras e listas de compostos indesejados para garantir que as moléculas sejam seguras e eficazes.

Quando usar

  • ✓Ao escolher quais moléculas testar para novos medicamentos.
  • ✓Ao remover moléculas com estruturas químicas problemáticas.
  • ✓Ao garantir que as moléculas sigam regras conhecidas de 'drug-likeness'.

Exemplo do que pedir para a IA

“Verifique estas moléculas para ver se elas seguem as regras de Lipinski e não contêm alertas PAINS.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/medchem/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/medchem/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa regras matemáticas e listas de 'alertas' (estruturas químicas indesejadas) para analisar as moléculas. Ela verifica se cada molécula atende a critérios específicos de segurança e adequação.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add K-Dense-AI/scientific-agent-skills --skill medchem

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/medchem/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Medchem

Visão Geral

Medchem é uma biblioteca Python do datamol-io para filtragem e priorização molecular na descoberta de medicamentos. Aplique regras de "drug-likeness" derivadas da literatura, catálogos de alertas nomeados, limiares de complexidade, detecção de grupos químicos e uma linguagem de consulta personalizada para triar bibliotecas de compostos em escala. Filtros são diretrizes contextuais — combine com conhecimento de domínio e conhecimento do alvo.

Tempo de execução verificado: medchem 2.1.1, datamol 0.13.0, RDKit 2026.3.6; Python 3.11+. RuleFilters e classes estruturais retornam DataFrames do pandas. Filtros rodam localmente; instalação e consulta de documentação precisam de acesso à rede. Execução nativa da Lilly não foi testada nesta revisão.

Quando Usar Esta Habilidade

Esta habilidade deve ser usada quando:

  • Aplicar regras de "drug-likeness" (Lipinski, Veber, CNS, lead-like) a bibliotecas de compostos
  • Filtrar moléculas por alertas estruturais, PAINS ou regras de "screening-deck" da NIBR
  • Priorizar compostos para "hit-to-lead" ou otimização de "lead"
  • Calcular métricas de complexidade contra limiares derivados do ZINC
  • Detectar grupos funcionais ou catálogos de subestruturas nomeadas
  • Construir filtros multicritérios com a linguagem de consulta medchem

Instalação

uv pip install "medchem==2.1.1" "datamol==0.13.0" "rdkit==2026.3.6"

Integração opcional com Lilly: instale as ferramentas nativas "checksum-pinned" ao lado do Python ativo. Isso baixa o código-fonte, compila executáveis e executa testes de regressão nativos (compilador C++, make, zlib, Ruby; WSL no Windows). Este comando de instalação está documentado no upstream, não é executado aqui:

medchem install-lilly

Capacidades Principais

1. Regras de Química Medicinal

Aplique regras estabelecidas de "drug-likeness" via medchem.rules.

Listar regras disponíveis:

import medchem as mc

mc.rules.RuleFilters.list_available_rules_names()
# ['rule_of_five', 'rule_of_five_beyond', 'rule_of_four', 'rule_of_three', ...]

Regra única em uma molécula:

import datamol as dm
import medchem as mc

smiles = "CC(=O)OC1=CC=CC=C1C(=O)O"  # aspirin
mc.rules.basic_rules.rule_of_five(smiles)   # True
mc.rules.basic_rules.rule_of_cns(smiles)    # True
mc.rules.basic_rules.rule_of_veber(smiles)  # True

Múltiplas regras com RuleFilters (retorna um DataFrame):

import datamol as dm
import medchem as mc

mols = [dm.to_mol(s) for s in smiles_list]

rfilter = mc.rules.RuleFilters(
    rule_list=["rule_of_five", "rule_of_oprea", "rule_of_cns", "rule_of_leadlike_soft"]
)
df = rfilter(mols=mols, n_jobs=-1, progress=True, keep_props=False)

# Columns: mol, pass_all, pass_any, rule_of_five, rule_of_oprea, ...
passing = df[df["pass_all"]]

Exemplos abaixo usam mol_list, smiles_list e candidates já analisados e fornecidos pelo chamador; rejeite estruturas ausentes/vazias antes de filtrar. Use keep_props=True para incluir descritores computados (mw, clogp, tpsa, etc.) no resultado.

2. Filtros de Alertas Estruturais

Detecte padrões problemáticos com medchem.structural. Ambas as classes retornam DataFrames com colunas pass_filter, status e reasons.

Alertas comuns (conjuntos de regras derivados da ChEMBL):

import medchem as mc

alert_filter = mc.structural.CommonAlertsFilters(alerts_set=["BMS", "Dundee", "Glaxo"])
df = alert_filter(mols=mol_list, n_jobs=-1, progress=True)
# df columns: mol, pass_filter, status, reasons

clean = df[df["pass_filter"]]

Filtros NIBR (curadoria de "screening-deck" da Novartis):

nibr_filter = mc.structural.NIBRFilters()
df = nibr_filter(mols=mol_list, n_jobs=-1, progress=True)
# df columns: mol, pass_filter, status, severity, reasons, n_covalent_motif, special_mol

A classe rejeita alertas de exclusão explícita. Para também rejeitar severidade de flag acumulada ≥10, use df["pass_filter"] & (df["severity"] < 10), ou mc.functional.nibr_filter(..., max_severity=10). O corte funcional é estrito < 10 e assume moléculas válidas: ele verifica apenas a severidade e pode admitir falhas de análise com severidade zero. Pré-valide as entradas.

3. Filtros de Catálogos Nomeados (PAINS, Brenk, etc.)

Use medchem.catalogs.NamedCatalogs para instâncias RDKit FilterCatalog, ou a API funcional:

import medchem as mc

# Listar catálogos nomeados disponíveis
mc.catalogs.list_named_catalogs()
# ['tox', 'pains', 'pains_a', 'brenk', 'nibr', 'zinc', ...]

# API funcional — True significa que a molécula passa (nenhum alerta correspondente)

…
Perguntas frequentes

O que são 'drug-likeness rules'?

São regras baseadas em estudos científicos que ajudam a prever se uma molécula tem características semelhantes às de medicamentos conhecidos, aumentando a chance de sucesso em testes.

O que são 'structural alerts'?

São padrões em estruturas químicas que frequentemente causam problemas de toxicidade ou reatividade indesejada. A ferramenta identifica essas estruturas para removê-las.

O que é 'Lipinski'?

É uma das regras de 'drug-likeness' mais famosas, que define limites para o tamanho, peso e outras propriedades de uma molécula para que ela tenha boas chances de ser absorvida pelo corpo.

Detalhes

Descrição original do autor

Applies medicinal chemistry filters for compound triage, using drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

repo: K-Dense-AI/scientific-agent-skills

Popularidade

Estrelas no GitHub
51 mil
Posição no ranking
#1906
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas