Method Article

Sintesi delle conoscenze basate sull'evidenza e convalida delle ipotesi: navigazione nelle basi di conoscenze biomediche tramite sistemi di intelligenza artificiale e agenti spiegabili

DOI:

10.3791/67525

June 13th, 2025

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Questo articolo descrive RUGGED (Retrieval Under Graph-Guided Explainable disease Distinction), che integra l'inferenza LLM (Large Language Model) con la Retrieval-Augmented Generation (RAG). Trae prove da basi di conoscenze biomediche curate da esperti e pubblicazioni biomediche sottoposte a revisione paritaria per sintetizzare nuove conoscenze da informazioni aggiornate, identificare previsioni spiegabili e attuabili e individuare direzioni promettenti per indagini basate su ipotesi.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

La scala delle conoscenze biomediche, che abbraccia la letteratura scientifica e le basi di conoscenza curate, rappresenta una sfida significativa per i ricercatori nell'elaborazione, nella valutazione e nell'interpretazione efficace dei risultati. I Large Language Models (LLM) sono emersi come potenti strumenti per navigare in questo complesso panorama di conoscenza, ma possono produrre risposte allucinatorie. La generazione aumentata di recupero (RAG) è essenziale per identificare le informazioni rilevanti per migliorare l'accuratezza e l'affidabilità. Questo protocollo introduce RUGGED (Retrieval Under Graph-Guided Explainable disease Distinction), un flusso di lavoro completo progettato per supportare l'integrazione delle conoscenze, mitigare i pregiudizi e esplorare e convalidare nuove direzioni di ricerca. Le informazioni biomediche provenienti da pubblicazioni e basi di conoscenza vengono sintetizzate e analizzate attraverso l'analisi delle associazioni di text-mining e modelli di previsione a grafo spiegabili per scoprire potenziali relazioni farmaco-malattia. Questi risultati, insieme al corpus di testo sorgente e alle basi di conoscenza, sono incorporati in un framework che impiega LLM potenziati da RAG per consentire agli utenti di esplorare ipotesi e indagare i meccanismi sottostanti. Un caso d'uso clinico dimostra la capacità di RUGGED di valutare e raccomandare terapie per la cardiomiopatia aritmogena (ACM) e la cardiomiopatia dilatativa (DCM), analizzando i farmaci prescritti per le interazioni molecolari e potenziali nuove applicazioni. La piattaforma riduce le allucinazioni da LLM, evidenzia intuizioni attuabili e semplifica la ricerca di nuove terapie.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Il processo di esplorazione delle ipotesi nell'impresa biomedica è essenziale per scoprire nuove interdipendenze molecola-farmaco-malattia alla base della patogenesi e per sbloccare il potenziale terapeutico 1,2. Questo processo trae prove dalle conoscenze biomediche esistenti, sintetizzando nuove scoperte basate su indizi logici incorporati nella letteratura peer-reviewed (ad esempio, >36 rapporti di PubMed) e integrando prove curate ad alta affidabilità radicate nelle basi di conoscenze biomediche. I recenti progressi riducono il laborioso sforzo manuale applicando il text mining sui corpradella letteratura 3,4,5 e impiegando analisi basate su grafici 6,7,8,9 per sintetizzare informazioni rilevanti e scoprire nuove strade per l'indagine. Nonostante questi sforzi, gli approcci attuali spesso non supportano una profonda comprensione contestuale a causa della frammentazione dei dati. Inoltre, non hanno la capacità di trarre inferenze basate sull'evidenza e di esplorare in modo interattivo nuove ipotesi.

I recenti sviluppi nei modelli linguistici di grandi dimensioni (LLM) gettano nuova luce su queste sfide, dimostrando una comprensione contestuale di alto livello attraverso la formazione su grandi quantità di informazioni in più discipline 10,11,12. Nel dominio biomedico, gli LLM hanno mostrato un ruolo promettente nell'estrazione di informazioni sui pazienti13 e nella risposta a domande cliniche generali14,15, mentre le applicazioni nella risposta a domande specifiche del dominio16 e nelle utilità nell'assistenza clinica primaria17 rimangono da esplorare. Questi modelli mostrano la capacità di ragionare e trarre inferenze da set di dati complessi, rendendoli potenzialmente adatti per condurre l'esplorazione di ipotesi e la sintesi della conoscenza. Inoltre, alcuni modelli presentano un'interazione simile a una chat per coinvolgere gli utenti e consentire l'esplorazione dinamica degli argomenti, superando i confini convenzionali dei motori di ricerca basati su query e delle basi di conoscenza18,19.

Oltre a queste potenzialità, gli LLM devono affrontare sfide significative, come la possibile allucinazione delle informazioni, la dimostrazione di una fiducia ingiustificata in spiegazioni potenzialmente imprecise, la mancanza di interpretabilità e la suscettibilità a contenuti distorti o inappropriati 20,21,22,23,24. Applicate direttamente per guidare il processo decisionale clinico, le risposte e le previsioni derivate dall'LLM hanno una posta in gioco elevata; Eventuali errori possono potenzialmente comportare costosi esperimenti di laboratorio o influire negativamente sulle traiettorie di salute del paziente25,26. Pertanto, risposte LLM affidabili e degne di fiducia sono fondamentali, poiché i loro consigli devono essere saldamente radicati nell'evidenza. In questi scenari, l'interpretabilità non è un lusso, ma una necessità per capire perché questi modelli fanno le previsioni che fanno.

A tal fine, la Retrieval-Augmented Generation (RAG) è un sistema progettato per ridurre al minimo le allucinazioni LLM, basando le risposte LLM sull'evidenza per migliorarne l'accuratezza e l'affidabilità27,28. Questo approccio prevede in genere il recupero di passaggi di testo rilevanti, come l'integrazione di un LLM (ad esempio, ChatGPT) con PubMed, consentendo l'identificazione di citazioni rilevanti per le query degli utenti29,30. Non limitato al testo, il recupero sui Knowledge Graph (KG) mostra risultati promettenti nell'applicazione agli LLM per attività come il controllo dei fatti 31,32,33, il ragionamento trasparente 34,35,36, la codifica della conoscenza37, il miglioramento della risposta alle domande38 e il completamento dei grafi della conoscenza 39. Codificando le informazioni fattuali provenienti da fonti verificate, i KG migliorano l'accuratezza, la trasparenza e l'affidabilità delle risposte LLM. Le tecniche di previsione dei collegamenti all'interno di questi grafici sfruttano il deep learning per identificare relazioni precedentemente nascoste tra molecole, farmaci e malattie 5,40,41. I recenti progressi nelle previsioni spiegabili dell'IA migliorano ulteriormente la trasparenza e l'interpretabilità di queste attività di previsione dei collegamenti, fornendo un potenziale supporto per interpretare le ipotesi biomediche come una strada praticabile per l'indagine 42,43,44. Questi progressi assicurano che le risposte generate dall'LLM siano equilibrate e tratte dall'evidenza, aumentando significativamente la loro applicabilità nelle imprese biomediche.

Questo protocollo presenta RUGGED (Retrieval Under Graph-Guided Explainable disease Distinction) come un flusso di lavoro accessibile ed efficiente per l'esplorazione e la convalida di intuizioni terapeutiche cliniche (Figura 1). Questo protocollo di flusso di lavoro sfrutta le vaste risorse della letteratura biomedica e delle basi di conoscenza per l'estrazione e la convalida delle informazioni rilevanti, consentendo processi di recupero su misura per le query (Figura 2). Un modello di previsione dell'intelligenza artificiale spiegabile viene impiegato per scoprire intuizioni interpretabili e attuabili dalle conoscenze biomediche esistenti, migliorando così la trasparenza e l'utilità dei modelli predittivi. Il flusso di lavoro completato semplifica l'esplorazione dei grafici della conoscenza e delle previsioni dei modelli tramite LLM abilitati per RAG, facilitando interazioni intuitive e informate per ricercatori, medici e professionisti clinici.

Questa sezione getta le basi per il protocollo, con i passaggi per implementare questo approccio descritti nella sezione seguente. Successivamente, viene presentato un caso d'uso clinico traslazionale per dimostrare questo approccio, applicato alla valutazione di farmaci per interazioni molecolari e strategie terapeutiche per la medicina cardiovascolare. Infine, vengono discusse le implicazioni e la discussione di questo protocollo.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Questo protocollo è stato sviluppato in Python 3.10 e implementato come contenitore Docker in Windows. I comandi forniti si basano sull'ambiente Unix all'interno del contenitore Docker. Il software è disponibile all'indirizzo https://github.com/pinglab-utils/RUGGED. La tabella 1 presenta una stima del tempo di calcolo per tutti i passaggi del protocollo.

1. Installazione del software

  1. Installare il software prerequisito seguendo le istruzioni riportate nella Tabella dei materiali.
    NOTA: questo protocollo richiede il controllo della versione, la containerizzazione, un database a grafo e servizi LLM (Large Language Model). Il controllo della versione e la containerizzazione sono facoltativi, ma possono semplificare il processo di configurazione; I servizi di database a grafo e LLM possono essere sostituiti con strumenti simili se l'utente è tecnicamente competente.
    1. Configurare la rete tra container. Configurare i contenitori Docker in modo che siano connessi ad altri servizi nel dispositivo (ad esempio, altri contenitori Docker). Digita il seguente comando nel terminale: docker network create rugged_network
  2. Configurare i servizi LLM (Large Language Models). Scegliere il servizio LLM appropriato per il caso d'uso, tra i servizi LLM commerciali o i servizi di un modello locale in esecuzione sul dispositivo dell'utente. Assicurati che sia specificato almeno un servizio LLM, anche se gli agenti possono essere combinati e abbinati per sfruttare modelli diversi.
    1. Avvia il servizio LLM locale. Se si utilizza Ollama utilizzando un'interfaccia utente grafica (GUI), eseguire l'eseguibile GUI (ad esempio, ollama.exe). Se si utilizza Docker, eseguire: 'docker run -name ollama --net rugged_network d -v ollama:/root/.ollama -p 11434:11434 ollama/ollama'. Se si utilizza Docker con l'accelerazione GPU, assicurarsi che il driver GPU sia installato ed eseguire: 'docker run -name ollama --net rugged_network -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 ollama/ollama'.
    2. Inizializza il modello LLM locale. Determinare quale modello utilizzare tra i modelli supportati (ad esempio, consigliato: llama3, maestrale, mixtral. Se si utilizza Docker, digitare 'docker exec run ollama run ' nella riga di comando; se si utilizza l'interfaccia grafica di Ollama, digitare 'ollama run ', sostituendo con il nome del modello per ciascuno.
  3. Avviare il servizio Graph Database. Selezionare un servizio di database a grafo tra contenitore Docker, applicazione desktop o servizio Web online. Seguire le istruzioni di installazione nei materiali supplementari per completare la configurazione.
  4. Configura l'ambiente RUGGED. Verificare le immagini Docker scaricate digitando le immagini docker. Assicurarsi che tutte le immagini Docker del passaggio precedente siano elencate. Esegui questi comandi nel terminale per scaricare l'immagine e il codice di RUGGED Docker:
    docker pull pinglabutils/rugged:più recente
    NOTA: git clone https://github.com/pinglab-utils/RUGGED
    1. Configura il servizio LLM commerciale. Se si utilizzano servizi LLM commerciali, assicurarsi che l'account e la chiave API associata dispongano di fondi sufficienti. Modifica i file di configurazione RUGGED modificando il file di configurazione in 'RUGGED/config/openai_key.txt' e aggiungendo la chiave API al file.
    2. Configura gli agenti commerciali. Determina quali agenti LLM all'interno del sistema RUGGED utilizzeranno questo servizio. Modificare il file di configurazione in 'RUGGED/config/llm_agents.json' e aggiornare i campi dell'agente per specificare la versione del modello. Modelli consigliati: gpt-3.5-turbo, gpt-4o.
    3. Configurare il servizio LLM locale. Se si utilizza un endpoint di servizio diverso da quello predefinito per Ollama in 'http://localhost:11434', modificare e aggiornare il campo 'OLLAMA_URI' all'interno dei file di configurazione in 'RUGGED/config/ollama_config.json'.
    4. Configurare gli agenti LLM locali. Determina quali agenti LLM all'interno del sistema RUGGED utilizzeranno questo servizio. Modificare il file di configurazione in 'RUGGED/config/llm_agents.json' e aggiornare i campi dell'agente per specificare 'ollama' come modello selezionato.
    5. Configurare l'endpoint del database a grafo. Se modificato rispetto alla password e al nome utente predefiniti per Neo4j, modificare il file di configurazione 'RUGGED/config/neo4j_config.json' per aggiornare i campi 'uri', 'nome utente' e 'password'.
  5. Avviare il servizio RUGGED eseguendo il comando:
    docker run --name rugged --net rugged_network --gpus=all -v \RUGGED\:/data ping-lab-
    utilità:RUGGED /bin/bash
    NOTA: Per verificare che i servizi funzionino come previsto, accedere alla directory RUGGED ed eseguire i passaggi 1.4.1. attraverso il passaggio 1.4.4. in questa finestra del terminale.
    1. Verificare la funzionalità del servizio LLM. Passare alla cartella di test nella directory RUGGED ed eseguire i seguenti comandi per verificare che i servizi OpenAI e/o Ollama funzionino:
      Pitone test_openai.py
      Pitone test_ollama.py
    2. Verificare la funzionalità del servizio di riconoscimento delle entità denominate. Eseguire 'test_ner.py' per verificare che il codice per il riconoscimento dell'entità denominata delle query utente funzioni correttamente.
    3. Verificare la funzionalità del servizio Neo4j. Esegui script di test per verificare che il servizio Neo4j funzioni come previsto digitando 'python test_neo4j.py'
    4. (Facoltativo) Verificare l'accesso HTTP al database a grafo. Apri un browser web e visita l'interfaccia utente di Neo4j.
      NOTA: Per Neo4j in Docker o Desktop, l'URL predefinito è 'http://localhost:7474'. Per Neo4j AuraDB, utilizzare il link fornito durante la configurazione.
  6. (Facoltativo) Risolvere i problemi. Assicurati che i servizi che supportano RUGGED siano verificati durante la configurazione del software per anticipare i problemi. Risolvere i problemi relativi ai test non riusciti dal passaggio 1.4. Se esistono, segui i messaggi di errore segnalati dagli script di test che descrivono i problemi.
    1. Verificare i contenitori Docker. Verificare che tutti i contenitori Docker siano in esecuzione utilizzando 'docker ps' nel terminale, inclusi il contenitore docker RUGGED, il contenitore docker Neo4j (facoltativo) e il contenitore docker Ollama (facoltativo).
    2. Verificare le porte di rete. Per i servizi Docker, assicurarsi che le porte corrette siano aperte e controllare i log con 'docker logs neo4j' o 'docker logs ollama'.
      NOTA: Per impostazione predefinita, Neo4j utilizza le porte 7474 per http e 7687 per la sua interfaccia bolt; Ollama utilizza la porta 11434.
    3. Verificare le applicazioni del servizio. Per le applicazioni installate direttamente sul dispositivo (ad esempio, Ollama e Neo4j Desktop), apri le applicazioni per confermare che siano in esecuzione.
    4. Verificare i servizi Web. Per Neo4j AuraDB, accedi al sito Web e verifica che il servizio sia in esecuzione.
    5. Verificare le regole del firewall. Modificare le regole del firewall del dispositivo per assicurarsi che il firewall non blocchi alcun servizio esterno.
    6. Riavvia il dispositivo. Se i problemi non vengono risolti, riavvia il dispositivo e riprova dal passaggio 1.5.1.
    7. Apri un problema. Se i problemi persistono, apri un problema su RUGGED GitHub (https://github.com/pinglab-utils/RUGGED).

2. Accesso alle conoscenze biomediche e alle informazioni sull'estrazione

NOTA: Questi passaggi delineano due pipeline di estrazione della conoscenza come informazioni sottostanti che costituiscono il sistema Retrieval Augmented Generation (RAG) di RUGGED: (1) la pipeline di estrazione del testo biomedico CaseOLAP LIFT5 e (2) il flusso di lavoro per la costruzione del grafo della conoscenza Know2BIO9. Per utilizzare RUGGED con dati personalizzati, procedere al passaggio 4.

  1. Estratto di letteratura biomedica. Identifica i documenti pertinenti e le relazioni proteina-malattia di alto livello utilizzando CaseOLAP LIFT, un protocollo computazionale progettato per studiare le proteine subcellulari e le loro associazioni con la malattia attraverso il text mining della letteratura biomedica. Completa questo passaggio per preparare le informazioni necessarie per informare il flusso di lavoro RAG con approfondimenti mirati da questi report.
    1. Eseguire l'analisi di text mining CaseOLAP LIFT. Visita il protocollo JoVE CaseOLAP LIFT (i passaggi 4-5 non sono necessari per questa analisi).
    2. Sposta i documenti di testo elaborati. Assicurarsi che i documenti biomedici analizzati (pubmed.json) e il relativo testo completo (pmid2full_text_sections.json) del passaggio 3 si trovino nella cartella dei dati CaseOLAP LIFT . Sposta questi file nella cartella dei dati RUGGED utilizzando i comandi seguenti:
      mv /caseolap_lift/caseolap_lift_shared_folder/data/pubmed.json /RUGGED/data/text_corpus
      mv /caseolap_lift/caseolap_lift_shared_folder/dati/ pmid2full_text_sections.json /RUGGED/dati/text_corpus
    3. Spostare i risultati del text mining. Verificare che il file del grafo della conoscenza (merged_edge_list.tsv) con le associazioni proteina-malattia sia stato generato nella cartella result/kg. Verificare che il numero di associazioni sia quello previsto, a seconda delle impostazioni selezionate dai passaggi 1 a 3 (vedere ad esempio la Tabella 2 ). Spostare questo file nella cartella dei dati di RUGGED:
      mv /caseolap_lift/caseolap_lift_shared_folder/result/graph_data/ merged_edge_list.tsv /RUGGED/data/knowledge_graph
  2. Estrarre conoscenze biomediche. Assembla un grafo della conoscenza biomedica utilizzando il software Know2BIO , che integra i dati provenienti da 30 basi di conoscenza biomedica. Completare questo passaggio per garantire che le informazioni relative a queste relazioni biomediche e i dati multimodali vengano elaborati per supportare il flusso di lavoro RAG a valle.
    1. Clona il repository Know2BIO. Clona il repository digitando nella riga di comando, utilizzando il comando seguente. Vai al repository Know2BIO.
      Git clone https://github.com/Yijia-Xiao/Know2BIO.git.
    2. Prepara dati e licenze. Passare alla cartella del set di dati e seguire le istruzioni nel file 'README.md'. Completare la creazione necessaria degli account utente per accedere a varie risorse online (ad esempio, thesaurus UMLS, Banca del farmaco).
    3. Scarica le risorse della knowledge base. Esegui lo script 'python create_edge_files.py' e monitora l'avanzamento della pipeline di estrazione del grafo della conoscenza. Assicurarsi che sia stato generato il file .csv nella cartella "Know2BIO/dataset/output" che rappresenta le relazioni biomediche.
    4. Costruisci il grafo della conoscenza. Esegui lo script 'python prepare_kgs.py' per integrare le informazioni estratte nel passaggio precedente per combinare automaticamente le relazioni estratte in un grafo della conoscenza unificato, formattando il grafico per origine dati e dominio.
    5. Verificare l'output. Verificare che i file completati siano presenti all'interno del file 'whole_kg.txt' nella directory 'Know2BIO/dataset/know2bio_dataset'. Verificare che il numero di archi nel file sia quello previsto; si veda la Tabella 3, che ha portato a oltre 6 milioni di bordi. Procedi al passaggio successivo, poiché i passaggi rimanenti nel file README di Know2BIO non sono necessari per questa analisi.
      NOTA: Le relazioni di Know2BIO nella Tabella 3 erano fonti provenienti da 31 fonti, tra cui ATC (Organizzazione Mondiale della Sanità), Bgee45, CTD46, ClinGen47, ClinVar48, DOID49, DisGeNET50, DrugBank51, GRNdb52, Gene Ontology53, HGNC54, Hetionet3, Inxight Drugs55, KEGG56, MeSH57, Mondo58, MyChem.info59, MyDisease.info59, MyGene.info59, OMIM60, PathFX61, PharmGKB62, PubMed, Reactome63, SIDER64, SMPDB65, STRING66, TTD67, UMLS68, Uberon69 e UniProt70.
    6. Sposta i risultati del Knowledge Graph. Spostare il file in '/data/knowledge_graph/' della directory RUGGED.
      mv /Know2BIO/dataset/know2bio/whole_kg.txt /RUGGED/data/knowledge_graph
  3. Costruisci un grafo della conoscenza combinato. Integra il grafo del passaggio precedente con le relazioni proteina-malattia di alto livello derivanti dal text mining del passaggio 2.1 in un unico grafo di conoscenza unificato.
    1. Verificare i risultati nella directory RUGGED. Verificare che il file dei risultati della costruzione del Knowledge Graph (whole_kg.txt) e i risultati della relazione di text mining (merged_edge_list.tsv) si trovino nella directory knowledge_graph all'interno della cartella dei dati.
    2. Integrare i risultati. Esegui lo script 'combine_kg_results.py' per unire le relazioni e le entità estratte dall'analisi del text mining e dalla costruzione del grafo della conoscenza in un unico grafo della conoscenza coeso. Segui il comando di esempio riportato di seguito:
      python rugged/knowledge_graph/combine_kg_results.py ./data/knowledge_graph/merged_edge_list.tsv ./data/knowledge_graph/whole_kg.txt --output_dir ./data/rugged_knowledge_graph
  4. Filtra il grafo della conoscenza. (Facoltativo) Campiona un sottoinsieme del grafo della conoscenza che verrà utilizzato per l'analisi predittiva. Questo passaggio mantiene solo le relazioni strettamente correlate e riduce le risorse computazionali necessarie per eseguire le previsioni di deep learning.
    1. Identificare i nodi rilevanti. Determinare le entità biomediche di interesse per l'analisi predittiva nella fase 3 esaminando il grafo della conoscenza e individuando i nodi rilevanti.
      NOTA: Questo protocollo si concentra sui linfonodi di malattia per la Cardiomiopatia Aritmogena (ACM) e la Cardiomiopatia Dilatativa (DCM), rispettivamente MeSH_Disease: D019571 e MeSH_Disease: D002311. I nodi target devono essere adattati al caso d'uso previsto.
    2. Esempio dal grafo della conoscenza. Utilizza lo script 'filter.py' per estrarre il sottografo del grafo della conoscenza raggiungibile all'interno del k-hop dai nodi di interesse selezionati. Segui il comando di esempio riportato di seguito, che filtra il grafo raggiungibile entro 2 nodi dai nodi della malattia selezionati:
      python ./rugged/knowledge_graph/kg_filter.py --k 2 --disease "MeSH_Disease:D019571,MeSH_Disease:D002311" --input_file ./data/rugged_knowledge_graph/rugged_knowledge_graph_edges.csv —output_dir ./data/rugged_knowledge_graph/filtered_kg/.
      NOTA: l'aumento del valore k-hop (--k) espande l'ambito dei dati all'interno del grafo per l'analisi delle previsioni, ma richiede anche maggiori risorse computazionali.

3. Analisi predittiva spiegabile

NOTA: Esegui GNNExplainer44 su un modello di rete convoluzionale a grafo per prevedere potenziali archi (relazioni) nel grafo della conoscenza e fornire informazioni su associazioni precedentemente sconosciute.

  1. Assicurarsi che il contenitore Docker RUGGED sia in esecuzione. Se la finestra del terminale precedente è stata chiusa, connettiti al contenitore Docker con il comando 'docker exec --it rugged /bin/bash'. Una volta connesso al contenitore Docker, passare alla directory RUGGED.
  2. Determinare i margini da prevedere. Fornisci gli spigoli come coppie di nodi in un file .txt (ad esempio, edges_to_predict.txt). Gli archi già esistenti nel grafo della conoscenza verranno filtrati dalle previsioni.
  3. Eseguire lo script di analisi delle previsioni . Specifica gli archi da prevedere e il grafo della conoscenza di input come argomenti della riga di comando per la previsione. Argomenti chiave: -p (percorso del file degli archi), -i (grafo della conoscenza di input), -o (directory di output), -n (previsioni superiori, ad esempio 5), -k (bordi superiori da visualizzare, ad esempio 10). Comando di esempio:
    python rugged/predictive_analysis/generate_explainable_prediction.py -o output -n 5 -k 10 -p ./output/edges_to_predict.txt -i ./data/rugged_knowledge_graph/filtered_kg/filtered_k2_edges.csv
  4. Valutare le prestazioni del modello. Esamina l'output del terminale o il file "output.log" generato dal passaggio precedente per valutare le prestazioni del modello in base alla suddivisione del grafo della conoscenza filtrato in set di training, convalida e test con un rapporto 85:5:10. Regolare gli argomenti del modello se le prestazioni non sono quelle previste, utilizzando la Tabella 4 come esempio.
  5. Verificare che i risultati si trovino nella cartella di output. Esaminare i risultati del modello in "prediction_results.csv" ed esaminare le prime n previsioni all'interno della cartella di output. Esaminare le prime n previsioni nella cartella di output. Per ogni previsione, una visualizzazione grafica illustra gli spigoli più pertinenti che contribuiscono a ciascuna previsione e i relativi punteggi di importanza relativa.
  6. Sposta i risultati dell'analisi predittiva. Una volta soddisfatti dei risultati dell'analisi predittiva, spostare i risultati nella sezione "dati/previsioni/" della directory RUGGED.

4. Generazione di ipotesi

  1. Connettersi al contenitore Docker RUGGED.
    1. Assicurarsi che il contenitore Docker RUGGED sia in esecuzione. Se la finestra del terminale precedente era chiusa, connettersi al contenitore Docker.
    2. Passare alla directory RUGGED. Una volta connesso, digita cd /workspace/RUGGED per accedere alla directory. Eseguire i passaggi rimanenti in questa finestra della riga di comando.
    3. Verificare che i servizi di supporto siano in esecuzione. Se si utilizza Ollama e Neo4j in Docker, assicurarsi che i contenitori siano in esecuzione digitando 'docker ps'. Ripetere il passaggio 1.7 per verificare che i servizi funzionino correttamente e il passaggio 1.4 per risolvere i problemi, se esistono.
  2. Preparare i dati RAG. Prepara il grafo della conoscenza e il corpus di testo per il recupero.
    NOTA: Questi dati possono essere sostituiti con dati definiti dall'utente inserendo i dati rispettivamente nelle directory 'data/knowledge_graph/' e 'data/text_corpus/'. Questi dati devono seguire il formato del repository GitHub (https://github.com/pinglab-utils/RUGGED/tree/main/data).
    1. Verificare le risorse. Assicurati che il corpus di testo si trovi nella directory 'data/text_corpus/', che il grafo della conoscenza con il file di previsioni di text mining si trovi nella directory data/knowledge_graph/ e che i risultati delle previsioni si trovino nella directory data/predictions/ (rispettivamente dai passaggi 2.1.2., 2.3.2. e 3.5.).
    2. Popolare il database a grafo. Esegui il comando 'python ./neo4j/prepare_neo4j.py' per creare i nodi, i bordi e le funzionalità dei nodi necessari.
    3. Indicizzare il corpus di testo. Esegui il comando 'python ./text/prepare_corpus.py' per indicizzare il corpus di testo e consentire a RUGGED di recuperare documenti di testo pertinenti in base alle query dell'utente suddividendo i documenti in sezioni di 500 token per creare un database vettoriale utilizzando BART71.
    4. Facoltativo) Testare il recupero del database a grafo. Invia una query di test al database Neo4j per assicurarti che sia popolato correttamente e possa restituire i risultati attesi. Verificare che l'output corrisponda ai nodi e alle relazioni previsti nel database. Comando di esempio:
      python ./test/test_neo4j_retrieval.py --query "MATCH (n) RETURN n LIMIT 5"
    5. (Facoltativo) Testare il recupero del corpus RAG. Inviare una query di prova al corpus di testo RAG per assicurarsi che il sistema di recupero del testo funzioni. Verificare che i documenti recuperati siano pertinenti alla query e che gli incorporamenti funzionino come previsto. Comando di esempio: python ./test/test_literature_retrieval.py --query "Quali documenti sono relativi all'uso di beta-bloccanti per il trattamento delle malattie cardiovascolari?"
  3. Interagisci con RUGGED. Avviare RUGGED nell'interfaccia della riga di comando per interagire con il sistema. Esegui il comando 'python rugged.py'. Interroga il sistema per recuperare informazioni rilevanti utilizzando comandi specifici per interagire con il grafo della conoscenza e il corpus di testo.
    1. Interroga il grafo della conoscenza. Estrai informazioni specifiche dal grafo della conoscenza ponendo la domanda in linguaggio naturale, a partire dalla parola chiave "query". Per esempio:
      domanda "Quali sono i farmaci attualmente prescritti classificati come beta-bloccanti, farmaci antiaritmici e farmaci antifibrotici?"
    2. Esplora le previsioni. Esplora le analisi di previsione dei link dal passaggio 3 e chiedi di cercare una relazione specifica, iniziando con la parola chiave "prevedere". Per esempio:
      prevedi, "Quale di questi farmaci potrebbe potenzialmente essere usato per trattare l'ACM e/o la DCM che non è attualmente noto?"
    3. Esplora il recupero della letteratura. Esplora i documenti relativi a uno specifico argomento biomedico dal passaggio 2. Poni la domanda in linguaggio naturale, iniziando con la parola chiave "ricerca". Per esempio:
      cerca, "Quali prove in letteratura supportano l'affermazione che questi farmaci previsti potrebbero essere utilizzati per trattare ACM e/o DCM?"
    4. Eseguire l'iterazione e perfezionare la query. Rispondi direttamente nella riga di comando per iterare e perfezionare le richieste utilizzando l'interfaccia simile a una chat di RUGGED. Fare riferimento alle precedenti conversazioni utente-sistema per rivedere e perfezionare le domande e le query.
    5. Esegui nuovamente i comandi di crittografia in Neo4j. (Facoltativo) Perfeziona i risultati della query del Knowledge Graph regolando il comando Cypher fornito per recuperare le informazioni. Esegui nuovamente o modifica questo comando visitando l'interfaccia del browser Neo4j dal passaggio 1.4.4 (ad esempio, in http://localhost:7474). Incolla e modifica i comandi Cypher in base alle esigenze per perfezionare le query e raccogliere informazioni più specifiche.
    6. Riassumi la conversazione. Rivedi le informazioni recuperate e riassumi la conversazione con RUGGED. Digitare la parola chiave summarize per visualizzare un riepilogo dell'interazione in un file di testo per un'analisi successiva. La risposta full-text verrà visualizzata nel terminale.
    7. Condurre una revisione human-in-the-loop per migliorare l'accuratezza dell'output ispezionando e modificando le risposte del sistema per verificarne la leggibilità e la brevità prima di finalizzare il riepilogo.
    8. Rivedi i registri delle chat. Esamina il testo completo dell'interazione nella cartella di registro in RUGGED. Conserva questi comandi intermedi e le conversazioni tra gli agenti LLM all'interno di RUGGED per la risoluzione dei problemi e la riproducibilità.
  4. Spegnimento e riavvio RUGGED.
    1. Ottenere gli ID dei contenitori Docker. Utilizzare il comando 'docker ps' per elencare tutti i container in esecuzione e ottenere gli ID dei container per RUGGED, Neo4j e Ollama. Per tutti i comandi seguenti, sostituire , e con gli ID contenitore effettivi.
    2. Arrestare i contenitori Docker. Arresta RUGGED e i container Docker associati utilizzando i relativi ID container.
      docker stop
      docker stop
      docker stop
      NOTA: Si consiglia di arrestare questi contenitori prima di spegnere il dispositivo per prevenire potenziali perdite di dati e garantire che tutti i processi si chiudano correttamente.
    3. Riavviare i contenitori Docker. Per riavviare il sistema RUGGED, utilizzare gli ID dei container per avviare i container Docker necessari.
      docker start
      docker start
      docker start
    4. Riconnettersi alla rete Docker. Se necessario, utilizzare questi comandi per ricollegare i contenitori alla rete.
      Docker Network Connect rugged_network
      Docker Network Connect rugged_network
      Connessione di rete Docker rugged_network
    5. Verificare la funzionalità del servizio. Al riavvio, ripetere i passaggi 1.4-1.5 per assicurarsi che il software funzioni come previsto.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Questi risultati rappresentativi sono stati ottenuti seguendo la procedura descritta in questo protocollo. È stata eseguita un'analisi di associazione di text mining seguendo il protocollo CaseOLAP LIFT5 con parametri predefiniti, studiando otto ampie categorie di malattie cardiovascolari72 e la loro associazione con le proteine mitocondriali (GO:0005739). In totale, fino a maggio 2024 sono state rilevate 635.696 segnalazioni rilevanti per queste malattie; Tra questi, sono state identificate 4.655 associazioni proteina-malattia ad alta confidenza per informare le analisi a valle. Nel maggio 2024 9 è stato costruito un grafo della conoscenza biomedica utilizzando il codice software di Know2BIO utilizzando le impostazioni predefinite. Il grafo della conoscenza risultante è costituito da 219.450 nodi, 6.323.257 spigoli, nonché caratteristiche dei nodi per 189.493 nodi con descrizioni dei nodi, sequenze di proteine/geni, struttura chimica, ecc. ove disponibili. Una stima del tempo di calcolo per tutte le fasi del protocollo è presentata nella Tabella 1.

Il sistema RUGGED è stato inizializzato costruendo i database vettoriali sia per i nodi e le caratteristiche del grafo della conoscenza, sia per le pubblicazioni rilevanti per le CVD. Tutti i nodi, gli archi e le caratteristiche dei nodi del knowledge graph sono stati elaborati con una dimensione del blocco di 20 token con il modello di incorporamento BART71 per prepararsi alla ricerca vettoriale RAG. Allo stesso modo, i contributi originali e gli articoli di revisione sono stati elaborati utilizzando una dimensione del blocco di 500 token e il modello di incorporamento BART per prepararsi alla ricerca vettoriale RAG. Per il recupero della letteratura, le pubblicazioni full-text superiori a 500 token sono state riassunte gerarchicamente in base alle singole sezioni di una pubblicazione dal modello di incorporamento BART. Il modello GPT-4o è stato utilizzato per i restanti agenti LLM nel sistema.

Questi risultati rappresentativi mostrano un caso d'uso esemplificativo per studiare potenziali terapie farmacologiche per la cardiomiopatia aritmogena (ACM) e la cardiomiopatia dilatativa (DCM), identificate rispettivamente come MeSH_Disease: D019571 e MeSH_Disease: D002311. Una serie di domande è delineata nella Figura 3, con esempi evidenziati di risposte al modello mostrate nella Figura 4 e una risposta completa riportata nel File supplementare 1, Sezione A. La direzione dell'indagine è stata adattata alle risposte convalidate dallo sperimentatore, elaborando query successive basate sui risultati delle risposte precedenti. L'analisi ha rivelato 11 farmaci candidati classificati sotto beta-bloccanti e antiaritmici. Le nuove vie per il trattamento terapeutico sono state valutate utilizzando un modello di previsione dei collegamenti di rete neurale convoluzionale a grafo su un sottoinsieme del grafo della conoscenza completo, compresi i nodi entro 1 salto dalla malattia oggetto dello studio e dai nodi dei farmaci e le loro interconnessioni, con metriche di valutazione riportate nella Tabella 4. I primi 10 archi rilevanti per ogni previsione del modello sono stati ulteriormente esaminati da un modulo di spiegabilità del grafo, GNNExplainer44, per identificare rispettivamente i nodi superiori e gli archi che contribuiscono a ciascuna previsione. Il costo totale dell'utilizzo di LLM commerciale per tutte le fasi del protocollo RUGGED per questo caso d'uso è stimato in $ 1,50 al momento della scrittura.

figure-results-1
Figura 1: Recupero nel flusso di lavoro RUGGED (Graph-Guided Explainable Disease Distinction). RUGGED è costituito da quattro componenti principali: (1) assemblaggio ed elaborazione di dati provenienti da risorse di provenienza etica e gestite professionalmente (ad esempio, PubMed e basi di conoscenza biomedica curate), (2) integrazione dei risultati della ricerca peer-reviewed in un grafo di conoscenza unificato, (3) strutturazione del testo e dei dati del grafo all'interno dei servizi di database, (4) modellazione e previsione di relazioni spiegabili tra entità biomediche all'interno del grafo della conoscenza, e (5) recuperare e sintetizzare le conoscenze attraverso un flusso di lavoro di Retrieval Augmented Generation (RAG) (Figura 2) per convalidare relazioni molecolari complesse ed esplorare le previsioni delle malattie guidate dall'intelligenza artificiale. L'utente può condurre una fase di revisione human-in-the-loop per migliorare l'accuratezza dell'output. Clicca qui per visualizzare una versione più grande di questa figura.

figure-results-2
Figura 2: Architettura di recupero e flusso di lavoro di mitigazione dei bias. Il framework Retrieval Augmented Generation (RAG) impiega più agenti LLM, ognuno dei quali esegue attività specifiche per supportare l'accesso alle informazioni pertinenti in base alla query dell'utente. Questo sistema fornisce prove documentate per l'agente di ragionamento basato su GPT rivolto all'utente, facilitando l'interazione utente-agente e la sintesi delle conoscenze. (1) Recupero di testi biomedici: i contributi originali e gli articoli di revisione sottoposti a revisione paritaria vengono filtrati in base alla loro rilevanza per la comprensione delle associazioni di malattie. Viene costruito un database vettoriale per le prove testuali convalidate dall'autore e dall'editore, ponderate in base alla sezione corrispondente della pubblicazione, rispettivamente: 70% Abstract, 10% Risultati, 10% Metadati e 10% per tutte le altre sottosezioni. Una ricerca per parole chiave e una ricerca per somiglianza rispetto al testo incorporato nella query dell'utente identificano insieme i documenti pertinenti. I riassunti di ciascun documento vengono generati utilizzando un riassunto basato su BERT, con l'agente di valutazione del testo basato su GPT che perfeziona la ricerca per convalidare la pertinenza del documento di query. (2) Recupero del Knowledge Graph: un modulo di riconoscimento delle entità denominate basato su BERT e di estrazione delle relazioni basato su GPT collega la query dell'utente alle entità pertinenti nel grafo della conoscenza. Una ricerca di somiglianza in un database vettoriale identifica i nodi e gli archi pertinenti. I dati vengono recuperati dal database Neo4j tramite query Cypher generate dal Cypher Query Agent basato su GPT e perfezionate dal Query Verification Agent. (3) Le risposte individuali delle pipeline di recupero del testo biomedico o di recupero del grafo della conoscenza vengono presentate all'agente di ragionamento, che sintetizza una risposta concisa con un pregiudizio minimo alla query dell'utente. Questo sistema è guidato a mantenere l'accuratezza e l'imparzialità nella presentazione delle informazioni fattuali. Clicca qui per visualizzare una versione più grande di questa figura.

figure-results-3
Figura 3: Caso d'uso sulla sintesi della conoscenza e l'esplorazione di ipotesi tramite cascata di query teriate. Questa figura mostra un caso d'uso evidenziato incentrato su una catena di domande e concetti correlati che un ricercatore e/o un operatore sanitario potrebbero porre al sistema RUGGED. Le query dell'utente vengono presentate al sistema in ordine numerico, con frecce che rappresentano il ragionamento logico e specifico del dominio dedotto tra ogni domanda. Il sistema recupera dalle informazioni implicite e pertinenti (la fonte è mostrata in blu), rispondendo alla query. Esempi di risposte del sistema sono presentati nella Figura 4. Clicca qui per visualizzare una versione più grande di questa figura.

figure-results-4
Figura 4: Caso d'uso di patologia cardiovascolare: chiarimento della patogenesi CVD. Vengono mostrate le coppie query-risposta tra l'utente e il sistema RUGGED. Nel pannello in alto a sinistra, le domande da 1 a 6 recuperano le informazioni estraendo le informazioni dal database del grafo della conoscenza per formulare risposte basate sull'evidenza. La domanda 7 utilizza una previsione spiegabile dei collegamenti grafici per identificare le terapie con il punteggio più alto. La query richiede un'analisi di previsione, che viene eseguita ed elaborata automaticamente dal sistema, e i risultati chiave vengono riassunti in modo succinto. La domanda 8 valuta le prove della letteratura dal corpus di dati testuali definiti che vengono recuperate come prove rilevanti per verificare, convalidare e corroborare il risultato previsto. Le risposte del sistema sono state esaminate da un processo di ispezione human-in-the-loop e modificate per verificarne la leggibilità e la brevità. Una trascrizione completa di questi risultati è dettagliata nel File supplementare 1. Clicca qui per visualizzare una versione più grande di questa figura.

PassiDescrizioneOre
Accesso alle conoscenze biomediche30% totale
Preparare un corpus di letteratura biomedicaConnettiti a PubMed e PubMed Central, scarica e analizza i dati di pubblicazione per le attività a valle.20%
Preparare i dati della knowledge baseConnettiti alle basi di conoscenza biomediche, scarica e analizza le informazioni necessarie per le attività a valle.5%
Estrazione di informazioni30% totale
Analisi del text mining di CaseOLAP LIFTIdentificare le relazioni di alto livello malattia-proteina all'interno del corpus di testi biomedici.25%
Costruzione del grafo della conoscenzaConnetti e integra informazioni disparate provenienti da basi di conoscenza biomediche in un grafo della conoscenza unificato.5%
Analisi delle previsioni10% totale
Train Graph Neural NetworkAddestra il modello sui dati del grafo della conoscenza biomedica per apprendere i modelli nascosti all'interno del grafo.5%
Analisi del ranking di pertinenzaApplica il modulo di spiegabilità per evidenziare i nodi e gli spigoli più pertinenti rilevanti per studiare la malattia.2.5%
Previsione dei collegamentiUtilizza il modulo di spiegabilità per identificare i nodi e gli archi chiave che contribuiscono a nuovi spigoli previsti.2.5%
Generazione e/o validazione di ipotesi30% totale
Configurazione del database per la generazione aumentata di recuperoInizializza il database a grafo per l'interrogazione del grafo della conoscenza e il database vettoriale per il recupero del testo.25%
Esplorazione di ipotesiConsenti all'utente di interagire con RUGGED per accedere e analizzare le informazioni rilevanti per l'esplorazione delle ipotesi.5%

Tabella 1: Flusso di lavoro e passaggi di limitazione della velocità. Questa tabella fornisce stime approssimative del tempo di calcolo necessario per ogni fase del flusso di lavoro. I passaggi limitanti includono l'accesso, l'estrazione e l'indicizzazione delle conoscenze biomediche necessarie per la generazione aumentata dal recupero. L'esplorazione delle ipotesi può essere ripetuta continuamente senza la necessità di rieseguire i passaggi di limitazione della velocità.

Categoria di malattiaNumeri dell'albero MeSH# PMID# Contributi originali# Articoli di recensione
Cardiomiopatie (CM)C14.280.238132,531102,33719,942
C14.280.434
Aritmie cardiache (ARR)C14.280.067125,28692,37413,854
C23.550.073
Difetti cardiaci congeniti (CHD)C14.280.40082,00654,0236,379
Malattie delle valvole cardiache (VD)C14.280.48472,01650,1195,743
Ischemia miocardica (IHD)C14.280.647256,986210,04230,223
Malattia del sistema di conduzione cardiaca (CCD)C14.280.12353,05035,3994,363
Ostruzione del deflusso ventricolare (VOO)C14.280.95522,24415,5041,686
Altre malattie cardiache (OTH)C14.280.195 C14.280.282 C14.280.383 C14.280.470 C14.280.945 C14.280.459 C14.280.720114,08577,30211,799
Totale635,696478,40469,690

Tabella 2: Statistiche della letteratura biomedica. Questa tabella descrive in dettaglio le categorie di malattie dello studio con i corrispondenti numeri dell'albero MeSH e il numero di documenti PubMed recuperati fino a maggio 2024, utilizzati come corpus per il text mining. Un sottoinsieme di queste pubblicazioni, costituito da articoli di ricerca originali e articoli di revisione, viene indicizzato in un database vettoriale per il recupero da parte di RUGGED durante la generazione di ipotesi.

CategoriaNumero di nodiNumero di spigoliFonte(i) dei dati
Anatomia5,049122,533Bgee, PubMed, MeSH, Uberon, 
Processo biologico27,047108,106Ontologia genetica
Componente cellulare4,05752,238Ontologia genetica
Composto27,2783,292,028DrugBank, MeSH, CTD, UMLS, KEGG, TTD, SIDER, Inxight Drugs, Hetionet, PathFX, MyChem.info
Malattia21,938311,773PubMed, MeSH, DisGeNET, SIDER, ClinVar, ClinGen, PharmGKB, MyDisease.info, PathFX, UMLS, OMIM, Mondo, DOID, KEGG
Classe di farmaci5,7218,283ATC
Gene29,810943,419HGNC, GRNdb, KEGG, ClinVar, ClinGen,
Funzione molecolare11,15147,086SMPDB, DisGENET, PharmGKB, MyGene.info
Andana52,012234,944Ontologia genetica
Proteina20,7401,074,809Reactome, KEGG, SMPDB
Reazione14,647128,038UniProt, Reactome, TTD, SMPDB, STRING, HGNC
Subtotale219,4506,323,257Reattoma
Associazioni di text-mining84,670
Totale219,4586,327,927

Tabella 3: Statistiche del grafo della conoscenza. Questa tabella descrive in dettaglio 11 ampie categorie biomediche che comprendono il grafo della conoscenza Know2BIO costruito, arricchito con ulteriori bordi derivati dall'analisi del text mining e dall'analisi predittiva. Il grafo della conoscenza e le previsioni risultanti sono gestiti dal database a grafo Neo4j per il recupero da parte di RUGGED durante la generazione di ipotesi.

AccuratezzaPrecisioneRicordarePunteggio F1AUROCAUPRC
Convalida0.71580.66390.87430.75470.84370.8637
Test0.7030.63670.94550.7610.89610.9094

Tabella 4: Valutazione del modello di IA spiegabile. Questa tabella riporta le metriche di valutazione per la previsione dei collegamenti del grafo della conoscenza utilizzando una rete neurale convoluzionale a due strati. Le metriche sono state valutate partizionando i bordi del grafico in set di dati di training per l'85%, per la convalida per il 5% e per il 10% in set di dati. L'accuratezza indica la proporzione di previsioni classificate correttamente. La precisione riporta la proporzione di previsioni positive corrette tra tutte le previsioni positive. Il richiamo misura la proporzione di previsioni positive corrette tra gli archi positivi effettivi. Il punteggio F1 è la media armonica della precisione e del richiamo, bilanciando le due metriche. AUROC valuta la capacità del modello di distinguere tra previsioni positive e negative. L'AUPRC quantifica il compromesso tra precisione e richiamo su diverse soglie. Con tutte le metriche, valori più alti indicano migliori prestazioni del modello.

Fascicolo supplementare 1: Questo file descrive in dettaglio la risposta completa del modello di RUGGED e un confronto con GPT-4o. La sezione A presenta l'interazione uomo-computer completa con RUGGED, ampliando l'approccio a catena di query delineato nella Figura 3 e fornendo la risposta completa oltre il riepilogo evidenziato nella Figura 4. La sezione B valuta le risposte di GPT-4o senza recupero rispetto a quelle di RUGGED, valutando attributi come precisione, profondità, punteggio di affidabilità, affidabilità delle prove e costi. Clicca qui per scaricare questo file.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Il protocollo RUGGED sfrutta i moderni modelli linguistici con informazioni aggiornate per consentire ai ricercatori di esplorare dinamicamente il panorama biomedico in evoluzione e scoprire nuove conoscenze. Questa interazione uomo-computer promuove un processo innovativo che esemplifica l'efficienza della macchina (RUGGED) e l'esperienza e il giudizio dell'investigatore. Questo protocollo è progettato per essere eseguito nella sequenza delineata. Il passaggio 1 descrive in dettaglio l'installazione del software. Le fasi 2 e 3 sono essenziali per la preparazione della letteratura e delle risorse biomediche, mentre la fase 4 indicizza queste informazioni per la generazione aumentata dal recupero e l'interazione dell'utente con il sistema LLM. I passaggi che richiedono molto tempo possono essere eseguiti contemporaneamente e/o in sequenza. Ad esempio, la creazione del grafico Neo4j (passaggio 4.2.2) può iniziare durante l'analisi predittiva (passaggio 3) e l'indicizzazione può iniziare dopo la costruzione del grafo della conoscenza (passaggio 2.3) e il text-mining (passaggio 2.1). Questi passaggi devono essere ripetuti per ottenere l'esito finale di questi risultati intermedi. Sebbene progettato per il recupero di informazioni biomediche, questo protocollo, con piccole modifiche, può gestire anche altri dati di testo e grafici, come dati interni, note cliniche o cartelle cliniche elettroniche. I dettagli sulla formattazione dei dati sono riportati nel passaggio 4.2.

Il funzionamento di questa piattaforma si basa sulla corretta installazione e interconnessione di diverse tecnologie, tra cui modelli linguistici, database a grafo e database vettoriali (vedi Tabella dei materiali). Per verificare che questi servizi siano installati e connessi correttamente, gli script di test vengono forniti nella cartella "test" all'interno del repository GitHub. I servizi esterni possono comportare dei costi, con prezzi soggetti a modifiche da parte del venditore. Questi servizi opzionali dispongono anche di alternative ospitate localmente, che richiedono solo risorse di calcolo sufficienti. Tuttavia, queste alternative possono influire sulle prestazioni e/o sulla praticità del modello, rendendole inadatte ad alcuni scenari di casi d'uso.

Con il panorama LLM in rapida evoluzione, vengono rilasciati regolarmente nuovi modelli di riferimento e modelli specifici per attività. Al momento della stesura di questo rapporto, sono stati scelti i modelli più appropriati per il compito. Gli utenti possono scegliere quale LLM utilizzare aggiornando il file di configurazione di conseguenza (vedere i passaggi 1.3.2-1.3.4). La selezione del modello dipende dalla loro rilevanza per un particolare caso d'uso. Ad esempio, l'integrazione di modelli incentrati sulla garanzia che le risposte dei modelli siano eque, censurate e prive di incitamento all'odio 73,74,75,76,77,78, in questo flusso di lavoro è essenziale per considerazioni etiche. Inoltre, l'ingegneria tempestiva è essenziale per guidare un comportamento affidabile e responsabile dall'LLM 79,80,81,82. I prompt creati per il flusso di lavoro RUGGED sono personalizzati in base ai modelli utilizzati e ai casi d'uso presentati. Per ottimizzare i prompt per un caso d'uso diverso, gli utenti possono modificare i prompt all'interno del flusso di lavoro RUGGED nella cartella "configuration" all'interno del file "prompts.json".

Mentre i sistemi RAG mirano a ridurre le allucinazioni negli LLM basando le risposte sull'evidenza, questi modelli possono ancora portare a informazioni imprecise o a risposte generalmente vere e non specifiche. Un confronto comparativo tra RUGGED e GPT-4o è fornito nel File supplementare 1, Sezione B. Le allucinazioni del modello si verificano spesso quando le informazioni recuperate superano la finestra di contesto del modello, analogamente alla demenza con perdita di memoria e incapacità di localizzare il contenuto dei dati, con conseguenti risposte imprecise 83,84,85. La scelta di un modello LLM adatto aiuta a mitigare questo problema. Ad esempio, GPT-4o ha un limite di contesto di 128k token, significativamente più alto del limite di 16k token di GPT-3.5 Turbo, anche se a un costo più elevato per l'utente. Inoltre, gli LLM messi a punto con conoscenze specifiche del dominio possono potenzialmente migliorare l'accuratezza e la specificità delle risposte nelle applicazioni biomediche 86,87,88. Nonostante queste misure, è essenziale effettuare un controllo incrociato delle informazioni prima di procedere con costosi esperimenti di laboratorio a umido.

RUGGED sfrutta l'intelligenza artificiale spiegabile all'interno di una pipeline RAG per esaminare le previsioni dei collegamenti, identificando sia le relazioni affidabili che quelle precedentemente non scoperte. Mentre i sistemi RAG tradizionali si basano sul recupero basato sulla somiglianza di massa, questo approccio collega la spiegabilità con un aumento mirato della risposta. La Tabella 4 evidenzia le ottime prestazioni del modello, dimostrando un elevato richiamo (convalida: 0,975 test: 0,976) e punteggi F1 bilanciati (convalida: 0,796, test: 0,797), indicando affidabilità nell'identificare i veri positivi, anche se con un tasso più elevato di falsi positivi. La robustezza del modello è ulteriormente supportata dai suoi valori AUROC (convalida: 0,963, test: 0,964) e AUPRC (convalida: 0,971, test: 0,972). La precisione (convalida: 0,673, test: 0,674), tuttavia, potrebbe trarre vantaggio dall'ottimizzazione della soglia, dall'incorporazione di funzionalità dettagliate dei nodi o da una migliore gestione dello squilibrio di classe. L'efficacia del modello dipende fortemente dal grafo della conoscenza dell'input; L'overfitting è un rischio con i grafi più piccoli, mentre i grafi più grandi richiedono maggiori risorse computazionali. Tuttavia, qualsiasi approccio basato sui RAG dipende in larga misura dalla qualità dei dati alla base del recupero. Ad esempio, la costruzione di un grafo della conoscenza è spesso dispendiosa in termini di tempo e lavoro a causa del rumore intrinseco sul grafo originale. Ciò richiede uno sforzo manuale per eliminare il rumore e l'etichettatura, nonché costi continui per la manutenzione e l'aggiornamento dei database.

L'uso principale di RUGGED è nella sintesi della conoscenza e nell'esplorazione di ipotesi. Studiando varie relazioni nascoste, come i meccanismi della malattia e i trattamenti farmacologici, RUGGED conduce in modo efficiente il triage della letteratura. Per ridurre il carico computazionale, la maggior parte delle applicazioni può essere ospitata su un server (ad esempio, AWS o server computazionale) e configurata per aggiornarsi periodicamente con le informazioni più recenti. Inoltre, questo flusso di lavoro può essere adattato per realizzare applicazioni specifiche del dominio, ad esempio fungendo da piattaforma per includere i dati dei pazienti con modelli locali per garantire la sicurezza, la privacy e la riservatezza. Oltre alla ricerca biomedica, il design modulare di RUGGED consente di supportare le attività di recupero, inferenza e sintesi delle informazioni, personalizzando la pipeline RAG e sollecitando strategie di ingegneria su misura per il dominio di destinazione. Il successo dell'adattamento richiede un'attenta considerazione delle sfide specifiche del settore, come la pre-elaborazione di diversi formati di dati e la valutazione dei modelli appropriati per le esigenze specifiche del compito e del dominio.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Gli autori non hanno nulla da rivelare.

Acknowledgements

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Gli autori desiderano ringraziare il Dr. Alex Bui per la sua guida e la sua attenta discussione. Inoltre, ringraziamo il Dr. Ding Wang per le sue utili discussioni. Questo lavoro è stato sostenuto in parte da NIH 1U54HG012517-01 a P.P., K.W. e W.W.; NIH T32 HL13945 ad A.R.P.; National Science Foundation Research Traineeship (NRT) 1829071 ad A.R.P.; e il TC Laubisch Endowment a P.P. presso l'UCLA.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
Hardware/Software - Scheda grafica e driver softwareSihttps://www.nvidia.comA e il software driver associato per ridurre significativamente il tempo di esecuzione per attività ad alta intensità di calcolo, come LLM locale e analisi predittive. Per i dispositivi dotati di una GPU NVIDIA RTX, scaricare e installare i driver necessari e CUDA Toolkit dal sito Web NVIDIA (https://developer.nvidia.com/cuda-downloads).
Software - Servizio commerciale di modelli linguistici di grandi dimensioniOpenAIhttps://openai.comRUGGED supporta l'API OpenAI per modelli come GPT-3.5 e GPT-4o. Per eseguire la configurazione utilizzando i modelli OpenAI, ottenere prima una chiave API OpenAI. Procedi al sito Web di OpenAI (https://openai.com/blog/openai-api) per creare un account, caricare fondi e ottenere una chiave API. Questa chiave API è necessaria per consentire a RUGGED di utilizzare i modelli OpenAI. Determina quali agenti LLM all'interno del sistema di RUGGED utilizzeranno i modelli OpenAI dalla loro documentazione (https://platform.openai.com/docs/models).
NOTA: OpenAI API è un servizio a pagamento. Al momento della pubblicazione, il costo per GPT-4o è di $ 5,00 per 1 milione di token di input e $ 2,50 per 1 milione di token di output (per ulteriori informazioni, visita https://openai.com/pricing).
Software - ContainerizzazioneDockerhttps://www.docker.comDocker aiuta a mantenere un ambiente di runtime computazionale coerente, semplificando l'installazione e l'esecuzione del software su macchine diverse. Per installare Docker, visita il sito Web di Docker (https://www.docker.com/), fai clic su "Inizia", scarica e installa la versione appropriata per il sistema operativo. Verifica l'installazione digitando "docker --version" nel terminale; L'installazione riuscita segnala la versione di Docker installata.
Software - Database a grafoNeo4jhttps://neo4j.comNeo4j è un software di database a grafo che gestisce e interroga in modo efficiente nodi e relazioni basati su grafi. RUGGED supporta Neo4j in più forme: contenitore Docker, Neo4j Desktop o server online Neo4j AuraDB. Scegli l'opzione più adatta al caso d'uso.
Configurazione di Neo4j come contenitore Docker. Esegui questi comandi per configurare Neo4j in Docker, con il percorso del file per la cartella (ad esempio, /Users/username/RUGGED) come 'PATH_TO_FOLDER'. Per maggiori dettagli sulla risoluzione dei problemi, fare riferimento al sito Web Neo4j Docker (https://hub.docker.com/_/neo4j).
docker pull neo4j
docker run – nome neo4j --net rugged_network --publish=7474:7474 --publish=7687:7687 -d -v 'PATH_TO_FOLDER'\neo4j\data:/data neo4j
NOTA: Inizializza Neo4j in Docker per la prima volta impostando un nome utente e una password. Esegui lo script neo4j_setup.py (ad esempio, python neo4j_setup.py) o tramite l'interfaccia web all'indirizzo http://localhost:7474.
Configurazione di Neo4j Desktop. Se si utilizza Neo4j Desktop, scaricare e installare dal sito Web di Neo4j (https://neo4j.com/). Crea un nuovo progetto facendo clic su "Nuovo", quindi fai clic su "Aggiungi" per creare un nuovo sistema di gestione del database (DBMS). Seleziona "DBMS locale", imposta una password, fai clic su "Crea", quindi fai clic su "Avvia". Un testo verde "ACTIVE" indica che è in esecuzione.
Configurazione di Neo4j AuraDB. Visita il sito Web di Neo4j all'indirizzo (https://neo4j.com/cloud/aura-free/) per creare un account e accedere. Selezionare "Nuova istanza" per creare un'istanza vuota e salvare l'URI e la password iniziale per accedere all'interfaccia bolt (ad esempio, bolt://myurl.neo4j.com). Fare clic sul pulsante di riproduzione per avviare l'istanza, che visualizzerà l'URI di connessione nella casella delle informazioni.
NOTA: Neo4j AuraDB offre un piano gratuito fino a 200.000 nodi e 400.000 relazioni. Per grafici più grandi, visita la pagina Prezzi di Neo4j (https://neo4j.com/pricing).
Software - Servizio locale di modelli in linguaggio di grandi dimensioniOllamahttps://ollama.comRUGGED supporta l'uso di modelli locali che utilizzano Ollama (ad esempio, Llama3). Per abilitarlo, installa prima Ollama sul dispositivo o scarica il contenitore Docker. Per installare Ollama, visitare il sito Web di Ollama (https://ollama.com/download) e seguire le istruzioni di installazione. Per installare Ollama su Docker, eseguire il seguente comando:
docker pull ollama/ollama
NOTA: Al momento della pubblicazione, non esiste una versione stabile per Ollama sul sistema operativo Windows.
Software - Controllo della versioneGithttps://www.git-scm.comIl software di controllo della versione consente un'installazione e un aggiornamento efficienti del software. Per installare Git, visita il sito Web Git (https://www.git-scm.com/), fai clic su "Download", scarica e installa la versione appropriata per il sistema operativo. Verifica l'installazione digitando "git --version" nel terminale; l'installazione riuscita riporterà la versione di Git installata.
consiglia vivamente di utilizzare la scheda grafica Nvidia

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Bioinformatics in translational drug discovery. Biosci Rep. 37 (4), BSR20160180(2017).">Wooller, S. K., Benstead-Hume, G., Chen, X., Ali, Y., Pearl, F. M. G. Bioinformatics in translational drug discovery. Biosci Rep. 37 (4), BSR20160180(2017).
  2. Computational approaches streamlining drug discovery. Nature. 616 (7958), 673-685 (2023).">Sadybekov, A. V., Katritch, V. Computational approaches streamlining drug discovery. Nature. 616 (7958), 673-685 (2023).
  3. Systematic integration of biomedical knowledge prioritizes drugs for repurposing. eLife. 6, e26726(2017).">Himmelstein, D. S., et al. Systematic integration of biomedical knowledge prioritizes drugs for repurposing. eLife. 6, e26726(2017).
  4. Text mining and expert curation to develop a database on psychiatric diseases and their genes. Database (Oxford). 2017, bax043(2017).">Gutiérrez-Sacristán, A., et al. Text mining and expert curation to develop a database on psychiatric diseases and their genes. Database (Oxford). 2017, bax043(2017).
  5. A knowledge graph approach to elucidate the role of organellar pathways in disease via biomedical reports. J Vis Exp. (200), e65084(2023).">Pelletier, A. R., et al. A knowledge graph approach to elucidate the role of organellar pathways in disease via biomedical reports. J Vis Exp. (200), e65084(2023).
  6. A knowledge graph to interpret clinical proteomics data. Nat Biotechnol. 40 (5), 692-702 (2022).">Santos, A., et al. A knowledge graph to interpret clinical proteomics data. Nat Biotechnol. 40 (5), 692-702 (2022).
  7. PharmKG: A dedicated knowledge graph benchmark for bomedical data mining. Briefings in Bioinformatics. 22 (4), bbaa344(2021).">Zheng, S., et al. PharmKG: A dedicated knowledge graph benchmark for bomedical data mining. Briefings in Bioinformatics. 22 (4), bbaa344(2021).
  8. Biomedical knowledge graph-optimized prompt generation for large language models. Bioinformatics. 40 (9), btae560(2023).">Soman, K., et al. Biomedical knowledge graph-optimized prompt generation for large language models. Bioinformatics. 40 (9), btae560(2023).
  9. ArXiv. , (2023).">Xiao, Y., et al. Know2BIO: A comprehensive dual-view benchmark for evolving biomedical knowledge graphs. ArXiv. , (2023).
  10. Large language models in medicine. Nat Med. 29 (8), 1930-1940 (2023).">Thirunavukarasu, A. J., et al. Large language models in medicine. Nat Med. 29 (8), 1930-1940 (2023).
  11. ArXiv. , (2023).">Lehman, E., et al. Do we still need clinical language models. ArXiv. , (2023).
  12. Large language models encode clinical knowledge. Nature. 620, 172-180 (2022).">Singhal, K., et al. Large language models encode clinical knowledge. Nature. 620, 172-180 (2022).
  13. ArXiv. , (2022).">Agrawal, M., Hegselmann, S., Lang, H., Kim, Y., Sontag, D. Large language models are few-shot clinical information extractors. ArXiv. , (2022).
  14. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the Chat-GPT model. Res Sq. , (2023).">Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the Chat-GPT model. Res Sq. , (2023).
  15. Evaluation of ChatGPT on biomedical tasks: A zero-shot comparison with fine-tuned generative transformers. Jahan, I., Laskar, M. T. R., Peng, C., Huang, J. The 22nd Workshop on Biomedical Natural Language Processing and BioNLP Shared Tasks, , 326-336 (2023).
  16. Assessing the accuracy of responses by the language model ChatGPT to questions regarding bariatric surgery. Obes Surg. 33 (6), 1790-1796 (2023).">Samaan, J. S., et al. Assessing the accuracy of responses by the language model ChatGPT to questions regarding bariatric surgery. Obes Surg. 33 (6), 1790-1796 (2023).
  17. Trialling a large language model (ChatGPT) in general practice with the applied knowledge test: observational study demonstrating opportunities and limitations in primary care. JMIR Med Educ. 9, e46599(2023).">Thirunavukarasu, A. J., et al. Trialling a large language model (ChatGPT) in general practice with the applied knowledge test: observational study demonstrating opportunities and limitations in primary care. JMIR Med Educ. 9, e46599(2023).
  18. ArXiv. , (2023).">Sun, W., et al. Is ChatGPT Good at search? Investigating large language models as re-ranking agents. ArXiv. , (2023).
  19. ArXiv. , (2023).">Xu, R., Feng, Y., Chen, H. ChatGPT vs. Google: A comparative study of search performance and user experience. ArXiv. , (2023).
  20. TruthfulQA: Measuring how models mimic human falsehoods. Lin, S., Hilton, J., Evans, O. Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers, , 3214-3252 (2022).
  21. ArXiv. , (2023).">Manakul, P., Liusie, A., Gales, M. J. F. SelfCheckGPT: Zero-resource black-box hallucination detection for generative large language models. ArXiv. , (2023).
  22. FActScore: Fine-grained atomic evaluation of factual precision in long form text generation. Min, S., et al. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, , 12076-12100 (2023).
  23. Is ChatGPT fair for recommendation? Evaluating fairness in large language model recommendation. Proceedings of the 17th ACM Conference on Recommender Systems. , 993-999 (2023).">Zhang, J., et al. Is ChatGPT fair for recommendation? Evaluating fairness in large language model recommendation. Proceedings of the 17th ACM Conference on Recommender Systems. , 993-999 (2023).
  24. Building an ethical and trustworthy biomedical AI ecosystem for the translational and clinical integration of foundation models. Bioengineering. 11 (10), 984(2024).">Sankar, B. S., et al. Building an ethical and trustworthy biomedical AI ecosystem for the translational and clinical integration of foundation models. Bioengineering. 11 (10), 984(2024).
  25. ChatGPT and Other large language models are double-edged swords. Radiology. 307 (2), e230163(2023).">Shen, Y., et al. ChatGPT and Other large language models are double-edged swords. Radiology. 307 (2), e230163(2023).
  26. Ethics of large language models in medicine and medical research. Lancet Digit Health. 5 (6), e333-e335 (2023).">Li, H., et al. Ethics of large language models in medicine and medical research. Lancet Digit Health. 5 (6), e333-e335 (2023).
  27. ArXiv. , (2020).">Lewis, P., et al. Retrieval-augmented generation for knowledge-intensive NLP tasks. ArXiv. , (2020).
  28. ArXiv. , (2023).">Gao, Y., et al. Retrieval-augmented generation for large language models: A survey. ArXiv. , (2023).
  29. PubTator central: Automated concept annotation for biomedical full text articles. Nucleic Acids Res. 47 (W1), W587-W593 (2019).">Wei, C. -H., Allot, A., Leaman, R., Lu, Z. PubTator central: Automated concept annotation for biomedical full text articles. Nucleic Acids Res. 47 (W1), W587-W593 (2019).
  30. ArXiv. , (2024).">Wei, C. -H., et al. PubTator 3.0: An AI-powered literature resource for unlocking biomedical knowledge. ArXiv. , (2024).
  31. Comparative Reasoning for knowledge graph fact checking. Liu, L., Ji, H., Xu, J., Tong, H. 2022 IEEE International Conference on Big Data (Big Data), , 2309-2312 (2022).
  32. Knowledge Graph reasoning and its applications. Liu, L., Tong, H. Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, , 5813-5814 (2023).
  33. ArXiv. , (2024).">Liu, L., et al. Logic query of thoughts: Guiding large language models to answer complex logic queries with knowledge graphs. ArXiv. , (2024).
  34. Barack's wife hillary: Using Knowledge graphs for fact-aware language modeling. Logan, R., Liu, N. F., Peters, M. E., Gardner, M., Singh, S. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, , 5962-5971 (2019).
  35. ArXiv. , (2024).">Sun, J., et al. Think-on-graph: Deep and responsible reasoning of large language model on knowledge graph. ArXiv. , (2024).
  36. ArXiv. , (2024).">Wen, Y., Wang, Z., Sun, J. MindMap: Knowledge Graph prompting sparks graph of thoughts in large language models. ArXiv. , (2024).
  37. ArXiv. , (2020).">Wang, C., Liu, X., Song, D. Language models are open knowledge graphs. ArXiv. , (2020).
  38. QA-GNN: Reasoning with Language Models and Knowledge Graphs for Question Answering. Yasunaga, M., Ren, H., Bosselut, A., Liang, P., Leskovec, J. Proceedings of the 2021 Conference of the North American Chapter of the, , 535-546 (2021).
  39. SimKGC: Simple contrastive knowledge graph completion with pre-trained language models. Wang, L., Zhao, W., Wei, Z., Liu, J. Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers, , 4281-4294 (2022).
  40. FLAIRS. 36, (2023).">Lazar, A. Graph neural networks for link prediction. FLAIRS. 36, (2023).
  41. ArXiv. , (2018).">Zhang, M., Chen, Y. Link prediction based on graph neural networks. ArXiv. , (2018).
  42. XGNN: Towards model-level explanations of graph neural networks. Yuan, H., Tang, J., Hu, X., Ji, S. Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, , (2020).
  43. CFGExplainer: Explaining graph neural network-based malware classification from control flow graphs. Herath, J. D., Wakodikar, P., Yang, P., Yan, G. 2022 52nd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), , 172-184 (2022).
  44. GNNExplainer: Generating explanations for graph neural networks. Adv Neural Inf Process Syst. 32, 9240-9251 (2019).">Ying, R., Bourgeois, D., You, J., Zitnik, M., Leskovec, J. GNNExplainer: Generating explanations for graph neural networks. Adv Neural Inf Process Syst. 32, 9240-9251 (2019).
  45. The Bgee suite: Integrated curated expression atlas and comparative transcriptomics in animals. Nucleic Acids Res. 49 (D1), D831-D847 (2021).">Bastian, F. B., et al. The Bgee suite: Integrated curated expression atlas and comparative transcriptomics in animals. Nucleic Acids Res. 49 (D1), D831-D847 (2021).
  46. Comparative Toxicogenomics Database (CTD): Update 2023. Nucleic Acids Res. 51 (D1), D1257-D1262 (2023).">Davis, A. P., et al. Comparative Toxicogenomics Database (CTD): Update 2023. Nucleic Acids Res. 51 (D1), D1257-D1262 (2023).
  47. ClinGen - The clinical genome resource. N Engl J Med. 372 (23), 2235-2242 (2015).">Rehm, H. L., et al. ClinGen - The clinical genome resource. N Engl J Med. 372 (23), 2235-2242 (2015).
  48. ClinVar: Improvements to accessing data. Nucleic Acids Res. 48 (D1), D835-D844 (2020).">Landrum, M. J., et al. ClinVar: Improvements to accessing data. Nucleic Acids Res. 48 (D1), D835-D844 (2020).
  49. The human disease ontology 2022 update. Nucleic Acids Res. 50 (D1), D1255-D1261 (2022).">Schriml, L. M., et al. The human disease ontology 2022 update. Nucleic Acids Res. 50 (D1), D1255-D1261 (2022).
  50. The DisGeNET cytoscape app: Exploring and visualizing disease genomics data. Comput Struct Biotechnol J. 19, 2960-2967 (2021).">Piñero, J., Saüch, J., Sanz, F., Furlong, L. I. The DisGeNET cytoscape app: Exploring and visualizing disease genomics data. Comput Struct Biotechnol J. 19, 2960-2967 (2021).
  51. DrugBank 6.0: The DrugBank knowledgebase for 2024. Nucleic Acids Res. 52 (D1), D1265-D1275 (2024).">Knox, C., et al. DrugBank 6.0: The DrugBank knowledgebase for 2024. Nucleic Acids Res. 52 (D1), D1265-D1275 (2024).
  52. GRNdb: Decoding the gene regulatory networks in diverse human and mouse conditions. Nucleic Acids Res. 49 (D1), D97-D103 (2021).">Fang, L., et al. GRNdb: Decoding the gene regulatory networks in diverse human and mouse conditions. Nucleic Acids Res. 49 (D1), D97-D103 (2021).
  53. The Gene Ontology resource: enriching a GOld mine. Nucleic Acids Res. 49 (D1), D325-D334 (2021).">Gene Ontology Consortium. The Gene Ontology resource: enriching a GOld mine. Nucleic Acids Res. 49 (D1), D325-D334 (2021).
  54. Genenames.org: The HGNC resources in 2023. Nucleic Acids Res. 51 (D1), D1003-D1009 (2023).">Seal, R. L., et al. Genenames.org: The HGNC resources in 2023. Nucleic Acids Res. 51 (D1), D1003-D1009 (2023).
  55. NCATS Inxight Drugs: A comprehensive and curated portal for translational research. Nucleic Acids Res. 50 (D1), D1307-D1316 (2022).">Siramshetty, V. B., et al. NCATS Inxight Drugs: A comprehensive and curated portal for translational research. Nucleic Acids Res. 50 (D1), D1307-D1316 (2022).
  56. KEGG: New perspectives on genomes, pathways, diseases and drugs. Nucleic Acids Res. 45 (D1), D353-D361 (2017).">Kanehisa, M., Furumichi, M., Tanabe, M., Sato, Y., Morishima, K. KEGG: New perspectives on genomes, pathways, diseases and drugs. Nucleic Acids Res. 45 (D1), D353-D361 (2017).
  57. Medical Subject Headings (MeSH). Bull Med Libr Assoc. 88 (3), 265-266 (2000).">Lipscomb, C. E. Medical Subject Headings (MeSH). Bull Med Libr Assoc. 88 (3), 265-266 (2000).
  58. medRxiv. , (2022).">Vasilevsky, N. A., et al. Mondo: Unifying diseases for the world, by the world. medRxiv. , (2022).
  59. BioThings SDK: A toolkit for building high-performance data APIs in biomedical research. Bioinformatics. 38 (7), 2077-2079 (2022).">Lelong, S., et al. BioThings SDK: A toolkit for building high-performance data APIs in biomedical research. Bioinformatics. 38 (7), 2077-2079 (2022).
  60. OMIM.org: Leveraging knowledge across phenotype-gene relationships. Nucleic Acids Res. 47 (D1), D1038-D1043 (2019).">Amberger, J. S., Bocchini, C. A., Scott, A. F., Hamosh, A. OMIM.org: Leveraging knowledge across phenotype-gene relationships. Nucleic Acids Res. 47 (D1), D1038-D1043 (2019).
  61. PathFX provides mechanistic insights into drug efficacy and safety for regulatory review and therapeutic development. PLoS Comput Biol. 14 (12), e1006614(2018).">Wilson, J. L., et al. PathFX provides mechanistic insights into drug efficacy and safety for regulatory review and therapeutic development. PLoS Comput Biol. 14 (12), e1006614(2018).
  62. PharmGKB, an Integrated resource of pharmacogenomic knowledge. Curr Protoc. 1 (8), e226(2021).">Gong, L., Whirl-Carrillo, M., Klein, T. E. PharmGKB, an Integrated resource of pharmacogenomic knowledge. Curr Protoc. 1 (8), e226(2021).
  63. The reactome pathway knowledgebase 2022. Nucleic Acids Res. 50 (D1), D687-D692 (2022).">Gillespie, M., et al. The reactome pathway knowledgebase 2022. Nucleic Acids Res. 50 (D1), D687-D692 (2022).
  64. The SIDER database of drugs and side effects. Nucleic Acids Res. 44 (D1), D1075-D1079 (2016).">Kuhn, M., Letunic, I., Jensen, L. J., Bork, P. The SIDER database of drugs and side effects. Nucleic Acids Res. 44 (D1), D1075-D1079 (2016).
  65. SMPDB 2.0: Big improvements to the small molecule pathway database. Nucleic Acids Res. 42 (Database issue), D478-D484 (2014).">Jewison, T., et al. SMPDB 2.0: Big improvements to the small molecule pathway database. Nucleic Acids Res. 42 (Database issue), D478-D484 (2014).
  66. STRING v11: Protein-protein association networks with increased coverage, supporting functional discovery in genome-wide experimental datasets. Nucleic Acids Res. 47 (D1), D607-D613 (2019).">Szklarczyk, D., et al. STRING v11: Protein-protein association networks with increased coverage, supporting functional discovery in genome-wide experimental datasets. Nucleic Acids Res. 47 (D1), D607-D613 (2019).
  67. Therapeutic target database update 2022: Facilitating drug discovery with enriched comparative data of targeted agents. Nucleic Acids Res. 50 (D1), D1398-D1407 (2022).">Zhou, Y., et al. Therapeutic target database update 2022: Facilitating drug discovery with enriched comparative data of targeted agents. Nucleic Acids Res. 50 (D1), D1398-D1407 (2022).
  68. The Unified Medical Language System (UMLS): Integrating biomedical terminology. Nucleic Acids Res. 32 (Database issue), D267-D270 (2004).">Bodenreider, O. The Unified Medical Language System (UMLS): Integrating biomedical terminology. Nucleic Acids Res. 32 (Database issue), D267-D270 (2004).
  69. Unification of multi-species vertebrate anatomy ontologies for comparative biology in Uberon. J Biomed Semantics. 5, 21(2014).">Haendel, M. A., et al. Unification of multi-species vertebrate anatomy ontologies for comparative biology in Uberon. J Biomed Semantics. 5, 21(2014).
  70. UniProt: the Universal Protein Knowledgebase in 2023. Nucleic Acids Res. 51 (D1), D523-D531 (2023).">UniProt Consortium. UniProt: the Universal Protein Knowledgebase in 2023. Nucleic Acids Res. 51 (D1), D523-D531 (2023).
  71. Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension. Lewis, M., et al. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, , 7871-7880 (2020).
  72. Cloud-based phrase mining and analysis of user-defined phrase-category association in biomedical publications. J Vis Exp. (144), e59108(2019).">Sigdel, D., et al. Cloud-based phrase mining and analysis of user-defined phrase-category association in biomedical publications. J Vis Exp. (144), e59108(2019).
  73. FM. ArXiv. , (2023).">Ferrara, E. Should ChatGPT be biased? Challenges and risks of bias in large language models. FM. ArXiv. , (2023).
  74. ArXiv. , (2023).">Gallegos, I. O., et al. Bias and fairness in large language models: A Survey. ArXiv. , (2023).
  75. Fighting reviewer fatigue or amplifying bias? Considerations and recommendations for use of ChatGPT and other large language models in scholarly peer review. Res Integr Peer Rev. 8 (1), 4(2023).">Hosseini, M., Horbach, S. P. J. M. Fighting reviewer fatigue or amplifying bias? Considerations and recommendations for use of ChatGPT and other large language models in scholarly peer review. Res Integr Peer Rev. 8 (1), 4(2023).
  76. Kotek, H., Dockum, R., Sun, D. Gender bias and stereotypes in Large Language Models. Proceedings of The ACM Collective Intelligence Conference, , 12-24 (2023).
  77. Prompting techniques for reducing social bias in LLMs through System 1 and System 2 Cognitive Processes. ArXiv. , (2024).">Kamruzzaman, M., Kim, G. L. Prompting techniques for reducing social bias in LLMs through System 1 and System 2 Cognitive Processes. ArXiv. , (2024).
  78. ArXiv. , (2024).">Raza, S., Raval, A., Chatrath, V. MBIAS: Mitigating bias in large language models while retaining context. ArXiv. , (2024).
  79. ArXiv. , (2023).">Chen, B., Zhang, Z., Langrené, N., Zhu, S. Unleashing the potential of prompt engineering in Large Language Models: A comprehensive review. ArXiv. , (2023).
  80. ArXiv. , (2023).">White, J., et al. A prompt pattern catalog to enhance prompt engineering with ChatGPT. ArXiv. , (2023).
  81. Prompt engineering as an important emerging skill for medical professionals: Tutorial. J Med Internet Res. 25, e50638(2023).">Meskó, B. Prompt engineering as an important emerging skill for medical professionals: Tutorial. J Med Internet Res. 25, e50638(2023).
  82. ArXiv. , (2023).">Wang, J., et al. Prompt Engineering for Healthcare: Methodologies and applications. ArXiv. , (2023).
  83. ArXiv. , (2023).">Luo, Y., et al. An empirical study of catastrophic forgetting in large language models during continual fine-tuning. ArXiv. , (2023).
  84. Retrieval meets Long Context Large Language Models. ArXiv. , (2023).">Xu, P., et al. Retrieval meets Long Context Large Language Models. ArXiv. , (2023).
  85. ArXiv. , (2023).">Chen, S., Wong, S., Chen, L., Tian, Y. Extending context window of Large Language Models via positional interpolation. ArXiv. , (2023).
  86. ArXiv. , (2024).">Labrak, Y., et al. BioMistral: A collection of open-source pretrained large language models for medical domains. ArXiv. , (2024).
  87. BioGPT: Generative pre-trained transformer for biomedical text generation and mining. Brief Bioinform. 23 (6), bbac409(2022).">Luo, R., et al. BioGPT: Generative pre-trained transformer for biomedical text generation and mining. Brief Bioinform. 23 (6), bbac409(2022).
  88. ArXiv. , (2024).">Wang, C., et al. A survey for large language models in biomedicine. ArXiv. , (2024).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Biomedical Knowledge BasesExplainable AIKnowledge GraphRetrieval Augmented GenerationLarge Language ModelsText Mining AnalysisHypothesis ValidationDrug Disease RelationshipsAgentic SystemsCardiomyopathy Therapeutics

Related Articles