Läkemedelsupptäckt är en komplex och tidskrävande process som innefattar att identifiera lovande kemiska föreningar som kan interagera med biologiska mål för att behandla sjukdomar. Den traditionella vägen från idé till godkänt läkemedel är lång, dyr och präglas av höga misslyckandegrader, ofta upp till 90 % för de läkemedelskandidater som når klinisk prövning. Den ekonomiska bördan är också betydande; uppskattningsvis kostar det mellan 1 och 3 miljarder dollar och 10 till 15 år att utveckla ett läkemedel, varav en stor del går åt till att utforska experimentella vägar som visar sig vara dödsdömda. Här kommer maskininlärning (ML) och djupinlärning (DL) in som ett kraftfullt verktyg för att snabba upp prototyputveckling och screening av läkemedelskandidater.

Maskininlärning har visat sig vara ovärderligt för att förutsäga molekylära egenskaper, generera nya kemiska strukturer, förutsäga kemiska reaktioner och till och med lösa problem inom proteinveckning. Ett exempel på detta är DeepMind’s AlphaFold, som på ett revolutionerande sätt förutsäger proteiners tredimensionella struktur från aminosyrasekvenser, vilket har haft en enorm inverkan på strukturell biologi och läkemedelsutveckling. Förutsägelsen av proteinstrukturer är avgörande för att förstå hur läkemedel kan interagera med biologiska mål och är en av de mest spännande framstegen inom området. I boken kommer vi att djupt dyka i dessa tillämpningar och undersöka hur de fungerar och hur vi kan tillämpa dem i praktiken.

Läkemedelsupptäckt kan ses som ett extremt svåråtkomligt sökproblem. För att illustrera denna utmaning kan vi tänka oss att vi söker efter en nål i en höstack, där varje molekyl vi letar efter måste interagera på rätt sätt med ett biologiskt mål. Det kemiska sökutrymmet är enormt – det uppskattas finnas 10^63 möjliga läkemedelsliknande molekyler. För att sätta det i perspektiv, finns det endast 10^24 sandkorn på jorden. Att undersöka varje sandkorn en och en, för att sedan göra om det 10^39 gånger, ger oss en känsla för hur oändligt stort det kemiska sökutrymmet är.

Det biologiska sökutrymmet är också stort, och består av cirka 10^5 kända humana proteiner och deras varianter som kan uppstå genom alternativ splitsning eller post-translationella modifieringar. Dessa proteiner är de biologiska mål som vi vill att våra läkemedelsliknande molekyler ska binda till för att framkalla en medicinsk effekt, antingen avsedd eller oavsedd. Läkemedelsupptäckt finns i skärningspunkten mellan det kemiska sökutrymmet för medicinska föreningar och det biologiska sökutrymmet för målproteiner.

Maskininlärning och djupinlärning spelar en avgörande roll i att navigera detta oändliga landskap. Genom att använda dessa metoder kan vi snabbt filtrera genom miljontals potentiella läkemedelskandidater och identifiera de mest lovande för vidare undersökning. En av de största fördelarna med dessa teknologier är deras förmåga att hantera enorma mängder data och extrahera mönster som människor inte enkelt kan upptäcka.

Det finns flera metoder för att tillämpa maskininlärning i läkemedelsupptäckt. En av de vanligaste är ligand-baserad screening, där man söker efter kemiska föreningar som liknar en känd ligand och kan binda till samma biologiska mål. Här används tekniker som likhetsbaserade sökningar och filtrering för att effektivt snäva av urvalet. En annan metod är användning av generativa modeller för de novo design, där nya kemiska strukturer skapas från grunden för att passa specifika biologiska mål. Detta tillvägagångssätt är särskilt användbart när man letar efter läkemedel för svårbehandlade sjukdomar, där det inte finns någon känd molekyl att bygga vidare på.

En ytterligare teknik som används är aktiv inlärning, som kombinerar maskininlärning med struktur-baserad läkemedelsdesign. Denna metod kan iterativt förbättra sin förmåga att förutsäga vilka molekyler som kommer att binda till ett specifikt målprotein. Genom att använda en aktiv lärande-algoritm kan forskare snabbt fokusera på de mest lovande kandidaterna, vilket sparar både tid och resurser.

När det gäller att förutsäga molekylära egenskaper, spelar linjära modeller en viktig roll, särskilt i relation till löslighet, som är en av de mest kritiska faktorerna för läkemedelsutveckling. Genom att använda modeller för att förutsäga hur en molekyl kommer att lösa sig i olika lösningsmedel kan forskare effektivt filtrera bort de molekyler som inte är lämpliga för vidare utveckling.

Förutom de tekniska aspekterna av maskininlärning är det också viktigt att förstå de grundläggande principerna för de biologiska processer som läkemedelsutveckling försöker påverka. Många av de största framstegen inom läkemedelsforskning har kommit genom att förstå hur proteiner fungerar på molekylär nivå och hur läkemedel kan modulera deras aktivitet. Det är därför avgörande att inte bara förstå maskininlärningens verktyg, utan också ha en solid förståelse för biologin bakom sjukdomarna man försöker behandla.

Utöver maskininlärningens tekniska tillämpningar finns det också etiska och praktiska överväganden. Trots de stora framstegen inom AI, förblir det en utmaning att säkerställa att modellerna är transparenta och förklarliga, särskilt när det gäller att göra beslut om vilka läkemedelskandidater som ska tas vidare i utvecklingen. Att förstå och hantera osäkerhet i modellerna är avgörande för att undvika negativa konsekvenser i praktiken.

Hur fungerar beslutsträd och logistisk regression för att förutsäga molekylära egenskaper?

Logistisk regression och beslutsträd är två grundläggande modeller inom maskininlärning som används för att förutsäga kategoriska utfall. Båda metoderna är användbara för att förstå och förutsäga hur specifika molekylära egenskaper påverkar sannolikheten för att en molekyl kommer att fungera som en inhibitor, till exempel i läkemedelsutveckling.

I logistisk regression representerar vikterna för funktionerna (features) förhållandet mellan de olika variablerna i en modell. Eftersom regressionen matas genom en sigmoidal funktion som omvandlar ingången till en sannolikhet, är det nödvändigt att separera själva signalen från funktionen för att kunna tolka vikterna på ett meningsfullt sätt. Genom att härleda log-odds kan vi förstå hur en ökning i värdet av en funktion påverkar sannolikheten för att resultatet (t.ex. ett läkemedels effektivitet) kommer att vara positivt. Om en funktionsvikt är positiv kommer en ökning av dess värde att öka log-odds, vilket i sin tur ökar oddsen för att utfallet är ett framgångsrikt mål (t.ex. att molekylen binder effektivt till målet). Om vikten är negativ, kommer en ökning i funktionsvärdet att minska sannolikheten för ett framgångsrikt utfall.

Exempelvis, om en funktion har en vikt på 0,45, innebär en ökning av den funktionens värde med 1 en ökning i log-odds med ett förhållande på exp(0,45) = 1,57, vilket innebär att oddsen för att molekylen är en inhibitor ökar med 57 %, givet att alla andra funktioner förblir oförändrade.

För att förbättra förutsägelser och få mer robusta modeller kan vi använda en annan familj av icke-parametriska modeller, nämligen beslutsträd. Dessa träd fungerar som flödesscheman som bryter ner komplexa problem i en serie av enklare beslut. Tänk dig att modellen spelar ett gissningsspel där den ställer frågor för att snäva in möjliga alternativ tills den hittar ett svar. Varje nod i ett beslutsträd representerar ett beslut baserat på en specifik funktion, och syftet med beslutsprocessen är att nå en bladnod som ger slutgiltig förutsägelse.

En fördel med beslutsträd är att de är lätta att tolka. Genom att visualisera trädets struktur kan vi se hur modellen fattar beslut, vilket ger insikter om vilken funktion som användes och i vilken ordning för att fatta en specifik beslutspunkt. Denna transparens gör det enklare att identifiera eventuella problem i modellen och att extrahera viktiga funktioner baserat på hur och när de används i beslutsprocessen. Beslutsträd är också mycket flexibla och kan hantera både numeriska och kategoriska data, vilket gör dem användbara i många olika sammanhang.

För att bygga ett beslutsträd används en top-down metod, där trädet växer från rot till blad genom att ställa frågor och dela upp data på ett optimalt sätt. Det finns flera sätt att definiera "optimal uppdelning", med vanliga mått som Gini-impuritet och entropi som används för att välja den bästa uppdelningen vid varje nod.

Beslutsträdet börjar vid rotknuten, där hela datasetet finns, och varje nod ställer en fråga om en funktion för att dela upp datan. Frågan som ställs är ofta baserad på ett tröskelvärde för en funktion. Om till exempel molekylens logP-värde är under ett visst tröskelvärde, kan det leda till en uppdelning i en annan nod där ett nytt beslut fattas. Denna process fortsätter tills vi når en bladnod, där resultatet (en förutsägelse av molekylens klass) ges.

Fördelarna med beslutsträd är många. Förutom att de är lätta att förstå och tolka, är de också bra på att hantera både linjära och icke-linjära relationer mellan variabler. Modellen kräver inte omfattande databehandling som normalisering eller skalning och är också kapabel att hantera saknade värden på ett naturligt sätt. Eftersom beslutsträd är så transparenta och lätta att följa, kan de även användas för att göra funktioner för automatisk funktionselektion genom att identifiera de funktioner som används tidigt i processen och därmed är de mest informativa.

En annan fördel med beslutsträd är deras förmåga att ge både klassificeringsresultat och sannolikhetsbedömningar. När vi tränar ett beslutsträd på ett dataset kan vi inte bara få en förutsägelse av vilken klass en molekyl tillhör, utan också en sannolikhet som anger hur säker modellen är på sin förutsägelse.

Trots sina fördelar finns det också utmaningar med beslutsträd. Eftersom de bygger på en sekventiell uppdelning av data, kan de vara benägna att överanpassa (overfitting), särskilt om trädet är för djupt eller om det inte finns tillräckligt med data för att stödja komplexiteten i modellen. Detta kan hanteras genom att begränsa trädets djup eller genom att använda tekniker som random forest för att kombinera flera träd och minska risken för överanpassning.

När vi konstruerar beslutsträdet är det också viktigt att förstå de underliggande algoritmerna för träning av modellerna. Beslutsträd använder en topp-ner strategi där man systematiskt delar upp datasetet genom att välja den bästa funktion som ger den största skillnaden mellan olika klasser. Denna uppdelning fortsätter tills vissa stopplikor uppfylls, som när alla exempel i en nod tillhör samma klass eller när det finns för få exempel kvar i en nod för att fortsätta uppdelningen.

Vid användning av beslutsträd i verkliga applikationer är det också viktigt att komma ihåg att det inte finns någon enkel "en-storlek-passar-alla"-lösning. Beroende på typen av data och problemställning, kan det vara nödvändigt att justera hyperparametrar och tillämpa rätt val av beslutsträdsalgoritm för att uppnå bästa resultat.

Hur Förbereder Man Protein och Ligand För Dockning?

För att genomföra dockingstudier i molekylärbiologi krävs noggrant förberedda strukturer av både målproteinet (receptorn) och liganden. Detta är avgörande för att simuleringen ska ge tillförlitliga och reproducerbara resultat. I detta avsnitt ska vi fokusera på hur man förbereder dessa strukturer inför docking och vilka tekniska överväganden som måste göras.

Först och främst måste både ligandens och receptorens tredimensionella strukturer isoleras från en gemensam protein-databasfil, ofta i PDB-format. För att göra detta krävs det att varje atom i strukturen tilldelas ett index. MDTraj-paketet är ett av de vanligaste verktygen för att extrahera dessa strukturer och hantera molekylära dynamik-trajektorier. Med hjälp av MDTraj kan man identifiera och separera atomer som tillhör proteinet från atomer som tillhör liganden. Ett sådant exempel på hur man extraherar och sparar dessa separata strukturer ges i Listing 9.1, där både receptor- och ligandstrukturer sparas till sina egna PDB-filer.

Men innan docking kan genomföras, behöver både receptorn och liganden genomgå ytterligare förberedelser. De flesta proteinstrukturer som finns i PDB kan innehålla olika typer av brister som måste åtgärdas för att simuleringen ska kunna utföras korrekt. Det kan till exempel handla om saknade atomer eller kedjor, icke-standardiserade aminosyror, eller onödiga molekyler som heterogener. För att åtgärda dessa problem använder vi en kombination av PDBFixer och OpenMM. Dessa verktyg kan hitta och ersätta saknade strukturelement och lägga till nödvändiga atomer och väteatomer som ofta saknas i den experimentella datan.

För att effektivt hantera dessa steg används en preprocessor-klass som strukturerar och automatiserar hela förberedelseprocessen. Preprocessor-klassen kan hantera både receptor- och ligandstrukturer, och säkerställer att alla nödvändiga justeringar görs innan dockingproceduren påbörjas. Ett exempel på hur detta kan implementeras är angivet i Listing 9.2. Här används PDBFixer för att hitta saknade residuer, byta ut icke-standardiserade aminosyror, ta bort heterogener, lägga till saknade atomer, och tillsätta väteatomer vid rätt pH-värde, vilket är en viktig parameter för korrekt protonering av molekyler.

När receptorn har förberetts med alla dessa åtgärder, kan den sparas i ett PDBQT-format som är kompatibelt med dockingprogram. Den färdiga PDBQT-filen är nu redo att användas i själva dockingstudien, där liganden kommer att testas för att identifiera den mest sannolika bindningspositionen på receptorn.

Det är viktigt att förstå att en av de största utmaningarna vid docking av okända bindningssidor är att den hela ytan på proteinet kan behöva övervägas, istället för att fokusera på en känd bindningssite. För blind docking, där bindningssidan inte är känd, måste hela proteinets yta analyseras för att hitta den mest troliga bindningsplatsen för liganden. Detta kräver ytterligare datorkapacitet och precisionsverktyg, eftersom det innebär en mer komplex sökning över hela proteinets yta.

För att sammanfatta, när man förbereder protein- och ligandstrukturer för docking, är det inte bara en fråga om att isolera de relevanta tredimensionella strukturerna. Det handlar om att säkerställa att dessa strukturer är tekniskt korrekta, komplett med alla atomer och med korrekt kemi, för att undvika felaktiga resultat i simuleringen. Docking är en teknik som kräver rigorös pre-processering och uppmärksamhet på detaljer, för att de biologiska och kemiska interaktionerna ska kunna analyseras korrekt och pålitligt.