Site | Artigo NeurIPS 2024 AIDrugX | Artigo 2022 da Nature Chemical Biology | Artigo NeurIPS 2021 | Papel longo | Folga | Lista de discussão TDC | Documentação TDC | Diretrizes de Contribuição
A inteligência artificial está preparada para remodelar a ciência terapêutica. Therapeutics Data Commons é uma iniciativa coordenada para acessar e avaliar a capacidade de inteligência artificial em modalidades terapêuticas e estágios de descoberta. Apoia o desenvolvimento de métodos de IA e visa estabelecer a base de quais métodos de IA são mais adequados para aplicações de descoberta de medicamentos e porquê.
Pesquisadores de todas as disciplinas podem usar o TDC para inúmeras aplicações. Tarefas solucionáveis por IA, conjuntos de dados prontos para IA e benchmarks selecionados no TDC servem como um ponto de encontro entre cientistas bioquímicos e de IA. O TDC facilita avanços algorítmicos e científicos e acelera o desenvolvimento, validação e transição de métodos de aprendizado de máquina para implementação biomédica e clínica.
TDC é uma iniciativa de ciência aberta. Aceitamos contribuições da comunidade.
[1] Velez-Arce, Huang, Li, Lin, et al., TDC-2: Fundação Multimodal para Ciência Terapêutica, bioRxiv, 2024 [Artigo]
[2] Huang, Fu, Gao, et al., Artificial Intelligence Foundation for Therapeutic Science, Nature Chemical Biology, 2022 [Artigo]
[3] Huang, Fu, Gao, et al., Therapeutics Data Commons: Conjuntos de dados de aprendizado de máquina e tarefas para descoberta e desenvolvimento de medicamentos, NeurIPS 2021 [Artigo] [Pôster]
[4] Huang et al., Benchmarking Molecular Machine Learning in Therapeutics Data Commons, ELLIS ML4Molecules 2021 [Artigo] [Slides]
[5] Huang et al., Therapeutics Data Commons: Conjuntos de dados e tarefas de aprendizado de máquina para descoberta e desenvolvimento de medicamentos, Baylearn 2021 [Slides] [Pôster]
[6] Huang, Fu, Gao et al., Therapeutics Data Commons, Simpósio NSF-Harvard sobre Drogas para Pandemias Futuras 2020 [#futuretx20] [Slides] [Vídeo]
[7] Encontro do grupo de usuários TDC, janeiro de 2022 [Agenda]
[8] Zitnik, Sessão de aprendizado de máquina para traduzir o genoma e o epigenoma do câncer, reunião anual da AACR de 2022, abril de 2022
[9] Zitnik, Few-Shot Learning for Network Biology, palestra no Workshop KDD sobre mineração de dados em bioinformática
[10] Zitnik, Aprendizado de máquina acionável para descoberta e desenvolvimento de medicamentos, Broad Institute, Seminário de modelos, inferência e algoritmos, 2021
[11] Zitnik, Redes Neurais de Gráficos para Dados Biomédicos, Aprendizado de Máquina em Biologia Computacional, 2020
[12] Zitnik, Redes neurais gráficas para identificação de oportunidades de reaproveitamento de medicamentos COVID-19, MIT AI Cures, 2020
Veja aqui as últimas atualizações do TDC!
pip
Para instalar as principais dependências do ambiente do TDC, use pip
:
pip install PyTDC
Observação : o TDC está na versão beta. Atualize sua cópia local regularmente por
pip install PyTDC --upgrade
Os principais carregadores de dados são leves, com dependência mínima de pacotes externos:
numpy, pandas, tqdm, scikit-learn, fuzzywuzzy, seaborn
Fornecemos tutoriais para começar a usar o TDC:
Nome | Descrição |
---|---|
101 | Apresente os carregadores de dados TDC |
102 | Apresente funções de dados TDC |
103,1 | Percorra os conjuntos de dados de moléculas pequenas do TDC |
103,2 | Percorra os conjuntos de dados biológicos da TDC |
104 | Gere 21 preditores ADME ML com 15 linhas de código |
105 | Oráculos de geração de moléculas |
106 | Envio de referência |
DGL | Demonstração apresentada na reunião do grupo de usuários DGL GNN |
U1.1 | Demonstração apresentada no primeiro Meetup do Grupo de Usuários TDC |
U1.2 | Demonstração apresentada no primeiro Meetup do Grupo de Usuários TDC |
201 | Recurso TDC-2 e API multimodal de célula única |
202 | Recurso TDC-2 e PrimeKG |
203 | Recurso TDC-2 e APIs externas |
204 | Hub Modelo TDC-2 |
205 | Tarefa de previsão de penhasco de propriedade molecular TDC-2 |
O TDC possui uma estrutura hierárquica única de três camadas, que, até onde sabemos, é a primeira tentativa de organizar sistematicamente o aprendizado de máquina para terapêutica. Organizamos o TDC em três problemas distintos. Para cada problema, fornecemos uma coleção de tarefas de aprendizagem . Finalmente, para cada tarefa, fornecemos uma série de conjuntos de dados .
No primeiro nível, depois de observar um grande conjunto de tarefas terapêuticas, categorizamos e abstraímos três áreas principais (isto é, problemas) onde a aprendizagem automática pode facilitar avanços científicos, nomeadamente, predição de instância única, predição de múltiplas instâncias e geração:
single_pred
: previsão de propriedade dada entidade biomédica individual.multi_pred
: Predição de propriedade dada a múltiplas entidades biomédicas.generation
de geração: Geração de novas entidades biomédicas desejáveis.O segundo nível da estrutura do TDC está organizado em tarefas de aprendizagem. A melhoria nestas tarefas pode resultar em inúmeras aplicações, incluindo a identificação de terapias combinatórias personalizadas, a concepção de novas classes de anticorpos, a melhoria do diagnóstico de doenças e a descoberta de novas curas para doenças emergentes.
Finalmente, na terceira camada do TDC, cada tarefa é instanciada por meio de vários conjuntos de dados. Para cada conjunto de dados, fornecemos várias divisões em conjuntos de treinamento, validação e teste para simular o tipo de compreensão e generalização (por exemplo, a capacidade do modelo de generalizar para compostos totalmente invisíveis ou de resolver granularmente a resposta do paciente a uma politerapia) necessária para a transição para produção e implementação clínica.
O TDC fornece uma coleção de fluxos de trabalho com APIs intuitivas e de alto nível para iniciantes e especialistas criarem modelos de aprendizado de máquina em Python. Construindo a partir da estrutura modularizada "Problema - Tarefa de Aprendizagem - Conjunto de Dados" (veja acima) no TDC, fornecemos uma API de três camadas para acessar qualquer tarefa de aprendizagem e conjunto de dados. Esse design hierárquico de API nos permite incorporar facilmente novas tarefas e conjuntos de dados.
Para um exemplo concreto, para obter o conjunto de dados HIA da tarefa de aprendizagem terapêutica ADME no problema de previsão de instância única:
from tdc . single_pred import ADME
data = ADME ( name = 'HIA_Hou' )
# split into train/val/test with scaffold split methods
split = data . get_split ( method = 'scaffold' )
# get the entire data in the various formats
data . get_data ( format = 'df' )
Você pode ver todos os conjuntos de dados que pertencem a uma tarefa da seguinte maneira:
from tdc . utils import retrieve_dataset_names
retrieve_dataset_names ( 'ADME' )
Veja todas as tarefas terapêuticas e conjuntos de dados no site do TDC!
Para recuperar a divisão do conjunto de dados de treinamento/validação/teste, você pode digitar
data = X ( name = Y )
data . get_split ( seed = 42 )
# {'train': df_train, 'val': df_val, 'test': df_test}
Você pode especificar o método de divisão da função, a semente aleatória e as frações divididas, por exemplo, data.get_split(method = 'scaffold', seed = 1, frac = [0.7, 0.1, 0.2])
. Verifique a página de divisão de dados para obter detalhes.
Fornecemos diversas métricas de avaliação para as tarefas no TDC, descritas na página de avaliação do modelo no site. Por exemplo, para usar a métrica ROC-AUC, você pode digitar
from tdc import Evaluator
evaluator = Evaluator ( name = 'ROC-AUC' )
score = evaluator ( y_true , y_pred )
O TDC fornece inúmeras funções de processamento de dados, incluindo transformação de rótulos, balanceamento de dados, emparelhamento de dados com gráficos PyG/DGL, amostragem negativa, consulta de banco de dados e assim por diante. Para uso da função, consulte nossa página de processamento de dados no site da TDC.
Para tarefas de geração de moléculas, fornecemos mais de 10 oráculos para aprendizagem orientada a objetivos e de distribuição. Para uso detalhado de cada oráculo, dê uma olhada na página do oráculo no site. Por exemplo, queremos recuperar o oráculo GSK3Beta:
from tdc import Oracle
oracle = Oracle ( name = 'GSK3B' )
oracle ([ 'CC(C)(C)....'
'C[C@@H]1....' ,
'CCNC(=O)....' ,
'C[C@@H]1....' ])
# [0.03, 0.02, 0.0, 0.1]
Cada conjunto de dados no TDC é um benchmark e fornecemos treinamento/validação e conjuntos de testes para ele, juntamente com divisões de dados e métricas de avaliação de desempenho. Para participar da tabela de classificação de um benchmark específico, siga estas etapas:
Use o carregador de dados de benchmark do TDC para recuperar o benchmark.
Use o conjunto de treinamento e/ou validação para treinar seu modelo.
Use o avaliador de modelo TDC para calcular o desempenho do seu modelo no conjunto de testes.
Envie o desempenho do conjunto de testes para um placar de classificação do TDC.
Como muitos conjuntos de dados compartilham um tema terapêutico, organizamos os benchmarks em grupos definidos de forma significativa, aos quais nos referimos como grupos de benchmark. Os conjuntos de dados e tarefas dentro de um grupo de benchmark são cuidadosamente selecionados e centrados em um tema (por exemplo, o TDC contém um grupo de benchmark para dar suporte às previsões de ML das propriedades ADMET). Embora cada grupo de benchmark consista em vários benchmarks, é possível enviar resultados separadamente para cada benchmark. Aqui está a estrutura de código para acessar os benchmarks:
from tdc import BenchmarkGroup
group = BenchmarkGroup ( name = 'ADMET_Group' , path = 'data/' )
predictions_list = []
for seed in [ 1 , 2 , 3 , 4 , 5 ]:
benchmark = group . get ( 'Caco2_Wang' )
# all benchmark names in a benchmark group are stored in group.dataset_names
predictions = {}
name = benchmark [ 'name' ]
train_val , test = benchmark [ 'train_val' ], benchmark [ 'test' ]
train , valid = group . get_train_valid_split ( benchmark = name , split_type = 'default' , seed = seed )
# --------------------------------------------- #
# Train your model using train, valid, test #
# Save test prediction in y_pred_test variable #
# --------------------------------------------- #
predictions [ name ] = y_pred_test
predictions_list . append ( predictions )
results = group . evaluate_many ( predictions_list )
# {'caco2_wang': [6.328, 0.101]}
Para mais informações, visite aqui.
Se você achar o Therapeutics Data Commons útil, cite nosso artigo NeurIPS'24 AIDrugX, nosso artigo NeurIPS e o artigo Nature Chemical Biology:
@inproceedings{
velez-arce2024signals,
title={Signals in the Cells: Multimodal and Contextualized Machine Learning Foundations for Therapeutics},
author={Alejandro Velez-Arce and Kexin Huang and Michelle M Li and Xiang Lin and Wenhao Gao and Bradley Pentelute and Tianfan Fu and Manolis Kellis and Marinka Zitnik},
booktitle={NeurIPS 2024 Workshop on AI for New Drug Modalities},
year={2024},
url={https://openreview.net/forum?id=kL8dlYp6IM}
}
@article{Huang2021tdc,
title={Therapeutics Data Commons: Machine Learning Datasets and Tasks for Drug Discovery and Development},
author={Huang, Kexin and Fu, Tianfan and Gao, Wenhao and Zhao, Yue and Roohani, Yusuf and Leskovec, Jure and Coley,
Connor W and Xiao, Cao and Sun, Jimeng and Zitnik, Marinka},
journal={Proceedings of Neural Information Processing Systems, NeurIPS Datasets and Benchmarks},
year={2021}
}
@article{Huang2022artificial,
title={Artificial intelligence foundation for therapeutic science},
author={Huang, Kexin and Fu, Tianfan and Gao, Wenhao and Zhao, Yue and Roohani, Yusuf and Leskovec, Jure and Coley,
Connor W and Xiao, Cao and Sun, Jimeng and Zitnik, Marinka},
journal={Nature Chemical Biology},
year={2022}
}
O TDC é construído sobre outros projetos de código aberto. Além disso, cite o trabalho original se você usou esses conjuntos de dados/funções em sua pesquisa. Você pode encontrar o artigo original para a função/conjunto de dados no site.
O TDC é uma iniciativa de ciência aberta e voltada para a comunidade. Para participar, junte-se ao nosso Slack Workspace e confira o guia de contribuições!
Entre em contato conosco pelo e-mail [email protected] ou abra um problema no GitHub.
Muitos conjuntos de dados TDC estão hospedados no Harvard Dataverse com o seguinte identificador persistente https://doi.org/10.7910/DVN/21LKWG. Quando o Dataverse está em manutenção, os conjuntos de dados TDC não podem ser recuperados. Isso acontece raramente; verifique o status no site do Dataverse.
A base de código TDC é licenciada sob a licença MIT. Para uso individual de conjuntos de dados, consulte a licença do conjunto de dados no site.