# DOKUMENTACE KE KÓDU K BP
-----------------------------------------------------------------------------------------------------------------------
## Autor: Ondřej Nantl
-----------------------------------------------------------------------------------------------------------------------
Tento archiv slouží pro uložení zdrojových kódů vytvořených za účelem meta-analýzy kostních nádorových lézí
v páteřních CT snímcích (s využitím konvolučních neuronových sítí), které již byly detekovány CADe algoritmem
pro voxelovou klasifikaci.

Tento projekt byl vytvořen jako bakalářská práce na Fakultě elektrotechniky a komunikačních technologií 
na Vysokém učení technickém v Brně. 

Tento archiv obsahuje následující zdrojové kódy spustitelné v MATLAB (soubory s příponou .m):

augmentDataset - funkce sloužící k náhodné augmentaci objektů translací a rotací

classifyPatient - skript sloužící k meta-analýze kostních nádorových lézí pro 1 pacienta, vstup ve formátu .mat

getLesions - funkce sloužící k extrakci 2,5D řezů, statistik a kategoríí zlatého standardu objektů
             v 1 CT scanu pacienta při procesu učení
             
getLesions_newPat - funkce sloužící k extrakci 2,5D řezů a statistik objektů
                    v 1 CT scanu pacienta při procesu meta-analýzy nového pacienta
                    
netBinaryCrossVal - skript sloužící k rozdělení datasetu na učení metodou křížové validace a následné učení modelů
                    k binární klasifikaci typu nádorová léze - zdravá tkáň + vyhodnocení jejich úspěšnosti
                    
netBlasticCrossVal - skript sloužící k rozdělení datasetu na učení metodou křížové validace a následné učení modelů
                     ke klasifikaci osteoblastické tkáně + vyhodnocení jejich úspěšnosti
                     
netLyticCrossVal - skript sloužící k rozdělení datasetu na učení metodou křížové validace a následné učení modelů
                   ke klasifikaci osteolytické tkáně + vyhodnocení jejich úspěšnosti
                   
netMultiCrossVal - skript sloužící k rozdělení datasetu na učení metodou křížové validace a následné učení modelů
                   k binární klasifikaci typu nádorová léze - zdravá tkáň + vyhodnocení jejich úspěšnosti
                   
perfScores - funkce sloužící pro výpočet úspěšnostních metrik pro modely zařazující pouze do dvou tříd

perfScoresMulti - funkce sloužící pro výpočet úspěšnostních metrik pro model zařazující do tří tříd

perfScoresVert - funkce sloužící pro výpočet úspěšnostních metrik vztažených na obratel pro modely zařazující 
                 pouze do dvou tříd
                 
perfScores - funkce sloužící pro výpočet úspěšnostních metrik vztažených na obratel pro model zařazující do tří tříd

prepareDataset - skript sloužící pro zisk jednotného datasetu a jeho přípravu a uložení před augmentací

ROCgraph - skript pro tvorbu průměrných ROC křivek

saveDataset - funkce sloužící k tvorbě jednotného datasetu z dat od jednotlivých pacientů


Tento archiv neobsahuje kvůli velikosti souborů naučené modely. 

Dostupné jsou na webu: https://github.com/ondrejnantl/meta-analysis-bone-lesions-BP
------------------------------------------------------------------------------------------------------------------------
## Postup spouštění
### Učení modelů

1) Spustit skript prepareDataset - změnit cestu k souborům pacientů!
                                 - využívá funkce getLesions, saveDataset
3) Spustit skript netxxxxxCrossVal (podle typu modelu) - provede augmentaci (funkce augmentDataset) a následně naučení modelů křížovou 
   validací a výpočet úspěšnostních metrik (funkce perfScores a perfScoresVert)
   
### Klasifikace nových pacientů

1) Spustit skript classifyPatient (provede zisk 2,5D řezů - funkce getLesions_newPat a klasifikaci všemi modely)
   Je nutné změnit cestu k datům aktuálního pacienta!