Att välja rätt egenskaper för molekylers likhetsmätning är en av de största utmaningarna inom området molekylär kemi och datavetenskap. Vad betyder egentligen "likhet" mellan molekyler och hur kan vi mäta den på ett sätt som ger meningsfulla resultat? I allmänhet handlar likhetsmätning om att identifiera hur lika två molekyler är när det gäller deras kemiska struktur, men det är inte alltid en rak linje mellan struktur och funktion.
När vi analyserar molekylstrukturer är det avgörande att förstå att vissa delar av en molekyl är mer relevanta för att förutsäga dess funktion än andra. Det är här komplexiteten i struktur-funktion-relationerna visar sig. Även om två molekyler har en liknande struktur betyder det inte att deras biologiska funktioner kommer att vara lika. Faktum är att det finns delar av en molekyl som kan vara irrelevant för dess funktion eller till och med motstridiga med den förväntade effekten. Det är denna nyans som gör likhetsmätning till en komplex uppgift, och därför är en enkel jämförelse av strukturer inte alltid tillräcklig för att förutsäga funktionalitet.
För att verkligen förstå och kvantifiera likhet mellan molekyler måste vi också överväga det faktum att vår bedömning ofta görs baserat på strukturen av en enskild molekyl. Här spelar maskininlärning en allt viktigare roll. Genom att träna modeller på databaser av molekyler med kända biologiska aktiviteter kan vi identifiera de substrukturer som faktiskt påverkar en viss funktion. Det är genom dessa substrukturer som vi kan dra mer precisa slutsatser om molekylers potentiella funktioner, vilket är ett verktyg som kommer att visa sig ovärderligt i senare kapitel.
I samband med att vi laddar och bearbetar molekylära data i en virtuell screeningprocess, är det viktigt att förstå hur dessa data struktureras och hanteras. I kapitel 1 introducerades konceptet att ladda enskilda molekyler med RDKit, ett verktyg som vi kommer att använda för att hantera hela datamängder. Men innan vi börjar med själva analysen måste vi förstå de vanligaste filformaten för att hantera molekylärdata. Ett av de mest använda formaten är Structure Data File (SDF), som lagrar både 2D- och 3D-molekylstrukturer tillsammans med relaterad egenskapsinformation.
SDF-filerna baseras på en så kallad "connection table", som beskriver atomernas förbindelser i en molekyl. Denna tabell är grundläggande för att generera en molekyl som en graf där noder representerar atomer och kanter representerar bindningar. De flesta SDF-formaten, som V2000 och V3000, innehåller även ytterligare information om varje molekyl, såsom atomens koordinater, bindningstyp och stereokemi. När vi bearbetar molekylärdata från SDF-filer måste vi också tänka på kvalitetskontrollen. Det är här molekylens sanitisering spelar en avgörande roll. Sanitization är en förprocess som ser till att molekylens struktur är kemiskt rimlig och att inga felaktiga eller ogiltiga data går vidare till analysen.
För att effektivt genomföra en screeningprocess är det också viktigt att kunna visualisera molekylerna på ett sätt som gör det lättare att förstå deras struktur. Här spelar RDKit och dess funktioner en viktig roll. Genom att konvertera SMILES-representationer till RDKit Mol-objekt kan vi skapa visualiseringar av molekylstrukturer. Detta gör det möjligt att snabbt granska och förstå molekylens form och eventuella egenskaper som kan vara relevanta för den specifika forskningsfrågan.
SDF-formatets styrka ligger i dess förmåga att lagra både strukturell och egenskaplig information på ett sammanhängande sätt. Men det är viktigt att inte enbart fokusera på den strukturella informationen. Många gånger är det den biologiska aktiviteten eller effekten av molekylen som är vårt huvudsakliga intresse. Därför måste vi, när vi genomför virtuella skärmningar, också tänka på hur vi kan extrahera och använda information om molekylens egenskaper – såsom polaritet, laddning, eller molekylvikten – för att förbättra våra likhetsmätningar.
Förutom de tekniska verktygen som RDKit, är det också viktigt att förstå de teoretiska principerna bakom molekylär likhetsmätning. Det handlar inte bara om att hitta molekyler som ser lika ut på papperet, utan också om att förstå varför vissa strukturer resulterar i liknande funktioner medan andra inte gör det. Här kommer maskininlärning att spela en viktig roll, eftersom den kan identifiera och förutsäga vilka specifika substrukturer som är viktiga för att uppnå en viss biologisk aktivitet. Med hjälp av etiketterade datamängder och tränade modeller kan vi börja förstå vilka delar av molekylen som verkligen spelar en roll i dess funktion.
Att arbeta med molekylär screening och likhetsmätning är inte bara en teknisk uppgift utan också en strategisk process som kräver att vi noggrant väljer och bearbetar data för att uppnå meningsfulla resultat. Genom att förstå de grundläggande begreppen och verktygen som är involverade i denna process, kan vi effektivt använda dessa teknologier för att identifiera lovande föreningar för vidare forskning och utveckling.
Hur tokenisering på karaktärsnivå och autoencoderarkitektur kan förbättra molekylär representation
Vid tokenisering på karaktärsnivå delas varje molekylstruktur i individuella tecken, där varje tecken representeras av ett token i ett fördefinierat vokabulär. Denna metod är särskilt användbar eftersom den hanterar ett begränsat antal tecken och skapar ett slutet vokabulär. I de flesta SMILES-datasätt finns det färre än 50 unika tecken, vilket gör att problemen med utanför-vokabulär (OOV) är minimala. Detta innebär att vilken som helst SMILES-sträng kan representeras genom denna typ av tokenisering, och det krävs inget särskilt för att hantera nya eller tidigare osedda sekvenser. Men denna metod har också sina begränsningar, särskilt när det gäller längre molekylära sekvenser. Jämfört med alternativ tokenisering på ord- eller subordnivå, innebär tokenisering på karaktärsnivå att varje molekyl behöver fler token för längre sekvenser, vilket i sin tur kräver mer beräkningskraft. Detta beror på att molekylgenereringen sker ett tecken i taget, snarare än att flera tecken bearbetas samtidigt.
En annan begränsning med karaktärsnivå-tokenisering är att det inte fångar alla de semantiska nyanser som finns i kemiska strukturer. Till exempel kan atomens kontext och relationer som skapas genom bindningar och grupper av atomer vara svåra att representera på denna nivå. Karaktärsnivån representerar varje atom eller bindning som ett enskilt tecken utan att beakta den större molekylära kontexten. Detta kan försvåra förståelsen av kemiska egenskaper som är viktiga för att förutsäga biologiska eller kemiska interaktioner, vilket kan begränsa autoencoder-modellens förmåga att lära sig och generera meningsfulla representationer.
Trots dessa begränsningar fungerar karaktärsnivå-tokenisering som en enkel och tillräcklig startpunkt för att bygga vidare på. Det är en metod som kan implementeras utan större komplexitet och fungerar bra i många fall där molekylstrukturer är relativt små eller där högre semantiska relationer inte är lika avgörande. Vidare kommer utvecklingen av autoencoder-arkitektur att hjälpa till att förbättra representationen av de tokeniserade sekvenserna.
När vi har definierat vårt vokabulär och tokeniserat SMILES-strängarna kan vi bygga själva autoencodern. Autoencoder-arkitekturen är uppbyggd enligt en klassisk encoder-decoder-design med en flaskhals i mitten, där informationen komprimeras och sedan rekonstrueras. Föreställ dig det som ett timglas: brett i toppen (ingång), smalt i mitten (latent utrymme), och brett igen i botten (utgång).
Den första delen av denna arkitektur är inbäddningslagret. Här konverteras varje token, som representerar en atom eller bindning, till en tät vektor. Denna vektor är en lärbar representation av token som ger en mycket rikare förståelse än en enkel indexrepresentation. Vektorerna lär sig att fånga information som kemiska likheter (liknande atomer får liknande inbäddningar), strukturella relationer (bindningar och parenteser har sina egna representationer) och kontextuell information (samma atom i olika kontexter kan ha olika betydelser).
Inbäddningens dimension är en hyperparameter som balanserar uttrycksfullhet och beräkningsmässig effektivitet. Större inbäddningar kan fånga mer nyanserade relationer, men de kräver fler parametrar och mer beräkningskraft. Efter inbäddningen plattas de resulterande vektorerna ut till en lång vektor och skickas vidare till kodaren. Varför använda inbäddningar istället för en one-hot-encoding? I en one-hot-encoding skulle varje token representeras som en lång och sparsam vektor, vilket är mycket ineffektivt för neurala nätverk. Dessutom fångar inte one-hot-vektorerna några semantiska relationer mellan token, vilket innebär att alla tokens behandlas som om de vore oberoende av varandra, trots att de kan vara nära besläktade (t.ex. C, N, O).
Efter att ha omvandlat de tokeniserade sekvenserna till dessa rika vektorrepresentationer, passerar de genom kodaren. Kodaren är ett neuralt nätverk som komprimerar dessa inbäddade sekvenser till en latent vektor som representerar molekylens kemiska egenskaper i ett mycket kompakt format. Denna komprimering minskar den ursprungliga sekvensen av inbäddade vektorer till en mycket mindre och mer hanterbar representation.
För att rekonstruera molekylen från denna komprimerade latent vektor används en decoder, som speglar kodarens struktur men på ett omvänt sätt. Här expanderas den latenta vektorn tillbaka till en sekvens av tokens som rekonstruerar den ursprungliga molekylstrukturen. På så sätt kan autoencodern lära sig att återskapa molekylens exakta struktur från en mycket mer kompakt representation.
För att förstå hela den här processen är det viktigt att betona hur effektiv inbäddningen är i att fånga viktiga semantiska relationer i de kemiska egenskaperna. Trots att denna metod innebär en komprimering av informationen, kan de latent vektorerna behålla mycket av den kemiska och strukturella betydelsen som behövs för att exakt rekonstruera molekylen. Det är denna balans mellan komprimering och meningsfull representation som gör autoencodern till ett kraftfullt verktyg för molekylär modellering.
Endtext
Hur kan vi undvika överoptimistiska och opålitliga resultat i maskininlärning och läkemedelsforskning?
Inom maskininlärning och läkemedelsforskning är det viktigt att vara medveten om riskerna för snedvridna eller opålitliga resultat som kan uppstå om felaktiga metoder används för att bearbeta och analysera data. En av de mest kritiska fällorna är användningen av testdata i träningsfasen, vilket kan leda till att modellen överanpassas till den specifika uppsättningen och ger alltför optimistiska resultat. Detta kallas för data-läckage, där information från testuppsättningen tränger in i träningsprocessen och påverkar modellens prestanda. För att undvika detta bör testuppsättningen separeras och inte användas förrän i den slutgiltiga bedömningen av modellen, för att undvika att testdata på något sätt påverkar lärandet.
En annan vanlig metod som kan orsaka problem är att använda Exploratory Data Analysis (EDA) för att välja funktioner (features) innan uppdelningen av data i tränings- och testuppsättningar. Genom att använda information från testuppsättningen för att välja funktioner riskerar vi att förorena modellen med information som den inte borde ha tillgång till i en produktionsmiljö. Detta är en form av data-snooping där man gör val som påverkar modellerna baserat på data som senare inte kommer att vara tillgänglig för modellen när den används på verklig data.
En ytterligare aspekt att beakta är det som kallas för "feature transformations", där valet av funktioner och transformeringar bör göras innan någon insyn i träningsdata ges. Om valet görs baserat på träningsdata kommer modellen att påverkas av information som borde hållas åtskild för att säkerställa en rättvis bedömning av generaliserbarhet. Genom att välja inlärningsmodell och transformationsmetoder innan data ses kan vi förhindra att vi oavsiktligt introducerar bias i våra resultat.
I vissa fall kan återanvändning av testuppsättningen över flera iterationer också orsaka förvrängning. Genom att gång på gång validera på samma testuppsättning riskerar vi att skapa en överanpassad modell som inte kommer att prestera lika bra på nya, osedda data.
Inom läkemedelsforskning är begreppet "de novo design" av nya kemiska strukturer ett centralt område. Detta innebär att man genom beräkningsmetoder genererar nya molekyler som möter specifika krav på egenskaper, som till exempel bindningsaffinitet eller biologisk aktivitet. Inom detta område har maskininlärning och djupa neurala nätverk blivit allt mer användbara för att identifiera och skapa molekyler med önskvärda farmakologiska egenskaper.
Vid beräkningar och tester av läkemedels molekylära egenskaper, såsom bindning till målmolekyler eller kardiotoxisk potential, använder man ofta metoder som docking och fingerprints. Docking förutspår den mest sannolika orienteringen för ett ligand (en molekyl som binder sig till ett protein) vid bindningen till målmolekylen. Å andra sidan är fingerprints fragmentära beskrivningar av en molekyls struktur, som kodar för de kemiska funktionella grupper eller strukturella element som finns i en given molekyl. Dessa verktyg är grundläggande för virtual screening och likhetsökning, och valet av typ av fingerprint beror på applikationen och vilken information som behövs för att analysera strukturen.
Det är också viktigt att förstå begrepp som Eroom’s Law, som beskriver hur läkemedelsforskningens effektivitet minskar över tid, särskilt för små företag med begränsad kapitaltillgång. Eroom’s Law pekar på den ökade risken som kommer med små investeringar, vilket kan leda till att det läggs för mycket fokus på att utveckla me-too drugs – läkemedel som är mycket lika befintliga behandlingar men med små justeringar i struktur och effekt. Detta gör att innovationen blir begränsad och att många nya läkemedel endast erbjuder små förbättringar framför befintliga alternativ.
Ett viktigt verktyg för att bedöma en modells förmåga att generalisera är k-Fold Cross Validation. Denna metod delar upp träningsdata i k olika delar och tränar modellen på varje del i sin tur medan den validerar på de återstående delarna. Genom att göra detta får man en mer tillförlitlig uppskattning av modellens verkliga prestanda och kan minska risken för att en modell överanpassas till en specifik uppsättning data.
Vid användning av maskininlärning inom läkemedelsforskning måste man också vara medveten om begreppet label shift. Detta innebär att distributionen av målvariabler (som klassificering av molekyler eller deras farmakologiska effekt) skiljer sig mellan tränings- och testdata, vilket kan påverka modellens förmåga att korrekt generalisera på nya data.
För att optimera de identifierade "ledarna" i läkemedelsutveckling, måste vi också tänka på "Lead Optimization", där den ursprungliga molekylen modifieras för att förbättra önskvärda egenskaper som farmakokinetik (PK) och farmakodynamik (PD) eller för att minska toxikologiska biverkningar.
Vid modellering är valet av hyperparametrar också avgörande. Hyperparametrar styr många av de grundläggande aspekterna av en inlärningsalgoritm, och genom att finjustera dessa kan man maximera modellens prestanda. Detta innebär att man behöver genomföra omfattande sökningar för att identifiera de mest effektiva parametrarna, vilket kan vara en tidskrävande men avgörande process.
En sista aspekt att tänka på när det gäller att bygga och validera läkemedelsrelaterade modeller är förståelsen för begreppet loss function eller fel-funktion, som mäter hur mycket modellens prediktion skiljer sig från det faktiska utfallet. Genom att minimera denna funktion, optimerar man modellens prestanda för att bättre spegla verkligheten och göra mer tillförlitliga förutsägelser.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский