Výpočetní metody v bioinformatice a systémové biologii
Týden 8 - Integrace dat prostřednictvím biologických sítí
Samostatný úkol: Integrace dat a jejich anotací v kontextu sítí
Hlavní úkol:
- Proveďte v Gene Ontology enchrichment analýzu pro genovou sadu "IFNA1 IFNB1 NFKB1" (v kategorii GO_biological_process).
Typy sítí související s úkolem a vhodné pro integraci informace na úrovni různých typů hran mezi uzly:
Detailní zadání úkolu:
- Prohledejte na NDEx sítě odpovídající genové sadě "IFNA1 IFNB1 NFKB1".
- Do Cytoscape přidejte plugin (app) BINGO (v novějších verzích, např. 3.10.2, již netřeba přidávat, měl by být součástí).
- Nastudujte možnosti pluginu BINGO dle tutoriálu.
- Pozn: Tutoriál je vyvinut pro starší verzi Cytoscape, proto je třeba z něj vzít základní postup a ten potom použít s novou verzí, kde jsou některé funkce zjednodušeny nebo lehce pozměněny (nejedná se o drastické změny, touto investigací navíc získáte hlubší znalost filosofie Cytoscapu).
- Načtěte v Cytoscape pomocí NDEx vyhledávače síť "SARS-COV CYTOKINE STORM". Prozkoumejte data v uzlech a hranách.
- Pomocí pluginu BINGO proveďte enrichment analýzu genového setu "IFNA1 IFNB1 NFKB1" vzhledem ke kompletní anotaci sítě.
Příklad .cys souboru s výsledky analýzy:
Samostatný úkol: Mapování názvů biologických entit pomocí knihovny Biopython
- Použijte knihovnu Biopython pro nalezení co nejvíce možných označení (aliasů, synonym apod.) genů IFNA1, IFNB1, NFKB1.
- Poznámka k možnému postupu - může se hodit například Entrez API knihovny Biopython k rozhraní Entrez institutu NCBI/NIH, pomocí nějž se dá vytáhnout řada informací z genové databáze NCBI (mezi jinými např. různá doporučená či alternativní pojmenování jednotlivých genů). Manuálně by mělo být nutné de facto pouze zjistit identifikátory příslušných genů v dané databázi, aby ji bylo možné správně dotazovat.
- Použijte knihovnu Biopython pro nalezení co nejvíce možných označení (aliasů, synonym apod.) proteinových produktů genů IFNA1, IFNB1, NFKB1.
- Poznámka k možnému postupu - může se hodit například SeqIO API knihovny Biopython, pomocí nějž se dá vytáhnout řada informací z proteinové databáze UniProt přímým dotazováním a rozparsováním URL XML záznamů o příslušných proteinech. Z výsledku pak lze vytahat řadu informací o daných proteinech (mezi jinými např. jejich různá doporučená či alternativní pojmenování). Manuálně by mělo být nutné de facto pouze zjistit UniProt accession IDs příslušných proteinů, aby bylo možné správně zkonstruovat dotazovaná URL.
- Zamyslete se nad následujícím:
- Do jaké míry se různá pojmenování pro geny a jejich produkty liši a/nebo překrývají?
- Myslíte si, že to je problém, ať už obecně, nebo v případě těchto tří konkrétních genů?
- Dal by se celý proces mapování genů na jejich proteinové produkty a příslušná doporučená a alternativní pojmenování automatizovat ještě o něco lépe? Jak byste na to případně zkoušeli jít?
Příklad .ipynb notebooku s implementací mapování:
Zadání projektu z tohoto bloku předmětu: Automatická anotace textů termíny z biologických sítí a databází pomocí knihoven Biopython a ScispaCy (celkem max. 15 bodů)
- Založte si Python notebook (např. v platformě Jupyter Lab nebo Notebook, případně Google Colab), v němž vypracujete celý projekt k odevzdání (ve formě funkčního kódu s výstupy a stručných, ale výstižných textových komentářů ke každému níže zmíněnému kroku). Odevzdejte pak prosím jak samotný noteboook, tak i PDF export notebooku se všemi výstupy pro kontrolu!.
- Použijte Entrez API knihovny Biopython k vyhledávání v databázi PubMed a získání titulů a abstraktů článků, které se zabývají souvislostí genů IFNA1, IFNB1 nebo NFKB1 (či jejich proteinových produktů) s nemocí Covid19. Výsledky tohoto vyhledávání budou váš textový korpus. [max. 5 bodů]
- Anotujte a vizualizujte v tomto korpusu entity (geny, proteiny, molekuly, léky, projevy na úrovní fenotypu apod.) pomocí nějakého předtrénovaného modelu pro úkol "biomedical named entity recognition", které jsou k dispozici v knihovně ScispaCy. Případně můžete použít i jiný model, který se pro tento úkol hodí (např. nějaký biomedicínský transformer na HuggingFace). [max. 3 body]
- S pomocí vhodného externího síťového datasetu (např. jednoho z těch, s nimiž jste pracovali v tomto cvičení) najděte nějaké zajímavé vztahy mezi geny IFNA1, IFNB1 a NFKB1 a dalšími entitami, které se vám v textu podařilo najít. Nalezené vztahy můžete pro lepší přehlednost zkusit vizualizovat (buď přímo v notebooku pomocí například NetworkX, nebo pomocí externího nástroje jako Cytoscape). Analýzu můžete provádět automaticky vhodným kódem či nástrojem (hodí se to zejména, pokud je váš korpus velký), ale plně akceptovatelné je i "manuální" řešení soustředící se na několik málo zajímavých vztahů. Do jaké míry tyto vztahy odpovídají tomu, co se píše v článcích, které jste zpracovávali? [max. 5 bodů]
- Přímo v notebooku v textové buňce stručně analyzujte vaše výsledky a shrňte hlavní "lessons learned" (co fungovalo dobře, co hůře, co jste si z toho odnesli). [max. 2 body]
- Vytvořený Python notebook uložte spolu se všemi výstupy vašich kódových buněk a odevzdejte do 17.05.2024 (včetně) do odevzdávárny PROJEKT-ANOTACE-TEXTU.