Ústav
Ústav informatiky a chemie (143)
ID
2027-143-5
Vedoucí
Ivan Čmelo
Konzultant
Wim Dehaen
Aktuální studijní programy
B107-Bioinformatika a chemická informatika
Podstata a cíl práce
Standardní cheminformatické metody pro výpočetní odhad zájmových vlastností chemických látek, od rozpustnosti po specifické formy biologické aktivity, jsou založeny na tzv. deskriptorech - číslech nebo tokenech charakterizujících odhadovanou látku. Deskriptory mohou být jednoduché, jako např. molekulová hmotnost, počet těžkých atomů, přítomnost či absence specifických strukturních motivů apod. Jednou z nejrozšířenějších a nejúspěšnějsích reprezentací jsou Extended Connectivity Fingerprints (ECFP), které do binárního vektoru kódují všechny fragmenty charakterizované chemické struktury do určité velikosti, nejčastěji pět nebo sedm atomů napříč. Ačkoliv tyto fragmenty stále často postrádají širší kontext, větší fragmenty se tolik nepoužívají, protože by exponenciálně rostl počet fragmentů ke sledování a zároveň klesala jejich individuální četnost - tzv. prokletí dimenzionality, které výrazně znesnadňuje trénování modelů. Tuto situaci s velkým množstvím málo četných strukturních motivů by teoreticky bylo možno korigovat prostřednictvím poolingu, kde by se konkrétnější, větší fragmenty zaváděly ad-hoc až na základě zpětné vazby od uživatele nebo samotného modelu, který označí stávájící fragmenty k "rozšíření" či naopak k "zobecnění". Cílem projektu je navrhnout, implementovat a vyzkoušet základní prototyp zmíněného poolingu pro ECFP.
Náplň činnosti studenta
- Rešerše k ECFP a k souvisejícím cheminformatických konceptům
- Bližší seznámení se s knihovnou RDKit a v ní implementovanými variantami ECFP
- Navržení algoritmu pro pooling / unpooling ECFP fragmentů
- Implementace algoritmu v jazyce Python jako rozšíření stávájící funkcionality ECFP
- Otestování vytvořené implementace v porovnání s běžnými ECFP implementovanými v RDKitu
- Bližší seznámení se s knihovnou RDKit a v ní implementovanými variantami ECFP
- Navržení algoritmu pro pooling / unpooling ECFP fragmentů
- Implementace algoritmu v jazyce Python jako rozšíření stávájící funkcionality ECFP
- Otestování vytvořené implementace v porovnání s běžnými ECFP implementovanými v RDKitu