Menu Zavřít

Umělá inteligence vyráží do boje proti bakteriím. Její využití může výrazně zrychlit nalezení nových a účinnějších antibiotik

21. 6. 2024
Doba čtení: 3 minuty
Autor: Depositphotos
  • Rezistence bakterií na antibiotika je v posledních letech stále závažnějším problémem, který už způsobuje přes milion úmrtí ročně
  • Vědci se proto neustále snaží nacházet nové a účinnější látky. Jejich uvedení na trh od zahájení výzkumu ovšem trvá okolo 10 let
  • Celý proces by nyní měla výrazně zrychlit umělá inteligence. Ta dokáže analyzovat obrovské množství genetického materiálu za pouhých několik hodin

Umělá inteligence (AI) v poslední době způsobuje revoluci v mnoha různých oblastech, a to včetně biologie a medicíny. Chytré počítačové algoritmy vědcům a lékařům pomáhají třeba s předvídáním proteinových struktur nebo s navrhováním protilátek, jež dokáží bojovat s některými z nejzávažnějších onemocnění.

Velkým problémem současné medicíny jsou ale také bakterie, respektive jejich rezistence na antibiotika. Ta se totiž v posledních letech postupně zvyšuje, jelikož bakterie mají velmi dobrou schopnost se „učit“ a přizpůsobovat, díky čemuž se stávají imunními vůči některým dlouhodobě používaným lékům.

Celou situaci pak podle webu Singularity Hub ještě zhoršuje takzvaný horizontální přenos. Geny rezistentní na antibiotika lze totiž zakódovat do malých kousků DNA, jež se mohou přenést do sousedních bakterií. To jim poskytne stejnou schopnost bránit se antibiotikům, kterou mohou navíc následně znovu šířit dál.

Válku proti bateriím jsme prohrávali

Kvůli zvyšující se rezistenci se vědci v poslední době stále intenzivněji snaží najít nová antibiotika, proti nimž se bakterie zatím bránit neumí. Tento proces je ovšem velmi zdlouhavý, jelikož nalezení látky, její důkladné otestování a následné uvedení léku na trh většinou trvá okolo 10 let. Není tedy divu, že se někteří odborníci obávají, že lidstvo nyní válku proti bakteriím prohrává.

Na poplach navíc bije také Světová zdravotnická organizace (WHO), která tvrdí, že bez novějších generací antibiotik budou pacienti při různých chirurgických zákrocích čelit vyššímu riziku smrti v důsledku infekce. Potvrzují to rovněž nedávná data, podle nichž rezistence na antibiotika ročně způsobí přibližně 1,3 milionu úmrtí po celém světě. Ostatně, není se čemu divit, neboť ještě před objevem penicilinu v roce 1928 mohlo vést ke smrti v důsledku infekce i obyčejné škrábnutí či říznutí se kuchyňským nožem.

Další pokrok genetického inženýrství. Vědcům se díky využití metody CRISPR podařilo podstatně snížit hladinu cholesterolu
Přečtěte si také:

Další pokrok genetického inženýrství. Vědcům se díky využití metody CRISPR podařilo podstatně snížit hladinu cholesterolu

„V současnosti existuje opravdu naléhavá potřeba přijít s novými metodami pro objevování účinných antibiotik,“ uvedl v tiskové zprávě Queenslandské technologické univerzity (QUT) v Brisbane australský biolog Luis Pedro Coelho.

Většina testovaných vzorků uspěla

Hledání nových antibiotik dosud většinou probíhalo metodou pokus-omyl, kdy vědci sbírali třeba vzorky z exotických mechů nebo jiných rostlin, které mohly mít potenciál účinně bojovat proti infekcím. Kvůli zdlouhavosti tohoto procesu se ale nyní výzkumníci z QUT pod vedením Coelha rozhodli využít umělou inteligenci, jež dokáže pracovat s obrovským množstvím dat.

Ve své studii tedy tým nasadil chytré algoritmy k prohledání obří databáze jménem AMPSphere, v níž měla AI najít antimikrobiální peptidy s možnými antibiotickými vlastnostmi. Zmíněná databáze přitom obsahuje více než 63 tisíc metagenomů (genetických informací izolované z různých organismů) a téměř 88 tisíc dalších mikrobiálních genomů. Zkoumané vzorky pocházely z oceánů i pevniny a obsahovaly také lidské a zvířecí střevní mikroby.

Umělá inteligence se snaží naučit neurochirurgii, brzy nastuduje víc operací mozku než jakýkoli lékař
Přečtěte si také:

Umělá inteligence se snaží naučit neurochirurgii, brzy nastuduje víc operací mozku než jakýkoli lékař

První výsledky studie každopádně ukázaly, že právě AI by mohla do oboru přinést skutečnou revoluci. Při analýze tohoto obrovského množství dat totiž umělá inteligence odhalila téměř milion potenciálních odolných antibiotik. Vědci následně syntetizovali stovku z nich, přičemž u 63 genomů zjistili, že dokázaly ve zkumavce snadno zlikvidovat bakterie, a tedy i potlačit infekci.

Místo několika roků už jen pár hodin

Díky AI se podařilo objevit například lék, který si dokázal hravě poradit s nebezpečnou bakterií způsobující kožní léze u myší. Vědcům přitom stačilo podat pouhou jednu dávku antibiotika, jež zcela zahubila všechny bakterie. Nakažené myši se tudíž brzy vyléčily a na základě jejich následného sledování výzkumníci označili za nepravděpodobné, že by měly jakékoliv vedlejší účinky.

WT100_25

„Zapojení umělé inteligence do objevování antibiotik se nyní stalo realitou, díky čemuž se výrazně urychlila naše schopnost objevovat nové potenciální léky. To, co kdysi trvalo roky, lze nyní pomocí počítačů zvládnout během několika hodin,“ zmínil další spoluautor studie César de la Fuente z Pensylvánské univerzity.

Umělá inteligence objevila zcela novou látku, která by mohla snížit množství lithia v bateriích až o 70 procent
Přečtěte si také:

Umělá inteligence objevila zcela novou látku, která by mohla snížit množství lithia v bateriích až o 70 procent

Výzkumníci chtějí ve své studii dále pokračovat a blíže prozkoumat i další potenciální léky. Tím nejzásadnějším zjištěním je ale bezpochyby fakt, že umělá inteligence může výrazně usnadnit nalezení nových antibiotik, a přispět tak k záchraně životů milionů lidí.

  • Našli jste v článku chybu?
'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }