Důvod vzniku
Jelikož v mém okolí se vyskytují lidé z vědeckého prostředí, tak jeden z nich, v rámci zpracování dat do článku, prováděl tuto práci ručně. Celé to spočívalo pouze v kombinacích různých genotypů o různých délkách. Jen pro představu bylo potřeba udělat délku 10, ale ručně se to zvládalo do délky 4. Přišel jsem tedy s návrhem, proč to dělat ručně a menší počet, když to jde rychleji, efektivněji a větší délka.
Popis projektu
Nebudu zabíhat do odborností DNA, genotypů a pojmů jako homozygot, heterozygot či SNP, jelikož jim sám nerozumím, nicméně pro vytvoření algoritmu byly potřeba. Celý proces je tříkrokový, kde jsou nejprve odebrány pacientovy vzorky, ty jsou následně prohnány algoritmem, který hledá zadané hodnoty doktorem s těmi pacientovými a nakonec je vygenerováno několik tabulek podle délky kombinací s číslem, který sám o sobě nic neznamená, ale slouží pro další statistické vyhodnocení, které už ale není součástí tohoto algoritmu. Na stránkách projektu je k dispozici manuál v PDF ke stažení (v angličtině). Celé je to vytvořené pomocí jazyků HTML, CSS, XML, PHP a knihovny phpoffice pro práci s Excelem.
Postup algoritmu:
1) Uživatel si z webu stáhne schéma pro Excel, kam zapíše svá data. Tím se určí jaký maximální počet SNP (délka) bude použit
2) Pomocí nástrojů v Excelu uživatel vygeneruje výstup ve formátu XML, který bude potřeba pro zpracování algoritmem
3) Na úvodní stránce uživatel vloží XML soubor s daty pacientů. Je ošetřeno pro správný typ souboru. Jinými slovy nahrát jde pouze soubor formátu XML. Každému uživateli je vytvořena jedinečná složka, do které se uloží tento XML soubor
4) Pokud nahrání souboru na server proběhne v pořádku, pak uživatel vyplní matici, kde řádek představuje SNP a každý řádek má tři vstupy (homozygot 1, heterozygot, homozygot 2) obsahující dvojici písmen, např. GG, GC, CC apod.
5) Po vyplnění matice proběhne samotné porovnávání. Například pro SNP délky 3, se vygenerují kombinace pro dvojice (SNP1 + SNP2, SNP1 + SNP3, SNP2 + SNP3) a pro trojice (SNP1 + SNP2 + SNP3). Pro délku 10 se vytváří dvojice, trojice až desetice. Ukázka konkrétních kombinací je uázána v manuálu na straně 3 v bodě 3
6) Smyslem programu je najít vygenerovanou kombinaci vzniklou z uživatelova vstupu v matici (bod 4) a pacientovým vzorkem. Například možných kombinací je 6 a shoda proběhla ve čtvrté kombinaci. Výstup tohoto jednoho hledání je pak číslice 4. Tímto způsobem se tvoří tabulka pro každou kombinaci s výsledným číslem. Vzhledem k tomu, že na vstupu jsou zadány možnosti, ze kterých pak vzniknou všechny možné kombinace a uživatelova část DNA je tvořena právě těmito vstupy, dojde vždy k nalezení shody, jde o to na které pozici. Po nalezení shody algoritmus přejde na další kombinaci a neprojíždí zbytečně aktuální kombinaci dále
7) Po proběhnutí celého porovnávání a hledání pozic shody je vygenerován excelovský soubor, který je nabídnut ke stažení a uložen do uživatelovi složky na serveru
8) Soubor je tvořen listy, kde každý představuje jednu kombinaci (list s názvem 2 značí dvojice atd.). Na každém listě je pak identifikátor pacienta a jako záhlaví ukázáno, které kombinace SNP bylo prováděno a v průsečíku ID pacienta a této kombinace, pak číslo pozice shody. Takovýto výstup dále podstupuje statistické výstupy, ty už ale algoritmus neprovádí
9) Aby se vstupní XML soubory a výstupní excelové soubory na serveru nehromadily, jednou denně se pomocí CRONu provádí smazání uživatelských složek
Aktuální stav
Jelikož algoritmus výrazně urychlil jinak zdlouhavou a rutinní práci a významně tím přispěl k získání výsledků potřebných pro další zpracování, tak je součástí tohoto článku, kde je o něm v odstavečku zmínka i s drobným popisem a moje osoba uvedena oficiálně jako spoluautor. Projekt běží na stránce http://78.128.251.116/, kde si lze i prostudovat návod a odkaz na článek se lze dozvědět v sekci Publikace na tomto webu.
Další webové projekty
Mozkovna
Prodej a blog
Automatický prodej vlastních digitálních produktů včetně párování plateb
Fotbal jinak
Statistiky a strategie
Fotbalové statistiky ČSR, ČR, Evropa, Svět a strategie sázení
Vzdělávej se
Vyhledávač a propagace
Zviditelnění e-knih, online kurzů či klasických seminářů pro samotvůrce
Odborné praxe
Studenti a firmy společně
Nabídky a poptávky studentů a firem na odbornou praxi
ELPIT
Eshop na bázi dropshippingu
Hudební, zvuková a světelná technika s automatizovaným prodejem
Genotypy
Algoritmus pro vědecké výpočty
Porovnávání možných kombinací genotypů se vzorky pacienta