Einde stage

Mijn stage is afgelopen op woensdag 1 juni. Tijdens mijn 3 maanden schreef ik een uitgebreide Thesis over mijn werk. U kan deze vinden op de volgende link: Download (3,2 mb) More »

Stage Dag #62

Vandaag begon ik met de modus-based percentiles te fixen. Dit was redelijk snel opgelost. Daarna begon ik aan de opdracht om de read ACS node mogelijk te verbeteren door enkele zaken uit More »

Stage Dag #61

Vandaag werkte ik wat verder aan de Savitzky-Golay smoothing. Hierbij werd de eerste lijn in de lineplot nog verkeerd weergegeven door een incorrecte berekening. Deze werd opgelost. Ook de kleur werd even More »

Stage Dag #59 en 60

Deze week werkte ik 2 dagen (de overige 3 dagen zal ik volgende week uitoefenen). Hetgeen ik aan werkte was vooral aanpassingen die nog moesten gebeuren. Zoals vorige week aangehaald werd de More »

Stage Dag #55, 56, 57 en 58

Drukke week gehad! Deze week stond vooral in het teken van de nieuwe workflow die gemaakt moest worden. Deze kreeg de naam ‘Purified Cells’. De bedoeling van nog op het einde een More »

Einde stage

Mijn stage is afgelopen op woensdag 1 juni. Tijdens mijn 3 maanden schreef ik een uitgebreide Thesis over mijn werk.

U kan deze vinden op de volgende link: Download (3,2 mb)

Stage Dag #62

Vandaag begon ik met de modus-based percentiles te fixen. Dit was redelijk snel opgelost.

Daarna begon ik aan de opdracht om de read ACS node mogelijk te verbeteren door enkele zaken uit te proberen. Ik voerde profiling uit en probeerde de TrueZIP library uit. Mijn resultaten waren als volgt:

Comparing ZIP readers: (using ACS Reader (single well))
Buffer 512    - 2953, 2968
Buffer 9192  - 2953, 2922
Buffer 32768  - 2797, 2797, 2906
Buffer 262144 - 2984, 2859

Profile ACS reader:
reading TOC: 0, 0, 0
read ZipFile: 2969, 2859, 2156
parseCFCS: 4078, 4032, 3360
creating bufferdatatable output: 13094, 13093, 12906
creating bufferdatatable keywords: 16, 47, 15creating bufferdatatable extra: 15, 0, 0

TrueZIP–
read ZipFile: 2359 (TrueZIP), 2282 (TrueZIP)
parseCFCS: 4313, 3265
creating bufferdatatable output: 12828, 12531
creating bufferdatatable keywords: 31, 16
creating bufferdatatable extra: 16, 0

TrueZIP (direct doorsturen van TrueZip inputstream)–
parseCFCS: 5547, 6171 (ophalen van stream en parsen gebeurt dan in 1x)
creating bufferdatatable output: 12516, 12000
creating bufferdatatable keywords: 15, 0
creating bufferdatatable extra: 0, 16

//Conclusie:
De BUFFER constante aanpassen heeft weinig tot geen effect.
TrueZIP is ‘gemakkelijker’ (minder methodes) om files uit een zipfile te verkrijgen.
Deze data zit dan echter nog in klassen speciaal van TrueZip zelf, waardoor het FCS parsen (gebruik van stream) wat trager wordt.
Geen tot weinig snelheidswinst dus, enig mogelijk voordeel is wat gebruiksgemak.
Heb echter wel een onderdeel kunnen verbeteren wat kleine snelheidswinst van 2 sec oplevert

Verder zorgde ik nog voor een kleuren legende bij de percentiles en fixte ik een bug bij het editen van een percentile. De node zou nu volledig af moeten zijn. Morgen is voorzien voor documentatie toe te voegen waar nog nodig.

Stage Dag #61

Vandaag werkte ik wat verder aan de Savitzky-Golay smoothing. Hierbij werd de eerste lijn in de lineplot nog verkeerd weergegeven door een incorrecte berekening. Deze werd opgelost. Ook de kleur werd even naar iets duidelijker ingesteld.

Verder werkte ik vandaag verder aan de percentiles visueel te laten zien. In plaats van aanpassingen toe te passen, heb ik even de code opnieuw opgesteld en geschreven. De percentiles op zich werken nu en baseren zich op de berekende modus.

Modus-based percentiles, waarbij de modus waarde zelf kan ingesteld worden werkt nog niet met deze code. Dit zal voor morgen zijn.

Verder kreeg ik ook nog de opdracht om te bekijken of performantie van de zip/unzip kon verbeterd worden door met de buffersize te spelen. Ook het TrueZIP pakket dat ikzelf aanraadde mag ik eens bekijken of dit sneller zou werken.

Stage Dag #59 en 60

Deze week werkte ik 2 dagen (de overige 3 dagen zal ik volgende week uitoefenen).

Hetgeen ik aan werkte was vooral aanpassingen die nog moesten gebeuren. Zoals vorige week aangehaald werd de redefine node opnieuw ineen gestoken dmv de vernieuwe create versie.

Hierdoor moesten er nog enkele aanpassingen gebeuren om deze node terug volledig operationeel te maken. Zo werd hiliting er terug ingestoken en krijgen de gates nu dynamisch kleuren toegewezen. Een aanpassing hierbij is dat bij opeenvolgende redefines hij ook al controleren hoeveel redefines er al voor hem gebeurd zijn en zal hij dus een opvolgende kleur hieruit bepalen.

Buiten een reeks bugfixes werd ook een visuele optie toegevoegd om de Savitzky-Golay smoothing (link) van de lineplot te creëren.

Verder werd de population hierarchy nog aangepast zodat die zijn CLOB data ook zo behandeld en op de specifieke manier voor deze soort data ophaald, in tegenstelling tot de vroegere vorm waarbij deze gewoon naar een string omgezet werd.

 

Stage Dag #55, 56, 57 en 58

Drukke week gehad!

Deze week stond vooral in het teken van de nieuwe workflow die gemaakt moest worden. Deze kreeg de naam ‘Purified Cells’. De bedoeling van nog op het einde een nieuwe flow te maken was om te bekijken of onze gecreerde nodes voldoende zijn om standaard variaties uit te voeren.

Het grote deel van de nodes kon inderdaad hergebruikt worden. Er werden wel aanpassingen aangebracht aan I/O nodes zodat deze niet zomaar een volledige plate inlezen, maar met flow variabelen overweg kunnen en zo in een loop kunnen gebruikt worden. Door deze aanpassing is het mogelijk om per well te loopen, wat ervoor zorgt dat het geheugen niet volledig wordt opgebruikt om tabellen in te lezen.

Deze node maakt gebruik van de bestaande TOC reader node functionaliteit om uit de Table of Content van de collectiefile te bekijken over welke wells hij moet loopen. Er bestond al een node die uit een ACS een bepaalde well kan inlezen, deze werd gewoon aangepast zodat deze niet geconfigureerd moet worden maar zijn informatie uit de vorige node kan halen via flow variabelen.

Op donderdag hadden we een meeting waarbij we de flow lieten zien aan een biologe. Zij gaf wat meer informatie over welke features er gecalculeerd moeten worden.

De redefine 1D node, de redefine versie van de histogram node, bleek niet echt up to date meer te zijn. In plaats van alle veranderingen proberen toe te passen, werkte ik openstaande aanpassingen aan de create versie af en gebruikte dan een kopie hiervan om de redefine versie op te stellen.

Qua aanpassingen zorgde ik voor een redefine modus binnenin de create node, de mogelijkheid om te zien welke gates gedefineerd zijn in een lijst en ze van hieruit aan te passen (naam) of te verwijderen. De nodes kunnen ook werken met logaritmische data, door tijdelijk hun data te transformeren en dan weer terug te zetten. Verder waren er nog een reeks visuele aanpassingen, om bijvoorbeeld de modus als een stippellijn voor te stellen ipv een volle lijn, om verwarring met gates te verminderen. Er werd ook een ‘information pane’ toegevoegd bovenaan, die op een meer ordelijke manier de gatenamen, percentages binnenin de gates en de as informatie weergeeft. De node maakt ook geen gebruik meer van workflow variabelen maar gewone flow variabelen, om het proper te houden.

Alle JIRA issues zijn nu verholpen en de create versie is ‘af’. Openstaande taken zijn nu nog ervoor zorgen dat de redefine kleuren kan inlezen of zelf kleuren toekennen. Hoewel deze functionaliteit er al in zat moet deze nog uitgebreid worden.

Doordat onze stagebegeleider een week op verlof is, zullen we volgende week maar 2 dagen (di, do) werken, en dan de overige 3 dagen (ma, di, wo) in de week daarop nog doen. We krijgen ondertussen tijd om aan onze thesis verder te werken.

Drukke week gehad!

Deze week stond vooral in het teken van de nieuwe workflow die gemaakt moest worden. Deze kreeg de naam ‘Purified Cells’. De bedoeling van nog op het einde een nieuwe flow te maken was om te bekijken of onze gecreerde nodes voldoende zijn om standaard variaties uit te voeren.

Het grote deel van de nodes kon inderdaad hergebruikt worden. Er werden wel aanpassingen aangebracht aan I/O nodes zodat deze niet zomaar een volledige plate inlezen, maar met flow variabelen overweg kunnen en zo in een loop kunnen gebruikt worden. Door deze aanpassing is het mogelijk om per well te loopen, wat ervoor zorgt dat het geheugen niet volledig wordt opgebruikt om tabellen in te lezen.

Deze node maakt gebruik van de bestaande TOC reader node functionaliteit om uit de Table of Content van de collectiefile te bekijken over welke wells hij moet loopen. Er bestond al een node die uit een ACS een bepaalde well kan inlezen, deze werd gewoon aangepast zodat deze niet geconfigureerd moet worden maar zijn informatie uit de vorige node kan halen via flow variabelen.

Op donderdag hadden we een meeting waarbij we de flow lieten zien aan een biologe. Zij gaf wat meer informatie over welke features er gecalculeerd moeten worden.

De redefine 1D node, de redefine versie van de histogram node, bleek niet echt up to date meer te zijn. In plaats van alle veranderingen proberen toe te passen, werkte ik openstaande aanpassingen aan de create versie af en gebruikte dan een kopie hiervan om de redefine versie op te stellen.

Qua aanpassingen zorgde ik voor een redefine modus binnenin de create node, de mogelijkheid om te zien welke gates gedefineerd zijn in een lijst en ze van hieruit aan te passen (naam) of te verwijderen. De nodes kunnen ook werken met logaritmische data, door tijdelijk hun data te transformeren en dan weer terug te zetten. Verder waren er nog een reeks visuele aanpassingen, om bijvoorbeeld de modus als een stippellijn voor te stellen ipv een volle lijn, om verwarring met gates te verminderen. Er werd ook een ‘information pane’ toegevoegd bovenaan, die op een meer ordelijke manier de gatenamen, percentages binnenin de gates en de as informatie weergeeft. De node maakt ook geen gebruik meer van workflow variabelen maar gewone flow variabelen, om het proper te houden.

Alle JIRA issues zijn nu verholpen en de create versie is ‘af’. Openstaande taken zijn nu nog ervoor zorgen dat de redefine kleuren kan inlezen of zelf kleuren toekennen. Hoewel deze functionaliteit er al in zat moet deze nog uitgebreid worden.

Doordat onze stagebegeleider een week op verlof is, zullen we volgende week maar 2 dagen (di, do) werken, en dan de overige 3 dagen (ma, di, wo) in de week daarop nog doen. We krijgen ondertussen tijd om aan onze thesis verder te werken.

Drukke week gehad!

Deze week stond vooral in het teken van de nieuwe workflow die gemaakt moest worden. Deze kreeg de naam ‘Purified Cells’. De bedoeling van nog op het einde een nieuwe flow te maken was om te bekijken of onze gecreerde nodes voldoende zijn om standaard variaties uit te voeren.

Het grote deel van de nodes kon inderdaad hergebruikt worden. Er werden wel aanpassingen aangebracht aan I/O nodes zodat deze niet zomaar een volledige plate inlezen, maar met flow variabelen overweg kunnen en zo in een loop kunnen gebruikt worden. Door deze aanpassing is het mogelijk om per well te loopen, wat ervoor zorgt dat het geheugen niet volledig wordt opgebruikt om tabellen in te lezen.

Deze node maakt gebruik van de bestaande TOC reader node functionaliteit om uit de Table of Content van de collectiefile te bekijken over welke wells hij moet loopen. Er bestond al een node die uit een ACS een bepaalde well kan inlezen, deze werd gewoon aangepast zodat deze niet geconfigureerd moet worden maar zijn informatie uit de vorige node kan halen via flow variabelen.

Op donderdag hadden we een meeting waarbij we de flow lieten zien aan een biologe. Zij gaf wat meer informatie over welke features er gecalculeerd moeten worden.

De redefine 1D node, de redefine versie van de histogram node, bleek niet echt up to date meer te zijn. In plaats van alle veranderingen proberen toe te passen, werkte ik openstaande aanpassingen aan de create versie af en gebruikte dan een kopie hiervan om de redefine versie op te stellen.

Qua aanpassingen zorgde ik voor een redefine modus binnenin de create node, de mogelijkheid om te zien welke gates gedefineerd zijn in een lijst en ze van hieruit aan te passen (naam) of te verwijderen. De nodes kunnen ook werken met logaritmische data, door tijdelijk hun data te transformeren en dan weer terug te zetten. Verder waren er nog een reeks visuele aanpassingen, om bijvoorbeeld de modus als een stippellijn voor te stellen ipv een volle lijn, om verwarring met gates te verminderen. Er werd ook een ‘information pane’ toegevoegd bovenaan, die op een meer ordelijke manier de gatenamen, percentages binnenin de gates en de as informatie weergeeft. De node maakt ook geen gebruik meer van workflow variabelen maar gewone flow variabelen, om het proper te houden.

Alle JIRA issues zijn nu verholpen en de create versie is ‘af’. Openstaande taken zijn nu nog ervoor zorgen dat de redefine kleuren kan inlezen of zelf kleuren toekennen. Hoewel deze functionaliteit er al in zat moet deze nog uitgebreid worden.

Doordat onze stagebegeleider een week op verlof is, zullen we volgende week maar 2 dagen (di, do) werken, en dan de overige 3 dagen (ma, di, wo) in de week daarop nog doen. We krijgen ondertussen tijd om aan onze thesis verder te werken.

Stage Dag #54

Vandaag begon met een meeting om te kijken hoe ver we stonden en wat er nog allemaal gedaan moet worden.

Ik begon aan de nieuwe workflow te maken, maar merkte snel dat de redefine gate nog enkele fouten (jitterplot punten, gedrag bij infinite gates, config die niet consitent bleef opgeslaan en gates die niet gecleared werden bij een reset) bevatte. Deze zijn nu grotendeels opgelost en de node zou klaar voor gebruik moeten zijn.

Verder zorgde ik nog voor bugfixes bij de Gating ML Writer die een gelijkaardig probleem als de CSV writer had, en bij de compensation workflow, die verward geraakte rond welke lambda waarde hij mocht gebruiken. Uiteindelijk zal dit wel moeten aangepast worden omdat hij data moet concateneren, wat nog niet gedaan is.

Mijn eerste prioriteit is nu verder werken aan de nieuwe workflow en deze tot op een bepaald stuk werkende krijgen. Ik moet nog wel eens bespreken hoe de laatste stap naar PHAEDRA hierbij gebeurd. Daarna kan ik de openstaande JIRA issues van de range gates verder afwerken.

 

Stage Dag #53

Vrijdag werkte ik verder aan de JIRA issues ivm de range gate. Ik zorgde ervoor dat een nieuwe tab is toegevoegd aan het properties menu, die bijhoud welke gates er zijn aangemaakt. Deze gates kunnen van naam aangepast worden en verwijderd, al zit er nog een bug in het verwijderen, waarbij de hashmaps niet meer overeen stemmen.

Verder worden er nu percentages  binnenin de gates getoond, en wordt de gatenaam anders voorgesteld.

In de namiddag hadden we nog een bespreking waarin het werk van volgende week werd uitgelegd. De JIRA issues laten we even terzijde, en we gaan elk proberen om een nieuwe workflow te maken naar de wensen van een wetenschapper. Zowel Toon als ikzelf hebben andere workflows toegewezen gekregen. De bedoeling is om na te gaan of er nog fundamentele zaken missen in onze nodes, aangezien deze workflows een goede representatie gaan zijn van de variaties die gaan gevraagd worden.

Stage Dag #52 & #53

Woensdag en Donderdag werkte ik verder aan de todos af te werken.

Woensdag werkte ik aan de Compensation visualiser verder, en zorgde er vooral voor dat de lambda waarde nu aangepast kan worden in de visualiser zelf.

Hij zal dan alle (originele, relevante) data overlopen en de glog transformatie toepassen met een aangepaste lambda. Ik verwerkte deze functionaliteit niet meer uit in de aparte visualiser node, maar breidde de generieke node uit.

Deze zal kijken naar zijn assen om uit te maken (is glog waarde or ruwe waarde?) of hij de optie moet weergeven om de lambda aan te passen. Aangezien dit de generieke node is werkt dit niet enkel met 1 of 2 datasets, maar met ongeacht hoeveel, zolang er op voorhand een ‘Type’ kolom wordt meegegeven.

Ik herwerkte hierbij ook de code om van plot order te verwisselen, om zo bugs eruit te halen.

 

Donderdag werkte ik verder aan de todos van de range gate node. Ik zorgde ervoor dat de binning nu vanaf het begin, en bij het aanpassen van de binning kolom de ‘automatic bin size’ berekend. Zo wordt altijd de meest geschikte bin size gekozen, en hoeft de gebruiker dit niet zelf in te vullen.

De gebruiker kan dit nog steeds aanpassen, maar ook de slider hiervoor is veranderd om enkel een percentage van waarden te tonen gecentreerd rondom de berekende, meest geschikte waarde.

Ik zorgde ook voor enkele bugfixes, en voor de mogelijkheid om de kleur van de fill waarde onder de line plot aan te passen. Ik herordende ook het tekenen van zaken zodat de fill laag als laatste wordt getekend. Resizen is ook mogelijk.

 

Stage Dag #51

Ik werkte vandaag nog enkele todos af.

De Population Hierarchy node is nu volledig af. Deze kreeg een extra kolom toegewezen, met name de description. De waarden worden nu dynamisch uit de database gehaald, afhankelijk van de plate waarmee de workflow op dat moment bezig is (plate id).

Verder werd de jFrame vervangen door een view, mogelijk omdat er geen uitvoering is nadat de view getoond word, en deze maakt het mogelijk om de frame opnieuw te openen nadat de execution éénmaal is uitgevoerd. Hierin verwerkt zit al direct ook de mogelijkheid om de frame ‘always on top’ te laten verschijnen. Dit wordt ook standaard aangezet.

Ik werkte ook de aanpassingen aan de CSV/TSV writer af. Ik fixte de bugs en integreerde mijn aanpassingen met de aanpassingen van een mede-programmeur.

 

Stage Dag #50

Deze week zal vooral het oplossen van nog openstaande problemen of wensen zijn.

Ik begon de dag met het afwerken van de generieke Multiple 2D Scatter node. De bug ivm het reordenen is ook opgelost.

Aan de range gate voegde ik nog % toe bij de create gate, en ik zorgde ervoor dat de ruimte onder de lijnplot wordt opgevuld met een kleur.

Verder werkte ik aan de population hierarchy node (resizen, always on top) en werkte verder aan de compensatie node. Ik besprak met mijn stagebegeleider ook nog een hele reeks zaken die nog kunnen verbetert of aangepast kunnen worden. Ik heb nu een hele reeks kleine to dos die ik kan afwerken.