• Rezultati Niso Bili Najdeni

Izvoz podatkov in poroˇ cila

Po konˇcani analizi uporabnik na zaslonski maski vidi HTML tabele z rezultati analize. Vsako tabelo lahko uporabnik izvozi v CSV formatu. Pred izvozom lahko doloˇci ˇse loˇcilo med celicami in Booleovo vrednost, ki pove, ˇce imajo vrednosti v celicah narekovaje.

V naslednjem koraku lahko uporabnik v vnosna polja vnese opombo in vrednost deˇzja (angl. rain), ki je dopusten za vzorce. Vneˇseni vrednosti se kasneje uporabita pri generiranju poroˇcila.

V zadnjem koraku uporabnik klikne na gumb za generiranje poroˇcila.

Poroˇcila na prvi strani vkljuˇcuje podatke o uporabniku, ˇcasovni ˇzig, podatke o analiziranih datotekah, opombo in dopustno vrednost za deˇz.

Poglavje 5

Primer uporabe aplikacije

V tem poglavju bom predstavil, kako se uporablja spletna aplikacija z vidika grafiˇcnega vmesnika. Aplikacijo lahko razdelimo na dva veˇcja modula, in sicer na administracijo uporabnikov ter raˇcunov in na analizo podatkov ddPCR.

5.1 Administracija

V tem razdelku predstavimo poglede za upravljanje z uporabniki in raˇcuni.

5.1.1 Registracija

Uporabnik lahko na pogledu ”register”(glej sliko 5.1) ustvari uporabnika in nov raˇcun. Vnesti mora e-poˇsto, ime, geslo in ponovitev gesla. Zahtevek za registracijo se proˇzi ob klicu na gumb, ˇce so vsi podatki pravilno izpolnjeni.

Ce kateri podatek ni veljaven, se pod vnosom izriˇse sporoˇˇ cilo o napaki (glej sliko 5.2).

5.1.2 Vpis

Uporabnik, ki ima registrirano svojo e-poˇsto oziroma se ta nahaja v podat-kovni bazi, lahko dobi dostop do aplikacije preko pogleda ”login“ z obrazcem za prijavo, ki zahteva podatke o e-poˇsti in geslu (glej sliko 5.3). Ob kliku na

31

Slika 5.1: Pogled za vnos podatkov za registracijo.

Slika 5.2: Izpolnjen obrazec za registracijo s primeri napak.

gumb za vpis in ob veljavnih vhodnih podatkih, se poˇslje zahtevek za vpis v zaledje, ta pa v primeru pravilnih overitvenih podatkov odgovori s JWT ˇzetonom, ki ima dobo trajanja 2 uri.

Diplomska naloga 33

Slika 5.3: Pogled za vpis uporabnika v aplikacijo.

5.1.3 Pregled uporabnikov

Na pogledu ”users“ (glej sliko 5.4) namenjenemu za pregled uporabnikov se nahaja tabela z uporabniki, od katerih jeaccountIdenak raˇcunu uporabnika, ki je v JWT ˇzetonu zahtevka. V zgornjem desnem kotu se nahaja gumb za dodajanje novega uporabnika.

V vsaki vrstici tabele se nahajajo podatki: enoliˇcni identifikator (ID), ime (Name), e-poˇsta (Email) in ˇcasovni ˇzig zadnje prijave (Last Sign-in). V vsaki vrstici je tudi gumb za izbris in spreminjanje uporabnika.

Za izbris uporabnika sta potrebna dva pritiska. Sprva pritisk na gumb za izbris in nato pritisk na potrditveni gumb (glej sliko 5.4), ki proˇzi zahtevek za izbris. Ob uspeˇsnem zahtevku se v vrstico uporabnika v podatkovni bazi v polje deleted zapiˇse vrednost1. Zapiˇse se tudi trenutni ˇcasovni ˇzig v polje dateDeleted. Uporabniki z vrednostjodeleted postavljeno na1se na pogledu ne izpisujejo.

5.1.4 Dodajanje uporabnika

Na pogledu ”users/add“ se nahaja obrazec, podoben tistemu iz pogleda za registracijo (glej sliko 5.5). Ob veljavnih podatkih se ob kliku na gumb sproˇzi

Slika 5.4: Pogled za pregled uporabnikov in primer izbrisa uporabnika.

zahtevek za dodajanje uporabnika.

Slika 5.5: Pogled za dodajanje uporabnika.

5.1.5 Spreminjanje nastavitev uporabnika

Nastavitve uporabnika lahko spreminjamo na pogledu ”users/:id“(glej sliko 5.6), kjer id definira uporabnika, ki ga ˇzelimo obravnavati. Pogled med

dru-Diplomska naloga 35 gim omogoˇca tudi resetiranje (pozabljenih) gesel.

Slika 5.6: Pogled za spreminjanje uporabniˇskih podatkov.

5.1.6 Nastavitve raˇ cuna

Administratorji lahko na pogledu ”settings“ pregledujejo in spreminjajo tre-nutne vrednosti raˇcunov (glej sliko 5.7). Zahtevek za posodobitev vrednosti se proˇzi ob pritisku na gumb.

5.2 Analiza podatkov ddPCR

Analiza je razdeljena na veˇc korakov, ki si morajo slediti po vrsti. Izvajajo se na pogledu “analyze” (glej sliko 5.8). Pravice do analize imajo vsi prijavljeni uporabniki.

5.2.1 Branje podatkov

V prvem koraku, preko vnosa za datoteke, uporabnik iz datoteˇcnega sistema naprave v aplikacijo naloˇzi datoteke, nad katerimi bo izvajal analizo.

Slika 5.7: Pogled z nastavitvami raˇcuna.

Slika 5.8: Prvi obisk pogleda za izvajanje analiz.

5.2.2 Izbira podatkov

Na razpolago sta dva zavihka, z razliˇcnim naˇcinom izbire. Prvi je izbira s seznamom (angl. list view), kjer uporabnik preko potrditvenega polja (angl.

checkbox) potrdi izbiro datoteke (glej sliko 5.9). Privzeta vrednost izbire je pozitivna.

Diplomska naloga 37

Slika 5.9: Izbiranje treh datotek iz seznama za datoteke.

Drugi naˇcin izbire je grafiˇcni (angl. well matrix view) in predstavlja format ploˇsˇcice s 96 luknjicami (angl. wells) za vzorce (glej sliko 5.10). V podjetju namreˇc pri vseh analizah ddPCR uporabljajo ravno tako ploˇsˇcico, analizo pa nato izvajajo po vrsticah, stolpcih ali pa poljubno, zato tak naˇcin prikaza uporabniku pomaga pri izbiri veˇcjih koliˇcin datotek. Datoteke za analizo uporabnik izbira s posameznim klikom na celico ali pa na naˇcin angl.

drag-to-select. V katero celico v matriki spada doloˇcena datoteka, se doloˇci tako, da se ime datoteke, denimo “ImePloˇsˇce A02 Amplitude.csv”, razdeli na 3 dele:

• ImePloˇsˇce – vrednost doloˇci izvajalec in nima vedno enakega ˇstevila znakov.

• A – v kateri vrstici na ploˇsˇci se nahaja vzorec.

• 02 – v katerem stolpcu na ploˇsˇci se nahaja vzorec.

V tretjem koraku se nahaja izbirni gumb (angl. radio button), s katerim uporabnik doloˇci, kateri kanal bo vkljuˇcen v analizo v primeru, da je v vzorcu oziroma jamici veˇc kot en kanala.

Slika 5.10: Izbiranje veˇc datotek z matriko, ki je podobna ploˇsˇci s 96 jami-cami.

5.2.3 Analiza in pregled

V ˇcetrtem koraku se nahajajo gumbi, ki proˇzijo zahtevek za analizo podatkov na streˇzniku. Na streˇznik se poˇsljejo vse izbrane datoteke. Ker se procesi-rajo velike datoteke (velike od 100KB do 1MB), traja pribliˇzno 5 sekund na datoteko, da streˇznik odgovori na zahtevek. Odgovor vkljuˇcuje JSON format tabele. Tabele se nato izriˇsejo na pogledu, pod tabelo pa se nahaja tudi obra-zec za izvoz v CSV formatu in ponuja spreminjanje loˇcitvenega znaka (angl.

delimiter) ter moˇznost zapisa vrednosti z navednicama (glej sliko 5.11).

5.2.4 Poroˇ cilo

Ob konˇcani analizi poleg tabel JSON odgovor vsebuje ˇse vrednost reportId – ID mape na streˇzniku, ki vsebuje vse potrebne informacije za generiranje poroˇcila.

V ˇsestem koraku se nahajata dve vnosni polji. V prvo vnosno polje upo-rabnik vpiˇse morebitne zapiske. V drugo vnosno polje se zapiˇse (decimalna) ˇstevilka, ki definira dopustno mejo za odstotek deˇzja.

Diplomska naloga 39

Slika 5.11: Izris dveh tabel za Lievensovo in Jonesovo metodo.

Ob kliku na gumb v sedmem koraku se na streˇznik poˇslje zahtevek, na katerega streˇznik odgovori z datoteko XLSX (angl. Microsoft Excel Open XML Spreadsheet ). Datoteka oziroma preglednica vsebuje veˇc zavihkov, ki so opisani v nadaljevanju.

Zavihek Info

Na prvi strani so zapisani vsi podatki, ki niso direkten rezultat metod za analizo (glej sliko 5.12). Ti podatki so:

• podatki o izvajalcu analize (name, email, id, accountId);

• ˇcasovni ˇzig v Lokalnem formatu;

• ˇcasovni ˇzig v UTC formatu;

• zapiski;

• mejna vrednost odstotka deˇzja;

• seznam imen analiziranih datotek.

Slika 5.12: Zavihek z informacijami o analizi.

Zavihek Plots

Na drugem zavihku se nahajajo 3 slike grafov (glej sliko 5.13). Grafa 1 in 2 prikazujeta rezultat Lievensove metode. Graf 3 prikazuje primerjavo koncentracij med izvedenimi metodami.

Zavihki Lievens, Jones, Dreo in Jacobs

Ostali zavihki imajo imena po izvedenih metodah (glej sliko 5.14). Vsebujejo tabelo s stolpci well, nPositive, nNegative, concentration, lowerBound, upper-Bound, nRain. Vsem metodam, razen Lievens, streˇznik pripne ˇse dva dodatna stolpca:

• percentageRain – deleˇz deˇzja po formuli nRain/nValid.

Diplomska naloga 41

Slika 5.13: Zavihek s tremi grafi rezultatov.

• rainGreaterThanCutoff – vsebuje vrednost True, ˇce je vrednost percen-tageRainveˇcja od definirane mejne vrednosti deˇzja. V nasprotnem pri-meru vsebuje vrednost False.

Slika 5.14: Zavihek s tabelo rezultatov Jacobsove metode analize.

Poglavje 6 Zakljuˇ cek

V okviru diplomskega dela sem razvil aplikacijo, ki omogoˇca izvedbo osnovnih analiz podatkov ddPCR in s tem zadostuje podanim specifikacijam. Razvita reˇsitev je enostavna za uporabo za vsakega uporabnika in omogoˇca izvaja-nje funkcij, ki jih je podjetje ˇzelelo: tvorjenje uporabniˇskih raˇcunov, izvoz poroˇcila, analiziranje veˇc podatkov hkrati itd. Z naˇcinom pisanja kode, ki omogoˇca skalabilnost in je dobro dokumentirana, aplikacija omogoˇca moˇznost relativno enostavne nadgradnje z dodatnimi funkcionalnostmi v bliˇznji pri-hodnosti.

Aplikacijo bi lahko nadgradili s ˇstevilnimi dodatnimi funkcionalnostmi, kot je na primer vkljuˇcitev formule za izraˇcun ˇstevila kopij tarˇc v vzorcu (namesto uporabe pribliˇzka) [11, p. 55], izraˇcun resolucije s spremenljivkami iz poglavja 2.4 kot opisano v [16], definiranje velikosti genoma organizma, v katerem se meri tarˇco, generiranje poroˇcil v drugih formatih, poˇsiljanje poroˇcil preko e-poˇste, revizijska sled (angl. audit log) itd. Kljub moˇznostim za ˇstevilne nadgraditve pa je aplikacija za izvajanje analiz podatkov ddPCR uporabna ˇze v trenutni obliki in tako predstavlja smiselno zaokroˇzeno celoto.

43

Clanki v revijah ˇ

[1] Antonio Alonso in sod. “Real-time PCR designs to estimate nuclear and mitochondrial DNA copy number in forensic and ancient DNA studies”. V: Forensic science international 139.2-3 (2004), str. 141–

149.

[7] Tanja Dreo in sod. “Optimising droplet digital PCR analysis approa-ches for detection and quantification of bacteria: a case study of fire blight and potato brown rot”. V:Analytical and bioanalytical chemistry 406.26 (2014), str. 6513–6528.

[9] Russell Higuchi in sod. “Kinetic PCR analysis: real-time monitoring of DNA amplification reactions”. V:Bio/technology11.9 (1993), str. 1026–

1030.

[10] Benjamin J Hindson in sod. “High-throughput droplet digital PCR system for absolute quantitation of DNA copy number”. V:Analytical chemistry 83.22 (2011), str. 8604–8610.

[12] Bart KM Jacobs in sod. “Model-based classification for digital PCR:

your umbrella for rain”. V:Analytical chemistry 89.8 (2017), str. 4461–

4467.

[13] Mathew Jones in sod. “Low copy target detection by Droplet Digi-tal PCR through application of a novel open access bioinformatic pi-peline,‘definetherain’”. V: Journal of virological methods 202 (2014), str. 46–53.

45

[16] A Lievens in sod. “Measuring digital PCR quality: performance para-meters and their optimization”. V: PloS one 11.5 (2016), e0153317.

[19] Kary B Mullis in Fred A Faloona. “Specific synthesis of DNA in vitro via a polymerase-catalyzed chain reaction”. V: Methods in enzymology 155 (1987), str. 335–350.

[26] Emanuel Parzen. “On estimation of a probability density function and mode”. V:The annals of mathematical statistics 33.3 (1962), str. 1065–

1076.

[38] PJ Sykes in sod. “Quantitation of targets for PCR by use of limiting dilution”. V: Biotechniques 13.3 (1992), str. 444–449.

[39] Stefan Tilkov in Steve Vinoski. “Node. js: Using JavaScript to build high-performance network programs”. V: IEEE Internet Computing 14.6 (2010), str. 80–83.

[40] Wim Trypsteen in sod. “ddpcRquant: threshold determination for sin-gle channel droplet digital PCR experiments”. V: Analytical and bioa-nalytical chemistry 407.19 (2015), str. 5827–5834.

[42] Bert Vogelstein in Kenneth W Kinzler. “Digital PCR”. V:Proceedings of the National Academy of Sciences 96.16 (1999), str. 9236–9241.

[43] Peng Zhou in sod. “Discovery of a novel coronavirus associated with the recent pneumonia outbreak in humans and its potential bat origin”.

V: BioRxiv (2020).

Clanki v zbornikih ˇ

[5] Gavin Bierman, Mart´ın Abadi in Mads Torgersen. “Understanding typescript”. V:European Conference on Object-Oriented Programming.

Springer. 2014, str. 257–281.

[15] Chang-Hung Lee, Cheng-Ru Lin in Ming-Syan Chen. “Sliding-window filtering: an efficient algorithm for incremental mining”. V:Proceedings of the tenth international conference on Information and knowledge management. 2001, str. 263–270.

[35] Bruce Schneier. “Description of a new variable-length key, 64-bit block cipher (Blowfish)”. V: International Workshop on Fast Software En-cryption. Springer. 1993, str. 191–204.

[36] Jeremy Siek in Walid Taha. “Gradual typing for objects”. V:European Conference on Object-Oriented Programming. Springer. 2007, str. 2–27.

47

Poglavja v knjigah

[18] Laurence Moroney. “The firebase realtime database”. V:The Definitive Guide to Firebase. Springer, 2017, str. 51–71.

49

Celotna literatura

[1] Antonio Alonso in sod. “Real-time PCR designs to estimate nuclear and mitochondrial DNA copy number in forensic and ancient DNA studies”. V: Forensic science international 139.2-3 (2004), str. 141–

149.

[2] Angular web framework.url:https://angular.io/docs(pridobljeno 14. 9. 2021).

[3] Base64-URL encoding documentation. url: https : / / datatracker . ietf.org/doc/html/rfc4648#section-5(pridobljeno 17. 9. 2021).

[4] NPM package Bcrypt. url: https://github.com/kelektiv/node.

bcrypt.js(pridobljeno 13. 9. 2021).

[5] Gavin Bierman, Mart´ın Abadi in Mads Torgersen. “Understanding typescript”. V:European Conference on Object-Oriented Programming.

Springer. 2014, str. 257–281.

[6] Bootstrap (front-end framework).url:https://blog.getbootstrap.

com/(pridobljeno 15. 9. 2021).

[7] Tanja Dreo in sod. “Optimising droplet digital PCR analysis approa-ches for detection and quantification of bacteria: a case study of fire blight and potato brown rot”. V:Analytical and bioanalytical chemistry 406.26 (2014), str. 6513–6528.

[8] Brad Green in Shyam Seshadri. AngularJS. ”O’Reilly Media, Inc.”, 2013.

51

[9] Russell Higuchi in sod. “Kinetic PCR analysis: real-time monitoring of DNA amplification reactions”. V:Bio/technology11.9 (1993), str. 1026–

1030.

[10] Benjamin J Hindson in sod. “High-throughput droplet digital PCR system for absolute quantitation of DNA copy number”. V:Analytical chemistry 83.22 (2011), str. 8604–8610.

[11] Bio-Rad Laboratories Inc.Droplet Digital PCR Application Guide Bul-letin 6407. English. Ver. B. Bio-Rad Laboratories Inc. 9. sep. 2021.

[12] Bart KM Jacobs in sod. “Model-based classification for digital PCR:

your umbrella for rain”. V:Analytical chemistry 89.8 (2017), str. 4461–

4467.

[13] Mathew Jones in sod. “Low copy target detection by Droplet Digi-tal PCR through application of a novel open access bioinformatic pi-peline,‘definetherain’”. V: Journal of virological methods 202 (2014), str. 46–53.

[14] Michael Jones, Brain Campbell in Chuck Mortimore. JSON Web To-ken (JWT) profile for OAuth 2.0 client authentication and authoriza-tion Grants. 2015. url: https : / / tools . ietf . org / html / rfc7523 (pridobljeno 12. 9. 2021).

[15] Chang-Hung Lee, Cheng-Ru Lin in Ming-Syan Chen. “Sliding-window filtering: an efficient algorithm for incremental mining”. V:Proceedings of the tenth international conference on Information and knowledge management. 2001, str. 263–270.

[16] A Lievens in sod. “Measuring digital PCR quality: performance para-meters and their optimization”. V: PloS one 11.5 (2016), e0153317.

[17] Harvey Lodish in sod. Molecular cell biology. Macmillan, 2008.

[18] Laurence Moroney. “The firebase realtime database”. V:The Definitive Guide to Firebase. Springer, 2017, str. 51–71.

Diplomska naloga 53 [19] Kary B Mullis in Fred A Faloona. “Specific synthesis of DNA in vitro via a polymerase-catalyzed chain reaction”. V:Methods in enzymology 155 (1987), str. 335–350.

[20] NPM package AG Grid Angular Component. url: https://www.ag-grid.com/javascript-data-grid/ (pridobljeno 17. 9. 2021).

[21] NPM package csv-merger.url: https://github.com/behroozk/csv-merger (pridobljeno 17. 9. 2021).

[22] NPM package ExcelJS. url: https://github.com/exceljs/exceljs (pridobljeno 17. 9. 2021).

[23] NPM package Multer. url:https://github.com/expressjs/multer (pridobljeno 17. 9. 2021).

[24] NPM package ngx-toastr toast messages. url: https://github.com/

scttcper/ngx-toastrs (pridobljeno 17. 9. 2021).

[25] NPM package Papa Parse. url: https://www.papaparse.com/ (pri-dobljeno 17. 9. 2021).

[26] Emanuel Parzen. “On estimation of a probability density function and mode”. V:The annals of mathematical statistics 33.3 (1962), str. 1065–

1076.

[27] Aleksander Merhar.Zaledni del aplikacije.url:https://github.com/

AleksanderMerhar/pcr-app (pridobljeno 2. 9. 2021).

[28] Aleksander Merhar. Celni del aplikacije.ˇ url: https://github.com/

AleksanderMerhar/pcr-app-frontend(pridobljeno 2. 9. 2021).

[29] Postman platform for API development. url:https://www.postman.

com/company/about-postman/(pridobljeno 17. 9. 2021).

[30] Aleksander Merhar.Postman dokumentacija testnih klicev na streˇznik.

url:https://documenter.getpostman.com/view/13574413/U16qJiKL (pridobljeno 17. 9. 2021).

[31] NPM package R-integration.url:https://github.com/FabrizioSandri/

r-integration(pridobljeno 13. 9. 2021).

[32] R package ddpcr: Analysis and Visualization of Droplet Digital PCR in R and on the Web.url: https://CRAN.R-project.org/package=

ddpcr (pridobljeno 14. 9. 2021).

[33] R package dpcR: Digital PCR Analysis. url: https : / / CRAN . R -project.org/package=dpcR (pridobljeno 14. 9. 2021).

[34] Sass stylesheet language.url: https://sass-lang.com/ (pridobljeno 14. 9. 2021).

[35] Bruce Schneier. “Description of a new variable-length key, 64-bit block cipher (Blowfish)”. V: International Workshop on Fast Software En-cryption. Springer. 1993, str. 191–204.

[36] Jeremy Siek in Walid Taha. “Gradual typing for objects”. V:European Conference on Object-Oriented Programming. Springer. 2007, str. 2–27.

[37] Supabase.url: https://supabase.io/(pridobljeno 27. 6. 2021).

[38] PJ Sykes in sod. “Quantitation of targets for PCR by use of limiting dilution”. V: Biotechniques 13.3 (1992), str. 444–449.

[39] Stefan Tilkov in Steve Vinoski. “Node. js: Using JavaScript to build high-performance network programs”. V: IEEE Internet Computing 14.6 (2010), str. 80–83.

[40] Wim Trypsteen in sod. “ddpcRquant: threshold determination for sin-gle channel droplet digital PCR experiments”. V: Analytical and bioa-nalytical chemistry 407.19 (2015), str. 5827–5834.

[41] Machteld Varewyck. “Analysis of Digital PCR Data with R”. Magistr-sko delo. Ghent universitiy, Faculty of Sciences, Department of Mathe-matical Modelling, Statistics in Bioinformatics, 2016.

[42] Bert Vogelstein in Kenneth W Kinzler. “Digital PCR”. V:Proceedings of the National Academy of Sciences 96.16 (1999), str. 9236–9241.

[43] Peng Zhou in sod. “Discovery of a novel coronavirus associated with the recent pneumonia outbreak in humans and its potential bat origin”.

V: BioRxiv (2020).