HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • Travis.CG: Annyiban én is hibás vagyok, hogy könnyen előjönnek belőlem negatív posztok, ezt akartam ellensúly... (2025.05.22. 19:34) Ne csak a rosszat halljátok
  • sdani: Oh... néha eszembe jut, hogy az EBI után esetleg vissza kellene menni valamennyire az akadémiai vo... (2025.03.18. 16:58) Pontos, jól behatárolt célok
  • legyen úgy: Szia, Értem és köszönöm a válaszodat! T. (2025.02.24. 18:23) Expose CTF
  • sdani: Sajnos nekem is hasonló érzéseim vannak az R kiszorulásával kapcsolatban. Remélem jobban fogja tar... (2024.04.29. 10:48) R meetup
  • sdani: Nagyon jók ezek a bejegyzések! Feszültséggel teli, fordulatos, mint egy jobb krimi. :D Abba ne hag... (2024.04.29. 10:35) Wgel CTF

Cseppet sem objektíven: Function 2015

2015.09.20. 22:41 Travis.CG

Ez az első Function, amit kihagyok. Mikor beszélgettem néhány itteni magyarral, azt mondták, hogy fog majd hiányozni a húsleves meg a rántott hús. Nem volt igazuk. EZ hiányzik. Kénytelen vagyok beérni a streammel.

Végighallgattam a zenekompót, és a tablet szánalmas hangszóróján keresztül az volt az érzésem, hogy itt trónfosztás lesz. Vincenzó, Teo, Slyspy is indult, de a legjobb zenék mégsem tőlük jöttek, hanem (számomra) ismeretlen zenészektől. Kérdés, a nagy név elég-e a győzelemre, vagy a közönség is hallja, hogy vérfrissítés kell. Kiderül.

Grafika. Kevés, de minőségi munka jellemezte a kézi rajzokat. Dorcyy képe annyira élethű volt, hogy rá kellett nagyítani, hogy látszódjon, ez nem fotó. Unreal mostani képe kicsit befejezetlennek tűnt. A szörny lába olyan elnagyolt volt. A freestyle grafikák között már elég sok selejt akadt. Sajnos én nem kedvelem a fotómontázsokat. Számomra olyan, mint Unityvel demót készíteni.

Fotó: Elég szokásos felhozatal, inkább poénok voltak, mint komoly képek. Ketyere képe persze kiemelkedett. Szép, hosszú expozíció volt, gondolom technikailag is nehéz volt kivitelezni a fényviszonyok kiegyenlítését. A pucér nős fotónál persze nagyon hangos taps volt. Buzavirag képe is szép volt a perspektíva miatt.

Wild/Animáció: A LAL végre nem PC zúzós demót csinált. Amin meglepődtem, hogy még értelme is volt. Cserébe a Crimson Jihad bemutatott egy PC éltető demót. A Dron Captures pedig megmutatta, hogy egy dron segítségével is lehet kreatív tartalmakat készíteni. A Perfekt sajnos túl hosszú lett, pedig teljesen kiszámítható volt. De üdítő látni ilyen alkotásokat, aminek van mondanivalója.

Demók: Most a változatosság kedvéért nem azokat az alkotásokat mutatom be, amelyek tetszettek, hanem azokat, amelyek minél jobban igyekeztek szakítani a hagyományos demókkal. Természetesen van átfedés a két halmazban, de nincs 1:1 megfeleltetés. Ami a legkevésbé igyekszik újítani, az a lights.off. Azért még felfedezhető benne a kronológikus rendezés és a különböző részek, amelyek átmennek egymásba. Emlékeztek a Toy Story első részében a tönkretett játékokra? Bizonyára az inspirálta az Elégtelen című demót. Sem nekem, sem másnak fogalma sincs, mit is akar jelenteni az a sok eklektikus elem együtt. Direkt akartak valami szokatlant, ami sikerült is. Ami viszont magasan viszi a pálmát, az a GodTV Satoritól. Itt olyan mértékben keverték az elemeket, hogy már azt is nehéz eldönteni, hogy tényleg ilyenre akarták, vagy csak bugos volt a shader kód.

Nagyon sajnálom, hogy ki kellett hagyni az idei Functiont. Különösen, hogy még palacsinta is volt. Itt, ahol a gasztronómiai kultúra szinte teljes egészében hiányzik, ez még fájóbb.

2 komment

Címkék: demoscene

Felvételi eljárás

2015.09.20. 14:40 Travis.CG

Elkészítettem a pipec kis önéletrajzomat (természetesen LaTeX-ben) és elkezdtem kitölteni a webes oldalukat is. A Leets-i Egyetem oldalához képest nagyon könnyű volt, csak három lapból állt.

Egy héttel később kaptam egy levelet, amiben közölték, hogy kapok egy próba feladatot egy előre meghatározott időpontban, a megoldást pedig két órán belül vissza kell küldenem. Az ajánlott időpontot efogadtam. Percre pontosan küldték is a levelet. Először kellett küldeni egy választ, amiben megerősítettük, hogy a levelet megkaptuk, majd néztem a feladatokat.

Perl, Java, Ruby jöhetett szóba, ezért a Perl mellett döntöttem. Az első feladatnak kaptam egy két oszlopos fájlt, amiben ló nevek voltak és a rájuk tett tétek. Olyan programot kellett írni, ami minden lóra kiírja az tétek összegét. A második feladatban ugyan ezt kellett kiírni, de tétek szerint sorba rendezve. A harmadik feladatban egy többoszlopos állomány második oszlopának egyedi azonosítóit kellett kiírni. A negyedikben meg kellett számolni, hányszor fordul elő minden egyes azonosító a harmadik oszlopból. Az ötödik már egészen bioinformatika-közeli feladat volt. Be kellett olvasni egy többszörös fasta fájlt és kiírni, hogy az egyes szekvenciákhoz milyen azonosítók tartoznak.

Összességében annyira könnyű feladatotokat adtak, hogy szerintem senkit nem szűrtek ki ezzel. Két órát adtak, de ötven perc alatt megcsináltam. Sajnos az egyik kódot túl sokáig debuggoltam.

Majd jött a Skype interjú. Ettől tartottam a legjobban, mert nem vagyok túl jó angolból. Bent maradtam a melóhelyen, bezártam az ajtót, hogy ne jöjjenek be, kétszer ellenőriztem a hangerőt és elkezdődött az interjú. Kérték, hogy meséljem el, hogyan végzem a munkámat, dolgoztam-e rákos genomokkal, mi az erősségem, gyengeségem. Kíváncsiak voltak, melyik a "legjobb" programozási nyelv, szerintem, dolgoztam-e nagy gépeken, sok adattal. Tudakolták, milyen operációs rendszereket használok. Közben annyi nyelvtani hibát vétettem, hogy még nekem is feltűnt.

Szerencsére a kapcsolat sem szakadt meg, mindvégig tiszta volt a vonal. De kétségtelen, hogy számomra az egész procedúra legnehezebb része ez volt.

Valahogy ezen is túljutottam. Két héttel később értesítettek, hogy személyes interjúra is kell menni. Angliába. Ez már döfi! Jó egy órával előbb érkeztem, de ez nem volt gond, tíz perccel az érkezésem után már beszélgettünk is. Itt jegyezném meg, ha valaki hasonló helyzetbe jut, nyomtasson ki minden minden e-mailt, amit a HR-től kap. Nagyon megkönnyíti az életét. Én is először rossz épületbe mentem be és nem tudták, hova irányítsanak. De azért megoldottam.

Az interjú követte a Skype interjú menetét, de a kérdések már inkább arra irányúltak, miként tudok beilleszkedni a csoportba. Kérdezték, inkább kutatnék-e vagy csak robot módjára parancsot hajtanék végre, mi volt a legnagyobb kutatási élményem, visszamennék-e pipettázni?

A beszélgetés után jött egy teszt. Ilyen tesztet sem töltöttem még ki. Kaptam egy Mac laptopot, amin megnyitottak egy Google Formot. Minden egyes klikkelésemet ketten nézték. A teszt nyolc részből állt. Minden egyes rész elején megkérdezte, végig akarom-e csinálni. Igen válasz esetén jöttek a kérdések.

Az első rész Unix használat volt. Kérdezték, mivel helyezek át fájlokat, melyik paranccsal változtatom meg a jogosultságokat, milyen jogosultságokat állítanék be bizonyos fájlokhoz.

A második bioinformatika volt. Hogyan nézem meg egy BAM fájl rekordjait, kaptam egy szekvenciát, aminek a koordinátáit meg kellett határozni a humán genomon. (Valami olyan szekvenciát adtak, ami az NCBI Blaston nem adott találatot, sejtettem, hogy valami átverés lesz, ezért megnéztem UCSC-n is, ahol rögtön kijött a találat)

Harmadik Perl programozás volt. Adtak egy rövid programot, amiben deklarálás nélkül használtak egy változót, use strict mellett. Kérdezték, lefut-e a program, ha nem, mit kellene megváltoztatni. Különböző paramétereket adtak meg és kíváncsiak voltak, mit ad a program eredményül.

A negyedik Java programozás volt. Fel kellett sorolni az összes mező módosítót, kérdezték mi a különbség az absztrakt osztály és az interface között,

Az ötödik C programozás volt. Írni kellett egy függvényt, ami BED formátumú sztringet generál a paraméterekből, kaptam egy struktúrát, aminél le kellett írni, hogyan helyezkedik el a memóriában.

A hatodik R programozás volt. Fel kellett sorolni fájlba író függvényeket, kérdezték hogyan szedek ki egy mátrixból adott sorokat, mi a különbség a data.frame és a mátrix között.

A hetedikben SQL-el kapcsolatos kérdések voltak. Adtak egy tábla sémát és az alapján kellett lekérdezéseket írni, fel kellett ismerni egy left joint, kérdezték, hogyan lehet SQL injection-t megelőzni. Adtak egy példa lekérdezést, kérdezték mennyire biztonságos a használata.

A nyolcadik a verzió követő rendszerekről szólt. Az első feladatnál be kellett jelölni, melyik verzió követő rendszerrel milyen mélységben boldogulok. Az ezt követő kérdéseket tetszőleges verzió követő rendszer szintaktikájával kellett megoldani. Itt én váltogattam az SVN-t és a Gitet, attól függően, melyikre emlékeztem. Volt még két általános kérdés, hogy mivel segíti a fejlesztést a verzió követő rendszer és mikor érdemes branch-elni.

Lefáradtam rendesen, és minden kategóriában legalább egy kérdést elszúrtam. Ilyenkor derül ki, a különböző IDE-k mennyire lustává teszik az embert. Utána kérdezték még, hogyan szoktam fejleszteni (írok-e unit tesztet), mikor cégnél dolgoztam, hogyan fejlesztettünk. Megjegyezték, hogy még nem találkoztak olyan emberrel, aki mind a nyolc kategóriába belekezdett volna.

A végére alaposan lefáradtam. Ebédeltünk egyet, majd délután egyenként beszéltem a csoport minden tagjával. Mindenki elmesélte, mivel járul hozzá a kutatás nagy egészéhez. Szerencsére itt voltak átfedések és igyekeztem nem elaludni. Talán még értelmes kérdéseket is intéztem mindenkihez.

A végén megkérdeztem, hány jelentkező volt eddig, de nem kaptam választ, helyette a laborvezető azt ecsetelte, hogy milyen nagyon meg volt velem elégedve, a tesztet is jól megoldottam. Utána arról beszélt, mennyi lehetőség van itt, milyen sok pályázati pénzük van. Annyira udvariasan beszéltek, hogy az volt az érzésem, nem is én kuncsorgok az állásért, hanem ők kuncsorognak nekem, hogy ide jöjjek.

Délután, mikor repültem vissza, a szememet már nem tudtam nyitva tartani.

Szólj hozzá!

Címkék: életmód

Tanácsok külföldi munkahely kereséshez

2015.09.13. 14:40 Travis.CG

Az első és legfontosabb kérdés, amit el kell dönteni, miért is akarunk külföldön munkát vállalni. Tapasztalat szerzés? Pénz keresés? Impakt faktor gyűjtés? Ha ezt eldöntöttük, máris könnyebb lesz szűrni a potenciális ajánlatok közül.

Ha tudjuk, nézzük meg a csoport eddigi munkáit. Olvassuk el a cikkeiket, nézzük meg a csoportvezető önéletrajzát. A ResearchGate, Linkedln és más oldalak segítségével elég sok információt szerezhetünk potenciális munkaadóinkról. De ugyan ilyen fontos, hogy mi magunk is kitűnjünk a tömegből. A különböző oldalakon mások megerősíthetik, hogy tényleg értünk az önéletrajzban leírt területekhez. Az önéletrajzba is betehetjük a linkeket. Minimális munkával kattinthatóvá tehetőek a PDF-ben létrehozott hivatkozások, megkönnyítve a HR és a csoportvezetők dolgát.

Néhány jel, ami arra utal, hogy ne jelentkezz a hírdetésre:

  • Azonnal keresnek valakit. Valami sürgős munkájuk akadt, esetleg az utolsó pillanatig húzták egy szerződés teljesítését. Bármi legyen is mögötte, a kiírás egyet jelent a túlórával, teljesíthetetlen határidőkkel.
  • A csoport 2 éve nem publikált értelmes cikket. Ez azt jelenti, hogy amíg ott vagy, te sem fogsz.
  • A csoport tagjai között nincs egyetlen bioinformatikus sem. Ez két élű fegyver. Egyrészt jó lehetőség, hogy hős legyél a csoport szemében, ha mindent jól megcsinálsz. Másrészt nem leszel egy hullámhosszon a többiekkel. Nem értik meg a problémáidat, nem tudsz tanácsot kérni senkitől, nem tanulsz semmi újat.
  • Hibás terminológia a kiírásban. Fogalmuk sincs, kit keresnek és mire. Valahonnan átvették a kiírást, de nem értik, mi mit takar.

Különböző egyetemek különböző stratégiákat használnak a sok jelentkező feldolgozására. Sok egyetem előre elkészített webes oldalak segítségével teszi egységessé az adatokat, feleslegessé téve a hagyományos önéletrajzokat. Ezen oldalk kitöltésére akár több nap is rámehet. Nem árt, ha már van előre elkészített ajánlás is. Volt olyan oldal, ahova még azt is be kellett írnom, miért gondolom, hogy alkalmas vagyok a poszt betöltésére. Tehát az interjúk sablon kérdései is előfordulhatnak.

Személyes vélemény, de aki jól viseli a kudarcot, az célozzon meg minél jobb lehetőséget és csökkentse az igényeit később. Agilisebbek megkereshetnek olyan laborokat is, akik nem írtak ki állást. Ha felkeltettük az érdeklődésüket, megoldják, hogy odakerüljünk.

Én színvonalas kutatásba akartam kerülni, ezért akadémiai szférában keresgéltem és olyan csoportot néztem csak, akiknek az elmúlt 3 évben legalább egy Nature/Science cikkük volt. Így figyeltem fel a Sanger Intézetre.

Szólj hozzá!

Címkék: életmód

Érdekes ember lettem

2015.09.10. 23:22 Travis.CG

Egy külső ember számára a bioinformatika se nem érdekes, se nem látványos. Úgy gondolom, sok biológus számára sem az. Ezt egyrészt tapasztalom a saját bőrömön is, ahol előfordul, hogy házon belül is küldenek egy e-mailt, hogy gyorsan kell valami, majd miután megkapják, amit akarnak, annyit sem mondanak, hogy köszönöm.

Ehhez én már teljesen hozzászoktam. Ezért is ért váratlanul, hogy hirtelen mindenki velem kezdett el foglalkozni.

Egy csoportmegbeszélésen jelentettem be, hogy a nyár vége felé szeretném kipróbálni magamat külföldön is. Gondoltam, ezzel adok elég időt, hogy találjanak egy másik e-mail címet, amire elküldhetik a "van két táblázatom, csinálj belőle egy harmadikat" típusú kéréseket.

Két dologgal nem számoltam: Az egyik, hogy a pletyka gyorsabban terjed, mint a fény. Még kutatóknál is. A másik, hogy a pánik furcsa dolgokat hoz elő az emberekből.

A csoportmegbeszélés után fél órával, mikor jöttek segítségért, már kérdezgették: tényleg elmész? A legfurcsább az volt számomra, hogy olyan emberek is odajöttek, akik nem is velem végeztetik a bioinformatikai elemzést, hanem kiküldik Angliába azt. Délután már telefonon is felhívott egy régi barátom, aki már fél éve egy e-mailt nem volt képes írni, hogy hétvégén feltétlenül találkoznunk kell, mert hallotta, hogy el fogok menni.

A főigazgató, aki olyan elfoglalt, hogy egy aláírásáért sorba kell állni, a folyosón megállított, hogy "üljünk le beszélgetni, miért is akarok elmenni".

A főnökömet berendelte egy intézetvezetőkből álló bizottság, ahol neki vázolnia kellett, hogyan fogja megoldani a "helyzetet".

Nincs semmi titok. Egyszerűen arról van szó, hogy minden post docnak szüksége van külföldi munka tapasztalatra. Ezt rögtön a PhD megszerzése után szokták meglépni. Én egy kicsit később léptem meg.

Természetesen, ahogy elmúlt az újdonság, úgy váltam ismét ismét unalmassá. Végül kezdtek megjelenni a levelezésembe a "futtasd már le ezt a Blastot, nekem nem megy" és "jó ez a heatmap, de nem lehetne a skálát megfordítani?" típusú levelek.

Szólj hozzá!

Címkék: életmód

Hello Sanger

2015.08.31. 01:59 Travis.CG

Az utóbbi időben elég nehezen jelentek meg tartalmak a blogon. Ennek nem az volt az oka, hogy már nincs miről írni, esetleg elfáradtam. Mint azt sok olvasóm már tudja, szeptembertől a Sanger intézetben folytatom a munkát a Pre-Cancer csoportban. Mivel a családnak egy új életet kell felépíteni, ez többlet munkát jelentett nekem. Még nem tudom, mikor lesz internet, megfelelő számítógép és blog alapanyag, ezért várhatóan egy hónapig nem írok új posztot.

De van egy jó hírem! A kijutás folyamatáról írtam pár posztot, amit időzítve fog megjeleníteni a rendszer. Tehát lesz olvasnivaló, csak nem demó, programozás vagy bioinformatika tárgykörben. (Igen, a villanybojler javításról sem lesz semmi.)

Nézzétek el, ha nem reagálok minden kommentre azonnal és a levelekre is későn válaszolok.

Szólj hozzá!

Címkék: életmód

Cseppet sem objektíven: Assembly2015

2015.08.31. 01:45 Travis.CG

Már régen elmúlt az Assembly, de nekem most sikerült csak feldolgozni a releaseket. Ráadásul a hamvaiból feltámadt Scene.hu is remek összefoglalót adott a partiról. Szerencsére maradt egy kis hely az én írásomnak is.

Zenék

Szerencsére az idei zenei felhozatal is adott elég hallgatni valót. Fast kategóriában nem meglepő módon nem volt semmi maradandó, hiszen itt a zenék nagyon rövid idő alatt készülnek. Természetesen vannak meglepő alkotások, de ezek inkább azért meglepőek, mert hihetetlen, mire képesek egyesek 90 perc alatt. Például ez:

Az biztos, hogy néha hasznát tudnám venni ennek a tudásnak. A Dance kategóriában vannak az igazi adrenalin bombák. Ezt az első helyezettnél nem éreztem, de a második Runaway A.I.-nál már lehet érezni:

Bevallom, nem tudom, mi volt ez a Tom Cruise poén a Le-Veli-től, de a negyedik helyezettként is ezzel a témával jött elő:

Aikapallo ismét nagyot alkotott, amivel Listening music szekcióban első lett. Szerintem teljesen megérdemelte:

Még valami ír zenei beütést is sikerült belevinnie, amitől nagyon egyedi hangzást ért el.

Grafika/Fotó

Erre nincsenek szavak:

Mad Max vs. Kiber T-rex. Ha megfilmesítenék, tuti kasszasiker lenne. Vagy a második helyezett:

Egyszerűen fenomenális! Szokták mondani, hogy mellekkel mindent el lehet adni. Demoscene körökben ez úgy fest, hogy Amigaval mindent meg lehet nyerni. Így történt a fotó compó esetén is. Be sem illesztem, annyira semmilyen kép. Bezzeg a 11. helyezett!

Ez már mindjárt más.

Animáció/Wild

Az animációk idén nagyon gyengék voltak. Egy viccesnek szánt videó volt csak, de azt sem értettem. Ez kicsit csalódás volt. De ugyan ez elmondható a wildokról is.

 Intrók

Az 1k-val az a baj, hogy ahhoz nem elég nagy, hogy igazán kreatív lehessen az ember, de nem is elég kicsi, hogy emlékezetes legyen az alkotás. A legtöbb 4k sem mutatott túl sokat. Nem voltak többek színesebb 1k-nál. Nem volt igazi dizájn, nem volt jó zene, csak amolyan kóder szórakozás. Kivéve a Hydrokinetics. Az is elég egyszerű volt, de legalább változatosan állítgatták a paramétereket. Ettől kevésbé volt monoton.

Demó

Elég érdekes koncepciókat láthattunk a demók között. Kezdetnek ott volt a Watercolour Space, ami személy szerint nekem nem tetszett, de mindenképp ötletesnek tartom. Szerintem nem aknázták ki az ötletből az összes potenciált.

A Ratavah megtestesíti mindazt, amit egy effekt demótól elvár az ember. Minőségi grafika, sok látványelem, jó zene. Pici sztori. Szerintem semmi baj nincs az ilyen alkotásokkal. Fairlight úgy csinált Amiga demót, hogy nem csinált Amiga demót. Mit értek ez alatt? Ha valaki PC-n készít Amiga éltető demót, akkor legtöbben megragadnak a gép adta látványvilágnál. Ettől az alkotás felemás lesz, mert egy mai PC nevetve megjeleníti azt, amit egy Amigával csak trükkök garmadájával lehet a képernyőre varázsolni. Ezért sem a látvány, sem a kód nem nyűgözi le az embereket. Az eredmény pedig fikázás. Ezt kerülték ki ügyesen a Hold and Modify-ban. A demó mai hardverekre készült, de rengeteg utalás tartalmaz az Amigára. Most kicsit ellentmondok önmagamnak. Amigával talán mégsem lehet mindent megnyerni, mert ez az alkotás is csak harmadik lett.

A Monolith egy kicsit inkoherensre sikeredett. A mélységi kamerák képeit ügyesen használják, de a témák nem logikusan követik egymást. Például van egy születés-fejlődés-halál motívum, de egy magzat már korábban is szerepel. Ezektől az apróbb hibáktól eltekintve hozza az elvárt ASD színvonalat.

A végére hagytam a legellentmondásosabb demót, a demo2-t. Grafikailag kiemelkedő, ötletes, tele van tartalommal. Akkor miért ellentmondásos? Mert Unreal Engine-el készült, a tartalmak egy részét pedig a netről töltötték le. Összességében tehát a hozzáadott munka viszonylag kevés, de az eredmény elég volt, hogy megelőzzön egy Fairlightot. Én személy szerint semmi rosszat nem találok egy játékengine használatában. A netes tartalmakkal sincs semmi gond, ha korrektül jelezzük a szármázás helyét. Olyasmi ez, mint amikor filmrészleteket szinkronizálnak át és vágnak össze videobloggerek. Ha van egy mondanivalónk, amit el szeretnénk mondani, akkor minden elérhető eszközt meg kell ragadni, hogy kifejezhessük azt:

A scene.hu cikke a demókról 1. rész.
A scene.hu cikke a demókról 2. rész.
A scene.hu cikke az Amigás demókról.

Szólj hozzá!

Címkék: demoscene

Álláshirdetés

2015.08.10. 10:58 Travis.CG

Akinek a blogon leírtak felkeltették az édeklődését, az csatlakozhat hozzánk és velünk vállvetve harcolhat a bioinformatika frontján. Vannak nyulak, temérdek munka, vicces emberkék. Egy cégnél jobban fizetnek, de itt nagyobb a szabadság, mind a munkamódszerekben, mind a munkaidőben és ez szerintem legalább olyan fontos. Tudományos előmenetel szempontjából ez a legjobb intézetek egyike. Elég széles kapcsolati hálónk van, nem kell attól félni, hogy rutin munkát kell csinálni.

A hivatalos, de semmitmondó kiírás itt található.

Szólj hozzá!

Címkék: bioinformatika

Mennyit ér a munkánk?

2015.07.29. 14:37 Travis.CG

Habár, mi emberek szeretjük hangoztatni, hogy van, amit nem lehet pénzben kifejezni, a gyakorlat azt mutatja, hogy a pénz igenis fontos mértéke ezeknek a dolgoknak. Vegyük például a szeretetet. Nem tudjuk megmondani, mennyibe kerül egy édesanya szeretete, de ha karácsonyra nem kap elég értékes ajándékot, akkor a szeretet ünnepe durcás hallgatásba sűlyed. A szerelem sem hord árcédulát, de ha az eljegyzési gyűrű egy műanyag karika, akkor nem kell sok jóra számítani.

Szerencsére a munka nem ilyen, azt egzaktul ki lehet fejezni pénzben. Nemrég tanúja voltam egy megbeszélésnek, ahol pont az én munkámról, illetve annak értékéről volt szó. A fizetésem két csoport pályázatából tevődik össze (vagy háromból, a részletek zavarosak nekem), de volt egy fél év, amikor X csoport fizetett, de többet dolgoztam Y csoportnak. Persze emellett besegítettem még Z és W csoportnak is, de ez most mellékes. A lényeg, hogy X csoport vezetője kompenzációt akart arra az időre, amikor Y-nak is dolgoztam. A megbeszélés ennek a kompenzációnak a mértékéről szólt.

Az első ajánlat egy nyomtató volt. Ez elég lehangoló volt, még akkor is, ha tudom, hogy csak a fizetésem kompenzációjáról volt szó (pontosabban a feléről). Az sem enyhített a dolgon, hogy a nyomtató fénymásolni is tudott volna. De azután fordulópont következett! Már nem egy nyomtatót értem, hanem egy laptopot! Ez már jobb kedvre derített, egészen addig, amíg meg nem tudtam, milyen laptopról van szó. Amolyan Fukar/Hülye vagyok laptop. Műanyag zsanérokkal, beépített padló fűtéssel (ami szétégeti az ember combját, ha megnéz egy 2004-es demót), visító, béna ventillátorokkal.

Ha tehát kezdünk elszállni magunktól és túlértékeljük saját fontosságunkat, csak nézzük meg, melyik műszaki cikket ér a munkánk és máris helyre billen az egónk.

Szólj hozzá!

Címkék: életmód filozofálás

Segítségnyújtás

2015.07.21. 21:44 Travis.CG

Legújabb cikkünk  egy együttműködés keretében született. Megkerestek az állatorvosok, hogy segítsünk nekik egy Staphylococcus genom összeszerelésében és mutassuk meg nekik a felhasznált bioinformatikai módszereket is. A Mira-t hasznaltuk, de megpróbálkoztunk különböző scaffolderekkel is, hátha sikerül alacsonyabb scaffold számot kapni. Végül az így kapott eredményeket elvetettük.

Kezdetben tényleg nagyon lelkesen látogattak minket. Még egy kis finom noszogatást is kaptunk: ("A főnököm nagyon szeretné látni az eredményeket, de mondtam neki, hogy ehhez idő kell."). Mikor tényleg megkaptak minden eredményt, hirtelen eltűntek és a cikk nagyon nem akart megjelenni. A levelekre csak olyan válaszokat kaptunk, hogy most nagyon elfoglaltak. Oktatni kellett, beteg nyuszikat istápolni, stb. Javasoltam, hogy legalább a szekvenciákat töltsük fel. Ezt sem akarták, mert attól féltek, a szemfüles kínaiak megneszelik és cikket írnak belőle. Legalább ők akarnak cikket írni.

A bioinformatika oktatás sem lehetett túl sikeres, mert végül eljutottak oda, hogy ez a Linuxos parancssoros időtöltés nem gyümölcsöző, de a Geneious bezzeg kiváló program, nekem is azt kellene használni.

Már kezdtem teljesen lemondani róla, hogy ebből valaha publikáció lesz, amikor váratlanul megint elkezdtek özönleni a levelek. Hirtelen mindent fel kellett tölteni, kéziratot átnézni, sebtében többszörös illesztéseket végrehajtani. Kérdeztem is, mi ez a nagy pálfordulás, már nem félnek a kínaiaktól? Természetesen féltek, de a főnökségtől még jobban, akik eredményeket akartak látni.

Összességében nem volt rossz projekt. Már csak olyan cikkek kellenének, amiknek impaktja is van.

Szólj hozzá!

Címkék: publikáció

Javítások, melyek túl rövidek egy önálló poszthoz

2015.07.12. 23:51 Travis.CG

Ami elromolhat, azt meg is kell javítani. Az elmúlt egy évben számtalanszor kellett különböző javításokat eszközölni, de ezek oly csekély hírértéket képviseltek, hogy sajnáltam rájuk egy egész posztot írni. Az idő múlásával a számuk tekintélyesen felszaporodott, így itt az idő, hogy másokkal is megosszam ezeket.

1. Sátor merevítő

Anyósomék vettek egy sátrat a gyereknek, aki nagyon szereti. Különböző kergetőzős játékok esetén előszeretettel menekült be, ami úgy nézett ki, mint egy SWAT művelet. Futás közben térdre ereszkedik, mert magasabb, mint a sátor, csúszik egy kicsit, négykézlábra ereszkedik, majd eltűnik a sátor gyomrában. Sajnos a játék hevében néha elvéti a bejáratot és a merevítőnek kell kiállnia a megpróbáltatást. Mondanom sem kell, hogy rövid időn belül a műanyag eltörött. A ragasztás nem lett volna elég tartós, a szigetelő szalagnak nincs elég tartása, ezért azt találtam ki, hogy egy fát belefaragok a műanyag csőbe:

sator.jpg

Az eredmény kielégítő, leszámítva, hogy a műanyag rugalmassága a fa toldásnál lecsökkent. Ez azt eredményezte, hogy a gyerek következő kaszkadőr mutatványánál pont a toldás végénél tört el újból. Másorszor epoxi gyantás erősítést használtam, de az nem volt olyan tartós. A rugalmasságot úgy próbáltam növelni, hogy a következő törésnél fa helyett egy koax kábel darabbal erősítettem meg. Ez viszont nem volt elég merev.

2. Babakocsi heveder

Ez a javítás is a gyerekhez köthető. A babakocsi hevederét - ami megakadályozza, hogy a lurkó deszant ugrást hajtson végre, ha meglát egy cicát - előszeretettel rágcsálja, ujjával az apró lyukakakt tágítja. Miután eredményesen leszanálta őket, ideje volt ezt is rendbe hozni:

img_7894.JPG

Ez alapvetően egyszerű volt, mert vettünk egy új hevedert a méter árú boltban, méretre vágtam, befűztem, a végét levarrtam. Sajnos ez a műszálas anyag a vágás után elkezdett bomlani, ezért gyufa lángja fölött áthúztam néhányszor. A hő összeolvasztotta a kis szálakat.

img_7901.JPG

Természetesen ezt nem egyedül csináltam. A gyerek is segített...

img_7897.JPG

szétpakolni.

3. Botmixer

A botmixer egy végtelenül egyszerű berendezés. A bekapcsoló gomb érintkezési hibát mutatott. Ami miatt mégis helyet kapott, az a szétszerelés miatt van. Ugyanis nem találtam azt az egyetlen csavart, ami egyben tartja a gépet. Pontosabban láttam, de nem hittem el, hogy azt keresem. Azt gondoltam, az csak a végét tartja.

mixer.jpg

Kicsit olyan érzés volt, mint a rajzfilmekben, amikor egy csavar tartja össze a buldózert.

4. Sarokcsap

A sarokcsapunk is elöregedett az idők során, így megérett a cserére:

img_8327.JPG

Rendesen begyógyult, így egy vízpumpa fogóval szedtem ki a helyéről.

img_8328.JPG

Az új sarokcsap  végére teflon szalagot tekertem tömítésnek.

img_8330.JPG Visszaszereltem. A csapot rongyba burkoltam, hogy a fogó nehogy kárt tegyen benne. Mondanom sem kell, a rongy az igénybevételtől elszakadt és a fogak végigszántották a csapot. A nyomás próba után víz apró érként elkezdett folyni a csap mellett. Kiszedtem és még több teflon szalaggal tekertem be. Másodszorra már nem volt gond.

img_8331.JPG

Szólj hozzá!

Címkék: barkácsolás

Demó melléktermék: MetaMut

2015.07.06. 00:06 Travis.CG

Az NVScene-re készített produkciónk az első Androidos demónk, ezért igyekeztem minimalista demók készíteni, hogy a platform részletes ismeretének hiánya ne akadályozza az alkotás elkészültét. Így esett a választás a metaball kétdimenziós változatára, a metakörre.

A metakörrel érdekes alakzatokat lehet kirajzolni. Ha közel kerülnek egymáshoz, egy részük kidudorodik, mintha vonzanák egymást. Ez a tulajdonságuk azért is hasznos, mert felbontás és képernyő arány függetlenek, tehát bármilyen eszközzel nézik meg a demót, az mindig korrektül fog megjelenni.

Egy másik hasznos tulajdonságuk, hogy pixel shaderben lehet implementálni a megjelenítésüket. Ez azért hasznos, mert nem kell poligonokat importálni, elég egy kis kódot írni és máris megjelennek. A metakörök jellemzőit uniform változókon keresztül akartam beadni. A uniform változók száma viszont rendszer függő. Egy NVidia Shield esetén valószínűleg magas a számuk, de én gondoltam a régi, leszázalékolt telefonokat használókra is (főleg, mert nekem is azok vannak), ezért egy kis tesztprogrammal megnéztem, mennyi változóval birkózik meg egy Sony Tipo. A mérések alapján 40 elfogadható sebességet produkál.

Történetet is akartam, amiben kihasználom a metakörök csápszerű nyúlványait. Eredetileg egy Magyar ugaron ihletésű jelenetre gondoltam, ahol a gazok egy ember után nyúlnak, visszahúzzák, stb. Ehez metakörökkel kirajzolt képekre volt szükségem.

Grassnak ezért készítettem egy Windowsos rajzoló programot. A kíváncsiak letölthetik innen. Grass azt mondta, hogy ezek a bogyók egyszerűen nem alkalmasak arra, hogy felismerhető grafikát készítsünk velük. Természetesen nem értettem egyet vele. Megpróbáltam én is rajzolni valami értelmeset a programmal, nekem sem ment. Arra gondoltam, ez bizonyára azért van, mert nem tudok rajzolni.

Ekkor született meg az ötlet, hogy a számítógépnek kéne rajzolnia. Én beadnék neki egy képet, a program pedig legenerálja a szükséges metakör adatokat. Mivel a metakörök között elég bonyolult interakciók lehetnek, ezért a megoldást egy genetikus algoritmusban láttam.

Készítettem is egy ilyen programot és néhány teszt futtatás után megállapítottam, hogy ez sem fogja a megfelelő eredményt produkálni. A demó végül teljesen procedurális lett, nem volt benne történet, de az ötödik helyet és a vele járó jutalmat (ami egy NVidia Shield tablet volt) elhoztuk.

A program felépítése egyszerű. Beolvas egy ASCII PBM fájlt, ami a legegyszerűbb bitkép formátum, ami létezik. Ebből is csak fekete-fehéret kezel. Elkészít 1000 darab ábrát, mindegyikben 40 metakörrel, amelyek paramétereit véletlen szerűen választja ki. Jaccard index segítségével összehasonlítja az összes képet az eredetivel. Kiválassza az 5 legjobbat, majd azokat véletlen szerűen elkezdi kombinálni, valamint bizonyos százalékban mutálja az utódok tulajdonságait. Képez újabb 1000 utódot és a művelet kezdődik elölről.

Kíváncsi voltam, hogyan befolyásolják az egyes paraméterek (mutáció gyakorisága, populáció mérete, stb.) az eredmény alakulását. Mivel a program rengeteg véletlen számmal dolgozik, igazából el sem tudtam képzelni, hogy lesz-e értelmes eredmény. A program ezért statisztikai céllal elmenti minden generációban a legjobb egyed által generált képet, valamint a populáció minden tagjának a Jaccard-indexét.

Az első és legfontosabb észrevételem, hogy a program viszonylag gyorsan elér 80% hasonlóságot, és onnan lelassul. Ennek az az oka, hogy nagyon precíz változásokra van szükség, hogy növekedjen a hasonlóság.

Másik észrevétel, hogy a magasabb mutációs ráta nem hozott gyorsabban eredményt, pedig ezt vártam volna. Talán a populáció méretét is növelhettem volna. De az egészben a legmegdöbbentőbb, hogy az algoritmus eredményeit úgy vizsgálom, mintha tényleg egy sok egyedes szuperorganizmus lenne. Akinek van kedve, játszhat a beállításokkal. A forráskód innen tölthető le.

Mivel elég lassan fut, megpróbálok egy Cuda gyorsított változatot is készíteni.

Végezetül nézzük meg, hogyan rajzolja ki a Denevérember logóját:

MetaMut from TravisCG on Vimeo.

Szólj hozzá!

Címkék: programozás demoscene

Cseppet sem objektíven: QBParty 2015

2015.05.31. 22:50 Travis.CG

Nagyon szerettem volna eljutni a QB Partyra, de a család mattot adott. Bármit ügyeskedtem, csak újabb gondok keletkeztek, míg végül beláttam, a Sülysápi kalandból nem lesz semmi.

Rengeteg kategória volt, minden kategóriában kevés indulóval. Amolyan alibi releasek voltak, mert elég sok aggasztó hír érkezett és nem volt biztos, hogy a zöldfülű csapat megbírkózik a feladattal. De megbírkóztak vele. Improvizáltak, alkalmazkodtak és elhárítottak.

Archie Lego emberei immár harmadszor lépnek színre. Most a változatosság kedvéért videóban nézhetjük, amint elnáspángolják egymást. A Los Angeles Lamers videotárában akad még be nem mutatott PC zúzás. Ebből láthatunk egy újabb csokrot.

A Stellar kellemes meglepetés volt. Nem akart túl nagyot szólni, de nem is adta alá a minőséget.

A Bandwagon kicsit raymarching tutorial szagú, de azért egyszer nézhető. A szervezők angol tudása állítólag hagyott némi kívánni valót maga után, ez szolgált a következő intró alapjául:

 A Fresh!Mindworkz ismét robotozott egyet. GoProval felvett felvételt utómunkáztak valós időben. Ami viszont meglepetés volt nekem, az a Low az Ümlaüt Designtól.

Minden részében nagyon ott van és Gargaj egyedül csinálta. Általában ezek a demói grafikai szinten gyengébbek szoktak lenni, de itt egyáltalán nem ez volt a helyzet. Végezetül álljon itt Nagz élménybeszámolója 2 és fél percben:

Szólj hozzá!

Címkék: demoscene

Tesla titkai

2015.05.28. 22:58 Travis.CG

Szeretek híres kutatók életéről olvasni. Karácsonyra meg is kaptam Nikola Tesla és az univerzum titkai című könyvet. Tesla különösen érdekelt, mert annak ellenére, hogy igen kreatív, sokoldalú és nagy hatású feltaláló volt, elég keveset tudtam róla.

Az életéről sok mítosz kering és erre Tesla rá is játszott. Reménykedtem benne, hogy ez a könyv eloszlatja ezeket és kaphatok egy tisztább, objektív képet erről a hatalmas emberről.

Ez hiú ábránd volt.

Az első gyanús jel a harmadik oldalon jelent meg. Tesla apja ugyanis hangosan beszélt magában és még a hangját is elváltoztatta, mikor önmagával vitázott. Az író pedig megpróbált meggyőzni, hogy mindez teljesen normális, mert ő is ismer ilyen embereket és azoknak sincs semmi baja.

Tesla gyerekkorában sokat betegeskedett, és képzeletbeli utazásokat tett, hogy elterelje a figyelmét a betegségéről. Az író erre még rá is tett egy lapáttal, hogy biztos idegen civilizációkat is meglátogatott, akik tanácsokat adtak neki a felfedezéseihez.

Egyébként nem értem, miért nem lehet elfogadni, hogy egyes emberek kimagasló teljesítményekre képesek. Vannak, akik ezt annyira nem tudják elképzelni, hogy inkább más magyarázatokat keresnek. Ezt nem csak Teslára értem, vannak, akik szerint Shakespeare sem írhatott meg annyi művet.

Azt gondoltam, a könyvben ennél már nem jöhet rosszabb, de ismét tévedtem. Az író elég tájékozottnak tűnt, de az életrajzi bemutatáson túl sajnos a könyvbe belekeverte saját ezoterikus világnézetét is. A könyv mondanivalóját így összegezhetném:

  1. Tesla mindig igazat mond.
  2. Mindent Tesla talált fel. Az utána jövők csak az ő találmányait pontosították.
  3. A fizika Tesla óta rossz úton jár.
  4. Ha valami ellent mond az első három pontnak, az a gonosz kormányügynökök műve.

Tesla nem mondott mindig igazat. Például mikor a vezeték nélküli hálózatának első tornyát építették, Tesla azt állította, hogy egy hasonló torony épül Skóciában is. Az író erre vonatkozóan semmilyen adatot nem talált és ezt egy vállrándítással el is intézte, hogy ez nem is fontos. Pedig szerintem az. Tesla ugyanis befektetőket keresett az építkezéshez, ezért nem mondhatta, hogy kérem, ez a rendszer egy prototípus, még én sem tudom, hogy működni fog-e.

A könyvben idézett Tesla cikkek túlnyomó többségére jellemző a végletesség. Tesla minden találmányát a legjelentősebbnek bélyegezte, ami soha sem fog elromlani, bármekkora távolságra, minimális energiával bármit eljuttat és még a kezelése is teljesen triviális. Ezek a túlzások nem lehetnek igazak és ezt Teslanak is tudnia kellett.

A második ponthoz annyit tennék hozzá, hogy a világ Tesla óta is fejlődik. Ezt nem nehéz észrevenni. De mikor az író Teslának tulajdonítja az internetet, azt erős túlzásnak éreztem. Tény, hogy a feltaláló is vizionált egy globális vezeték nélküli hálózatot, ami szöveget, hangot és rajzokat is továbbítani képes (bármekkora távolságra), de ettől még szerintem nem lesz a szűlőatyja.

Amit viszont elfelejtett az író, az a Flabélos, mert ezt is Tesla találta fel. Igaz, ő mechanikus rezgéskeltőnek nevezte. Észrevette ugyanis, hogy az egyik kísérletének a mellékterméke egy erősen rezgő talapzat volt. Mikor erre ráállt, utána nem sokkal ki kellett mennie a WC-re. Később úgy írt, hogy ezzel valószínű fogyasztani lehet az elhízott embereket.

Ahogy az író lenézi a modern fizikát, az teljesen nevetséges. Tesla pont egy paradigma váltás idején élt, még a régi iskola szerint tanulta a fizikát. Az éter létezésétől nem tudott elszakadni. Kritizálta Einstein relativitás elméletét is. Ezzel nincs is semmi baj, hiszen radikális változások voltak ezek, biztos nehéz volt elfogadni őket. A baj az, hogy az iró mind a mai napig ezeket a nézeteket vallja. Igazán utána nézhetett volna, hogy milyen kísérletes bizonyítékok vannak a relativitás elméletre. Érvelésében azt hozza fel, hogy vannak most is olyan elméletek, melyek cáfolják a relativitás elméletet. De ez nem jelenti azt, hogy az elmélet teljesen zsákutca és vissza kell térnünk az éterhez vagy a lapos Földhöz. Az éter létezésére a sötét anyagot hozza fel bizonyítéknak, mert az is mindent kitölt és jelenleg detektálhatatlan. Ez is hibás érvelés. Az éter ugyanis azért született, mert nem ismerték a részecskéket. A sötét anyag azért, mert nem ismerik a kozmoszt alkotó összes anyagot.

A könyv ezen hibáit nehéz tolerálni, de mikor végképp megszakít minden kapcsolatot a valósággal, arra nincs bocsánat. A könyvből az is kiderül, hogy Tesla idézte elő a Tunguszkai robbanást, földrengéseket volt képes létrehozni és minden bizonnyal földönkívüliekkel kommunikált. Sajnos a Bermuda háromszög rejtélyét nem hozták kapcsolatba Teslaval, így a paranormális jelenségek bemutatása kissé hiányos. De vannak ley-vonalak, úrhajók az abidoszi templom keresztgerendáján és persze a védikus tanok (az ott leírtak természetesen száz százalékig igazak). Mindez összegyúrva egy olyan eleggyé, amit még Daniken gyomra sem venne be.

Az iró abszurd világképét Tesla életrajzba csomagolja és ezzel akar tisztelegni a nagy felfedező előtt. Ez viszont nem tisztelgés.

Szólj hozzá!

Címkék: életmód

Don Emeritus bosszúja

2015.05.17. 23:04 Travis.CG

Hétfőn a kutatócsoport tagjai álmosan léptek be az intézet kapuján. Gondolataik lustán pattogtak a hétvégi semmittevés és a heti teendők között, ami szokás szerint semmi produktívat nem eredményezett. Néhányan a kávéautómata adta időhúzással próbálkoztak, míg mások inkább az e-mailt válaszotották, hogy legalább a látszata meglegyen, hogy csinálnak valamit. Őket érte az első sokk.

Don Emeritus a teljes csoportnak címezett dekrétuma szerint ma megbeszélés lesz. Kilenckor. Az óra nyolc óra ötvenhét percet mutatott. Az e-mailt olvasók elrohantak a cigarettázó/kávézó kollégákhoz, leadták a drótot. Megrohamozták a WC-t, hogy a fájdalmasan hosszúnak ígérkező megbeszélés ne legyen kibírhatatlan hosszú és új világrekordot felállítva megjelentek a sötét, dohos irodában.

Nem volt elég szék. Egyedül Don Emeritus pihent kényelmesen, a többiek feszengve álltak. Az asztalon egy kinyomtatott kézirat pihent. Az elöl állók el tudták olvasni. Egy újabb toportyánt szekvenáltak!

- Kaptam egy kéziratot bírálatra - bökött ujjával a cikk felé Don Emeritus. - A kínaiak már megint meghatározták egy toportyán transzkriptómját. - A hír hallatára néhányan fellélegeztek. Tudták, a toportyán Don Emeritus szívügye, ezért minden vágya, hogy ő publikálja a genomját. Ha megelőzte volna valaki a csoportot, ebédig hallgathatnák az áldást.

- A cikk semmi újat nem mond. Kimutatták, hogy a szőr pigmentációjáért felelős génekben van egy mutáció. Ezt mi már '90-ben kimutattuk.

- Akkor születtem - szólalt meg az egyik PhD hallgató. Mindenki úgy tett, mintha nem hallották volna.

- A cikkben nincs következtetés. Csak leírják, hogy különböző programokat futtattak és milyen eredményt kaptak. Én a cikk írást a Nobel-díjas Sydney Brennertől tanultam. Ő mondta, hogy a publikációnak eredeti gondolatokat kell tartalmaznia: modelleket, hipotéziseket, következtetéseket. Ebben nincs semmi, csak az eredmények nyers közlése. Olyan szavak vannak benne, amit a bioinformatikusok szoktak mondogatni. - itt szünetet tartott. A szűk hallgatóság várt, mert tudták, Don Emeritus még nem végzett.

- És nem hivatkoznak ránk! Ez a pofátlanság teteje. Mi már akkor a toportyánnal foglalkoztunk, mikor ezek a cserebogárról tanultak az óvodában. A Dönci - volt doktoranduszom - toportyán-chipjét igazságügyi vizsgálatokban használják. Ez azt jelenti, hogy a magyar jogrend elismeri a módszert. A vizsgálatainkból három PhD dolgozat készült és több, magas idézettségű publikáció. Olyan publikációk, amik következtetéseket tartalmaznak, mert mi meg tudjuk fogalmazni őket. A toportyán ráadásul Hungarikum. Már Arany János is írt róluk. Erre idejönnek ezek a kínaiak! A bírálat nagy részét már megírtam, vissza fogom dobni. Azt kérném tőletek, hogy olvassátok ti is át a kéziratot és szedjétek össze az összes hibát, hogy beleírhassam az indoklásba.

Szólj hozzá!

Címkék: irodalom

Android demo keretrendszer

2015.05.03. 22:57 Travis.CG

Androidra viszonylag egyszerű demót kódolni. A multimédiás képességekkel felvértezett telefon API-ja rengeteg kényelmi funkciót biztosít, amit egy demó készítésénél felhasználhatunk. Persze nem szabad elfeledkezni, hogy bár néha félelmetes teljesítményt zsúfolnak ezekbe a készülékekbe, egy PC-hez képest sok limitáció van és nagyon sokféle készülék. De néhány egyszerű szabály betartásával ezek a hátrányok leküzdhetőek.

A Google is sokat tesz, hogy a fejlesztés könnyű legyen (hiszen bevételt termelnek). Rengeteg jó eszköz van és még Linux alól is működnek. Ha demót akarunk kódolni, az első szabály, amit adhatok:

Felejtsd el az emulátort.

Komolyan. Az egyik demónk fejlesztését két napra visszavetette, hogy kerestem egy bugot, ami emulátor alatt nem jelentkezett. A második fontos szabály:

Ne feledkezz meg az XML-ről.

Mint minden rendes Java fejlesztésnél, az Androidnál is sok XML turkálás kell. Ha ezt észben tartjuk, nem lesz semmi gond. Most pedig lássuk, hogyan készíthetünk demókat Androidra!

Az itt bemutatásra kerülő keretrendszer OpenGL-t használ a grafika megjelenítésére, ezért célszerű az AndroidManifest.xml-be felvenni a következőt:

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

Ezzel elérjük, hogy minimum OpenGL ES 2.0 kell a demó futtatásához. Ha különböző engedélyekre is szükségünk van, azokat is ide vehetjük fel. Most lássuk a kódot!

package com.cybernetic.genetics.android.demoframework;

import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;

public class OpenGLActivity extends Activity {

    private GLSurfaceView demoview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        demoview = new cgSurfaceView(this);
        setContentView(demoview);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_open_gl, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onBackPressed(){
        android.os.Process.killProcess(android.os.Process.myPid());
    }
}

A kód nem csinál túl sok mindent. Előkészíti a képernyőt a rendereléshez és kitölti az egész képernyőt. Általában előírás, hogy bizonyos gombokra a demó lépjen ki, ez itt a vissza gomb lenyomásakor történik. A következő lépés, hogy implementáljuk a cgSurfaceView osztályt. Itt állítjuk be, hogy miként jelenjen meg az OpenGL tartalom. Ez is egyszerű, alig különbözik a Google tutorialtól.

package com.cybernetic.genetics.android.demoframework;

import android.content.Context;
import android.opengl.GLSurfaceView;

import static android.opengl.GLSurfaceView.RENDERMODE_CONTINUOUSLY;

public class cgSurfaceView extends GLSurfaceView {

    private final demoRenderer demo;

    public cgSurfaceView(Context context) {
        super(context);
        setEGLContextClientVersion(2);
        demo = new demoRenderer(context);
        setRenderer(demo);
        setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
    }
}

 Mivel folyamatosan fogjuk változtatni a képernyő tartalmát, ezért a RENDERMODE_CONTINUOUSLY-t kell használnunk. Ugyan csak itt állítjuk be a használni kívánt OpenGL verziószámát is. Ha az alapértelmezettől eltérő pixel formátummal kívánunk dolgozni, azt is itt tehetjük meg. Végezetül jön maga a demó lelke, a rajzoló rutinok, amit a demoRenderer osztályban fogunk össze.

package com.cybernetic.genetics.android.demoframework;

import android.content.Context;
import android.media.MediaPlayer;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.util.Log;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

public class demoRenderer implements GLSurfaceView.Renderer {
    private FloatBuffer vertex;
    private static float coords[] = {-1f,-1f, 1f,-1f,1f,1f,-1f,1f};

    private final String vertexsource =
            "attribute vec4 pos;" +
            "void main(){" +
            "gl_Position = pos;" +
            "}";
    private final String fragmentsource =
            "precision mediump float;" +
            "void main(){" +
            "gl_FragColor = vec4(1.0, 1.0, 1.0, 0.0);" +
            "}";
    private int defaultprg;
    private MediaPlayer music;
    private Context context;

    public demoRenderer(Context context) {
        this.context = context;
    }

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {

        GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

        ByteBuffer bb = ByteBuffer.allocateDirect(8 * 4);
        bb.order(ByteOrder.nativeOrder());
        vertex = bb.asFloatBuffer();
        vertex.put(coords);
        vertex.position(0);

        defaultprg = createGLProgram(fragmentsource);

        music = MediaPlayer.create(context, R.raw.music);
        music.start();
    }

    private int createGLProgram(String fragmentsrc){
        int program;
        int error[] = new int[1];

        int vshader = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);
        int fshader = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
        GLES20.glShaderSource(vshader, vertexsource);
        GLES20.glShaderSource(fshader, fragmentsrc);
        GLES20.glCompileShader(vshader);
        GLES20.glGetShaderiv(vshader, GLES20.GL_COMPILE_STATUS, error, 0);
        if(error[0] == GLES20.GL_FALSE){
            Log.d("Demo", "Vertex Shader error" + GLES20.glGetShaderInfoLog(vshader));
        }
        GLES20.glCompileShader(fshader);
        GLES20.glGetShaderiv(fshader, GLES20.GL_COMPILE_STATUS, error, 0);
        if(error[0] == GLES20.GL_FALSE){
            Log.d("Demo", "Fragment Shader error" + GLES20.glGetShaderInfoLog(fshader));
        }

        program = GLES20.glCreateProgram();
        GLES20.glAttachShader(program, vshader);
        GLES20.glAttachShader(program, fshader);
        GLES20.glLinkProgram(program);
        GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, error, 0);
        if(error[0] == GLES20.GL_FALSE){
            Log.d("Demo", "Compile error" + GLES20.glGetProgramInfoLog(program));
        }

        return program;
    }

    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) {
        GLES20.glViewport(0, 0, width, height);
    }

    @Override
    public void onDrawFrame(GL10 gl) {
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
        int pos = music.getCurrentPosition();
        GLES20.glUseProgram(defaultprg);

        int loc = GLES20.glGetAttribLocation(defaultprg, "pos");
        GLES20.glEnableVertexAttribArray(loc);
        GLES20.glVertexAttribPointer(loc, 2, GLES20.GL_FLOAT, false, 8, vertex);
        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_FAN, 0, 4);
        GLES20.glDisableVertexAttribArray(loc);
    }

A munka dandárját ez az osztály végzi. A zene pozícióját használhatjuk az időzítéshez. Ha további modelleket akarunk megjeleníteni, a ByteBufferes átalakításra szükségünk lesz. Vegyük figyelembe, hogy a rendszer nem tökéletes. Gyakorlatilag a fő szálon végezzük az összes inicializálást, ami a nagy mennyiségű modell, textúra, shader betöltésénél problémát okozhat. Mivel a mi demónkat minimalista stílusra terveztük, ez nem okozott gondot. A dokumentáció már a zene inicializálását sem javasolja a fő szálon, de a gyakorlatban ez sehol nem okozott problémát. Apropó, zene. A zene fájl elhelyezéséhez hozzunk létre egy raw könyvtárat a res könyvtáron belül és helyezzük el a zenét music.mp3 néven.

Szólj hozzá!

Címkék: programozás demoscene android

Illumina Roadshow 2015

2015.04.18. 23:22 Travis.CG

Tavaly nem sikerült eljutnom az Illumina előadásokkal egybekötött ingyenreklámjára. Idén - mivel az egyik üzletkötő a barátom - külön emlékeztettek rá, hogy itt a helyem. A konferencia maga nem volt kirívó, előbb vettem észre a dietetikusokat, akik szintén a Lurdy-házban tartották összejövetelüket. Sőt, akadtak, akik még a célegyenesben is rossz regisztrációs pulthoz mentek.

Termékismertető

Az előadó először megpróbálta a saját hangjával kitölteni a termet. Miután ez nem sikerült, a hallgatóság felhívta a figyelmét, hogy ott van mögötte a mikrofon. Innentől tudom, miről beszélt. Mutattak is egy remek videót:

Kedvenc jelenetem, mikor a farmer megmutatja a krumplit az okostelónak. Komolyra fordítva a szót: A kutatás mellett a preimplantációs genetikában, bűnfelderítésben, onkológiában akarnak kész megoldásokat nyújtani. A könyvtár készítés során az emberi hibákat akarják minimalizálni, ezért egy gépet dobnak piacra NeoPrep néven, ami ezt a folyamatot egyszerűsíti.

Sok kutatóintézet szeretne humán mintákat szekvenálni, de nincs pénzük HiSeq-re. Nekik készítették a HiSeq X Five szekvenálókat. Az előadó elmondása szerint ezek lebutított HiSeq 2500-asok. Egyes országok törvényei nem engedik meg, hogy az állampolgárok genomját külföldön szekvenálják, nekik lehet hasznos ez a gép.

Akinek mégis a flexibilitás a fontos, a HiSeq 3000/4000 lehet alternatíva. A genom mellett ezek a gépek transzkriptómmal is megbírkóznak. Az array technológia még nem akar kihalni, így a NextSeq a szekvenáló mellett egy array szkennert is tartalmaz.

A kémiát javították, amitől az még jobb lett. A nem-invazív prenatális tesztek segítségével meg lehet állapítani, hogy a születendő gyermek hordoz-e genetikai betegséget. Erre is mutattak különböző megoldásokat. Voltak PCR mentes módszerek is, hogy ezzel is növeljék a pontosságot.

Bioinformatika vonalon továbbra is a BaseSpace-t erőltetik. Azon megrendelők, akik ódzkodnak a felhőtől, kapnak privát felhőt, ami egy sarokba állított szerver.

Drosophila mRNS szekvenálás

A Drosophilat MiSeq-el szekvenálták, ami új transzkriptóm összerakáshoz nem biztosít elég lefedettséget, de expressziós vizsgálatokhoz elegendő. A könyvtár készítés során nem szál-specifikus metódusokat használnak, hogy ezzel is csökkentsék a költségeket. Négy egyedet szekvenálnak egyszerre, ami egyedenként 5-6 millió readet jelent. A gépet igyekeznek maximálisan tuningolni, hogy az elméleti 25 helyett 30 millió read jöjjön le. Az előadó elmondása szerint a BaseSpace az ő esetükben nem használható, mert ott csak humán, egér, patkány referencia szekvenciák vannak. Kénytelenek voltak a Tuxedo-t használni.

De-novo baktérium szekvenálás

Az előadásban elsősorban azt mutatták meg, hogy miként lehet úgy előkészíteni a mintákat, hogy a bioinformatikusok munkáját megkönnyítsék. Például már a DNS törés is jelentősen befolyásolja a keletkező scaffoldok számát, ezért az enzimatikus darabolást részesítik előnyben. A nagy szekvenálási mélység ugyan csak felesleges, csupán a költségeket növeli.

A scaffoldokat saját fejlesztésű hézag pótló algoritmussal kapcsolják össze. A módszer lényege, hogy azokkal a párosított readekkel, amelyeknél a pár tagjai két különböző scaffoldra mennek, mini denovot csinálnak és egy iteratív módszerrel építik tovább-

Bioinformatics Data Processing

Ez az előadás szerintem egyetlen bioinformatikusnak sem mondott semmi újat, az érdeklődőknek pedig nem volt eléggé informatív. Olyan kijelentések voltak, mint például: az illesztéshez többféle algoritmust is használhatunk. Ennyi. Legalább felsorolhatott volna néhányat, hogy valaki, aki most ismerkedik a témával, utána tudjon nézni. Viszont megtudtuk, hogy az Illumina gyári feldolgozó programjai hiányosak, érdemesebb helyettük saját magunknak összeállítani a feldolgozó alkalmazásokat. De ez szerintem nem újdonság senkinek. (Esetleg az Illuminás marketingeseknek)

NeoPrep bevezető

Ebben az előadásban a könyvtár készítés automatizálását mutatták be. A készülék kevés paraméter beállítása mellett teljes genom vagy stranded RNA-seq könyvtárakat készít. A készülék cseppeket alakít ki a beadott mintákból, amelyeket elektródák segítségével vándoroltatnak. A cseppek ütközését cellák akadályozzák. A hozzáadandó anyagok helyét kártyákkal jelölik. Bemutató videó:

Whole genome sequencing and amplicon sequencing

A kutatók a költéshatékonyság érdekében felrúgják a gyártó által előírtakat. Ez volt a mottója ennek az előadásnak. Bemutatták, hogy a MiSeq-el a fágok szekvenálása mellett meg lehet próbálni gerinceseket is szekvenálni. Igaz, nem humán genomot próbáltak, de az anyai vérből izolálható cirkuláris DNS-ek kromoszóma szintű rendellenességei kimutathatóak. Az áteresztő képesség SNP szintű azonosítást nem tesz lehetővé és még a módszer is túl drága, de szeretnék, ha a jövőben a megfelelő fejlesztések után ez egy standard eljárás lenne. Léteznek különböző gén panelek is bizonyos szimptómák szűrésére, amelyeket megfelelő target eljárásokkal tovább lehet fejleszteni. A 16S rRNS szekvenálásokkal metagenomikai vizsgálatok is végezhetőek. Az előadás végére felvetítették, hogy mitokondriális és macska genom szekvenálásokat is végeznek.

Az Illumina MiSeq onkológiai alkalmazása

Az Országos Onkológiai Intézet előadásában megtudhattuk, hogy a korábbi Sanger alapú szekvenálást váltották ki NGS-el, ami pontosság terén már eléri az intézet számára szükséges színvonalat. A multiplexelésnek köszönhetően a költségeket le tudták csökkenteni, de a bioinformatikai elemzést nem lehet megkerülni. Az Illumina saját reportoló alkalmazása használhatatlan, mert 6-10 hosszúságú indeleket elvesztenek. További példákat is bemutattak, amikor az alapértelmezett beállítások hatására információ veszett el. A BaseSpace sem jelent megoldást, mert az ott fellelhető programok vagy elvaultak vagy nem teszik lehetővé a paraméterek módosítását. Sokkal jobb a saját munkafolyamatok felállítása, ahol a megfelelő alkalmazások találhatóak meg.

Illumina kits for NGS library preparation

Amilyen semmitmondó volt a bioinformatikai előadás, annyira telefonkönyv szerű volt ez. A könyvtár készítés két nagy csoportba osztható. Az egyik a Nextera, ahol a DNS hasítást enzim végzi, a másik a TruSeq alapú, ami mechanikus töréssel darabolja a DNS-t és PCR mentes. Ennek a két fajta eljárásnak létezik rengeteg fajtája, amit szükségtelennek tartok itt leírni, de amit az előadó mind felsorolt.

Van külön rák vizsgálatra is panel, de ha nem tetszik a célgének összeállítása, saját panel összeállítására is van lehetőség. Külön kitek vannak alacsony koncentrációjú minták kezelésére is. Metagenomikára a korábban is említett 16S rRNS-t célzó kitet javasolják. Az örökletes betegségek szürésére szintén vannak megoldások. Az RNA-Seq alapú kitek egész kis családot alkotnak a sokféle kondíciók lefedésére. A végére csak említés szintjén szóltak az igazságügyi eljárásokban alkalmazható kitekről.

Új generációs szekvenálási szolgáltatások a Debreceni Egyetemen

Ebben az előadásban megismerhettük, hogy milyen szolgáltatásokat nyújtanak a Debreceni Egyetemen vagy annak spin-off cégén az UDGenomeden. A Chip-Seq nagyüzemben megy, a genom szekvenálásban és RNS-Seq-ben már rutinjuk van. A jövőben szeretnének a metagenomika felé nyitni. Saját rák paneljük is van. Minden egyes szekvenálás mellé kérhető bioinformatikai elemzés is.

Szólj hozzá!

Címkék: bioinformatika

Cseppet sem objektíven: Revision2015

2015.04.12. 21:59 Travis.CG

Idén kimaradt a Revision és még az elő közvetítést sem néztem. A party után nyugalmasabb óráimban az alkotásokat nézem. Mennyiségben nincs hiány. Huszonnégy kategória, átlagosan tíz indulóval. Mi Magyarok is szép számmal képviseltettük magunkat, sőt még a Cybernetic genetics is releaselt a tudtomon kívül, nem kis meglepetést okozva nekem. Természetesen pozitív értelemben.

Grafikák

 Ebbe a kategóriába gyűjtöttem minden állóképet, tehát a fotókról is itt ejtek szót. Elég változatos volt a mezőny. A kedvencem Made képe volt. Nagy, ronda robot, szép kecses nő.

De a győztes Cigarette Break méltán lett első.

Prince valami csoda folytán nem készített freskó méretű képet. Helyette törpéket tűzött lándzsa végre. Valami azt súgja, a Disney nem fogja megcsinálni ezt az előzményt.

Unreal Modern Graphics kategóriában csak a negyedik lett, de talán elégtétel neki, hogy a kézi rajzban első lett.

A fotókból szokás szerint vegyes volt a kínálat. A vicces, de technikailag nulla képektől a profi kompozícióig volt minden. Amit én kiemelnél, az egy elvetemült scener képe a fényképezőjéről. Maga a kép, amit készített igazából nagy nulla, de a fényképezőgép. Na, az igen!

dscf2338.JPG

Ez egy A4 szkennerből eszkábált digitálist fényképezőgép Raspberry-vel meghajtva. Ezért szeretem a demoscenet. Teo képe a 15 helyen végzett.

Az "öreg" gépekre készített képek legtöbbje majd a demókból is vissza fog köszönni. Ezek is zseniálisak. Most csak egy Amigás képet emelek ki:

A proceduralis képek közül sajnos nem tudtam mindegyiket megnézni, mert a lusta programozók nem mellékeltek hekkmentes verziót. (Nem demoscenereknek: Azért, hogy beleférjenek a méretkorlátba, a programokat eszement hekkekkel zsugorítják. Ezért nincs visszatérési érték ellenőrzés. Ha valami balul üt ki, szétfagy az egész és nem lehet tudni, miért. Néha mellékelnek "biztonságos" verziót, ami minden körülmények között lefut.) Így a Lánchídról lemaradtam, és BoyC képét is csak képről láttam. Értitek.

Zenék

A zenék most nem tetszettek. Talán a futtatható zenék közül JazzCat zenéje fogott meg egy kicsit. Teo negyedik (executable music) és kilencedik lett (striming music), gratulálunk neki.

Wild

Ebbe a kategóriába négy versenyszámot gyűjtöttem. Az animációk idén nagyon elvontak voltak. A Blank például kifejezetten tetszett, pedig csak a negyedik helyezett volt.

BLANK from grade die. on Vimeo.

Természetesen volt vicces videó is ezúttal a Jumalauta tálalásában. Nem biztos, hogy a második helyre érdemes, de a közönség így gondolta.

Az igazi Wildot a Raspberryk és a saját építésű hardverek uralták. A Panda Cube kockapandával rukkolt elő. Igazából a medve nem sokat tesz hozzá a produkcióhoz (hiszen csak a kockában ül), az ötlet viszont zseniális:

Lft kivételesen nem épített számítógépet, csak zongorázott. Az oszcillátorral összekötött C64-k mit kerestek ott, az nem értem. Szerintem így akarta megszerezni az oldschool arcok szavazatát. A 120 Hz demók legtöbbje korábbi demók feltuningolt változatai voltak. Ez az a fajta kompó volt, amit látni kellett volna. Hasonló a helyzet a media facade demókkal is, de azokat azért videóról is meg lehet nézni. Itt egy speciális szoba vetítőit kellett vezérelni. Pontatlan leírások helyett itt a nyertes demo:

Intrók

A 64k-ban a Conspiracy nyert, ahogy korábban megjósoltam, kezd beérni a demotooljuk. Én mégis inkább a második helyezettet emelném ki. Nemes egyszerűséggel azért, mert ahogy néztem, soha nem tudtam, mit is látok igazán. Mikor azt hittem, tudom, mit látok, változott a kép és már megint elvesztettem a fonalat. Ezt a bizonytalanságot sikerült három és fél percen keresztül fenntartani, úgyhogy egy linket megérdemelnek:

Mivel a szívem csücskei a sztoris demók, ezért meg kell említenem az Approximate végtelenül szentimentális intróját is. A 4k indulók nem voltak kimagaslóak. Még fraktálokat sem láthattunk. Úgy vettem észre, a csapatok inkább a 8k-ra tartogatták erejüket, ami a minőségen is meglátszik. A TRSI nyerte a compót teljesen megérdemelten. Már az első jelenet önmagában is jobb volt, mint a 4k mezőny, és még erre tettek rá további jeleneteket. A zene is pompás volt.

A Future Crew legendás demóját már rengetegen feldolgozták, most épp 8k verzióban. A gumiemberes modellek elég érdekesek voltak. A recycle 8000-t emelném még ki. Technikailag nem volt olyan jó (bár én ilyet nem tudok), de élvezetes volt nézni.

Demók

A Fairlight NVScenen megkapta, hogy amit csináltak, az nem bír művészi értékkel. Talán erre (is) volt válasz ez a demó. Itt azért halványan volt egy kis társadalom kritika is. Fájó pont, hogy még 1024x768-ban sem tudtam akadás nélkül lejátszani. Félek kell egy új videokártya. A Coccon demóját sem tudtam vason megnézni, pedig nagyon szerettem volna, hiszen a leírás szerint valós idejű globális illuminációt használtak. A harmadik helyezett Oniria a dizájn demók sorát gazdagítja. Jó példája annak, hogy nem csak az lehet jó demó, ami szétégeti a videokártya processzorát. Azután ott van a 6. helyezett Interstase. Néztem és nem tudtam eldönteni, hogy jó vagy nem. Nem teljesen random, mert vannak visszatérő motívumok benne, de mivé is áll össze az egész? Nem tudom. Amiga vonalon most nem volt olyan erős a mezőny, mint tavaly. A Ghostown messze mindenki felett nyert.

Csak nagyon felületesen mutattam be az alkotásokat. Akinek van egy kis ideje, csemegézzen belőlük:

http://www.pouet.net/party.php?which=1550&when=2015
http://demozoo.org/parties/2444/

Szólj hozzá!

Címkék: demoscene

Humán genom MinION-al

2015.04.01. 07:06 Travis.CG

Fantasztikus cikk jelent meg a Nature Methodsban. Az angliai Sanger Intézet egyik kutatócsoportja sikeresen egyben megszekvenált több humán kromoszómát is MinION készülékkel. A mutatvány közel sem volt egyszerű. Először el kellett különíteni a kromoszómákat, amire egy szinkron fejlődésű sejtcsoportot használtak. Amikor az összes sejt anafázisban volt, akkor szétválogatták az egyes kromoszómákat. A DNS töréseket chaperon molekulákkal akadályozták meg, amit a szekvenálás megkezdéséig a kromoszámákon hagytak.

Egy módosított protokollal előkészítették a mintákat, majd nagyon óvatosan a MinION készülékbe töltötték őket. A szekvenálás teljes időtartama alatt folyékony nitrogénnel hűtötték a készüléket. A leírás szerint így sokkal jobb jel/zaj arányt kaptak, plusz a szupravezetés miatt a szekvenálás is gyorsabban ment. Maga a készülék egy speciális rázkódás mentes asztalon feküdt, hogy ezzel is csökkentsék a kromoszóma törés valószínűségét.

Az eredmények elképesztőek. A 20-as és 21-es kromoszómát teljes egészében megszekvenálták. Sajnos az 1-es és 2-es kromoszóma esetén csak a kis kart sikerült egyben leolvasni, a nagy kar a kényes művelet ellenére is két darabba törött. A szerzők bizakodóak, hogy a módszerük tökéletesítésével végre megszűnnek a draft genomok és csak jó minőségű, precíz szekvenciák lesznek. A cikket az érdeklődők itt olvashatják el.

1 komment

Cseppet sem objektíven: NVScene 2015

2015.03.23. 00:27 Travis.CG

A gonosz nagy cég ismét demópartit adott a GPU Technology Conference ideje alatt. Volt pár előadás bioinformatikai vonatkozásban is, most viszont a demoscene rendezvényről fogok beszámolni szokásos csapongó stílusomban.

Android compo

Tudtommal az NVScene az egyetlen party, ahol dedikált Android compo van. Idén meglepő, de 6 induló volt és nagyon kitettek magukért. A d159 ismeretlenül robbant be. A zenét Gloom szerezte, de ő bárkinek ír, a kóderről viszont nem hallottam. A leírás szerint korábban Flash demókat készített, így igencsak meglepő tőle ez a release.

Magyarok is indultak. Aha, Pasy és Teo compo-gyilkos részecske rendszerüket vetették be, de a demo címe (Protostar) szakított a Standard modell nomenklatúrájával. Az ötödik helyre mi libbentünk be, a release részleteiről külön posztban olvashattok.

4k procedurálist grafika

Az első helyezett nem lehetett más, mint Archie. A kép témája maradt, a megjelenítő sem változott túl sokat, legalábbis a leírás szerint.

Animáció

Csak két animáció indult, ebből az egyik semmilyen. A másik a Blurred Memories. Kellemes, de semmi olyan nincs benne, amitől másodszor is meg akarnám nézni.

Demo

A Still legújabb demója magasan nyert, pedig semmi rendkívüli nem történik benne. Vártam, mikor fog összeállni a kép jelentéssé, de ez nem következett be. Ennek ellenére nem volt rossz. A második helyezett a Fairlight abszolút valós idejű raytracere. Itt nagyon sajnáltam, hogy a demó megállt a technológia bemutatásán és nem lépett át a művészet mezejére. Annyi potenciál, annyi ötlet ment veszendőbe egy IKEA szoba bemutatásával, hogy fájdalom még leírni is. Még a harmadik helyezett Dead Roman is több életet vitt a jelenetekbe.

A Rebels nem állt meg az Android nyüstölésnél, hanem PC-n is bedobták magukat. Erőfeszítéseiket a közönség a negyedik hellyel jutalmazta. Végezetül érdemes megemlíteni a Monolith című JavaScript demót. A jelenetei kicsit egyszerűek, ennek ellenére ötletes.

Összefoglalás

Az idei NVScenere valahogy mindenki be akart adni valamit, de vagy időhiány vagy egyéb más okok miatt a legtöbb induló nem dobta be teljesen magát. Sok ügyes release volt, de legenda nem született.

Szólj hozzá!

Címkék: demoscene

Beindul a termelés

2015.03.19. 22:26 Travis.CG

Kezdenek beérni a munkák. Hosszú pangás után beindult az impakt faktor gyár. Eddig ezzel a cikkel volt a legkevesebb problémám. Ez annak is köszönhető, hogy az első revízió után kapcsolódtam be a munkába.

A vizsgálatok során öt búzafajta kb. 20 metabolit szintjét mérték két évjáratban, három ismétléssel, két szövetben. SPSS-ben három táblázatra megcsinálták a MANOVA-t, de a bíráló kért még egy csomó statisztikai összehasonlítást, amit sajnos SPSS klikkeléssel nem lehetett megoldani. Legalábbis a bíráló adta időintervallumon belül nem.

Írtam egy nem túl optimális R szkriptet, ami így is 10 óra alatt lefutott és megcsinálta az összes összehasonlítást. Később kellett heatmapeket gyártani, de azok sem vettek el sok időt. Főleg, hogy PowerPointban még utólag maszatoltak rájuk.

Ez alatt az idő alatt tanultam meg, hogy különböző módon is ki lehet számolni a MANOVA-t. Természetesen a két statisztikai program máshogy számolja őket. Ez okozott némi fejtörést, mert nem tudtam azokat az eredményeket megismételni, amit az SPSS kiadott. Végül helyére kerültek a dolgok és megszülethetett ez a cikk.

Szólj hozzá!

Címkék: publikáció

A cikk, ami majdnem nem készült el

2015.03.08. 23:09 Travis.CG

Sok tekintetben a kutatás egyfajta versenyfutáshoz hasonlít, ahol az első helyezetten kívül nincs díjazás. Szerencsére elég sok versenyszám van, de így is tetemes mennyiségű kutató áll rajthoz. Hogy tovább növeljem a képzavart, néha csak akkor látjuk a konkurenciát, amikor az már célba ért és minket kiejtett a versenyből. Néha úgy érzem, egy blogot meg lehetne tölteni a hiábavaló próbálkozásokkal.

Ennek a cikknek az alapanyaga is majdnem így végezte. Én a de-novo összeszerelésben és az annotálásban segédkeztem. A mi részünkkel elég jól haladtunk, de a partnerek már nem voltak ennyire ambíciózusak. Egy levélváltás például heteket vett igénybe. A végén már úgy voltunk, hogy megírjuk magunk, a többiek pedig láttamozzák csak le.

Ekkor jött ki a konkurencia cikke. Nem emlékszem pontosan, de talán két-három hét depresszió után elkezdtük összehasonlítani a mi eredményeinket a friss cikkel és végül arra jutottunk, hogy van némi különbség a genomok között. Sajnos nem találtunk akkora különbséget, hogy az elemzések újdonságot nyújtsanak, de a genomok még leközölhetőek.

Kiválasztottuk az újságot is, de ekkor jöttek a drága partnerek extra kívánságai. Nevezetesen ne töltsük fel nyilvános adatbázisba, mert akkor jönnek a gonosz kínaiak, letöltik, kielemzik és megírják a cikket helyettünk. Az újság persze közölte, hogy a genom vagy nyilvános adatbázisban lesz, vagy nem lesz cikk. A partnerek így nagy duzzogva megengedték nekünk, hogy feltöltsük a szekvenciát, de kikötötték, hogy nem lehet látható, amíg meg nem jelenik a cikk.

Nem is volt semmi gond, egészen Karácsonyig. Ekkor ugyanis a partnere riadóztattak mindenkit, hogy a szekvenciáknak azonnal meg kell jelennie, mert ők jelentést, beszámolót, kivonatot írnak és ez nem lehet teljes a szekvenciák nélkül. Csakhogy, amit nem tudtak, hogy az NCBI-ban a feltöltött adatokat csak úgy lehet megváltoztatni, hogy küldünk egy levelet és megkérjük az adminisztrátort. Küldtem levelet, amire rögtön megérkezett a válasz: Szabadságon vagyok. Majd jött egy második levél is, amiben azt írták, tele vannak munkával, amint lesz szabad idejük, teljesítik a kérésem.

Szilveszterre megjelentek. Februárra a cikk is.

Szólj hozzá!

Címkék: publikáció

Fenyítés alatt

2015.02.27. 00:10 Travis.CG

A korábbi Nanopore-os írásaim felkeltették az illetékesek figyelmét, valahogy összekapcsolták azokat az egyik munkatársammal és udvariasan figyelmeztették, hogy el kellene távolítani a blogbejegyzéseket. Szerencsétlen nem tudott az egészről semmit. Miután kiderült, hogy én voltam az elkövető, így kérték a tartalmak eltávolítását. Mivel nem akarom, hogy kidobjanak minket a programból, a kérésnek eleget tettem.

Most úgy érzem, olyan rosszfiús lett a blog. Itt olyasmit is lehet (lehetett) olvasni, ami tiltott információkat tartalmaz.

Mielőtt meglátogatnak a texasi nehézfiúk, gyorsan nézzük is meg, mások milyen információkat szivárogtatnak ki:

Kezdjük is mindjárt egy két órás borzalommal Nick Lomantől, akinek nincs time-lapse képes videokamerája:

De láthatunk nagyszerű programokat különböző folyamatokra: Vizualizációra, illesztésre, szekvencia javításra.

Cikkek is kezdenek megjelenni: HLA haplotípus meghatározásról, baci összeszerelésről.

4 komment

Címkék: nanopore

Új demóparty a láthatáron

2015.02.22. 22:36 Travis.CG

Azt gondolom, a magyar demoscene ismét felszálló ágban van. 2010-ben két party volt csak nálunk. Function-ön négy demó indult, kettő 4k és kettő 64k introval. Elég nagy pangás volt, a depresszión egyedül az Experience segített, ahol megnézhettük az adott év legjobbjait és beszélgethettünk kicsit. Rákövetkező évben volt egy Busodore is a megszokott rendezvények mellett, de az csak egy fellángolás volt.

2012 érdekes fordulatot hozott. Az Experience belépett a partik sorába. Function-ön 11 demót nézhettünk végig. Egy évvel később csak egyel volt kevesebb demo, de már olyan nagy nevek is képviseltették magukat, mint a Fairlight.

Idén pedig még egy party lesz, a QB! A Cybernetic geneticsnek is van némi része benne, mert Betasector a szervezők között van. Ha a régi partik idén is megrendezésre kerülnek, az azt jelenti, hogy 2015-ben négy party várható. Csak győzzük release-el!

Szólj hozzá!

Címkék: demoscene

Kommunikációs nehézségek

2015.02.22. 22:04 Travis.CG

Egyesek úgy érezhetik, nem becsülöm eléggé az intézeti rendszergazdáinkat. Pedig rengeteget dolgoznak, hogy mi, hálátlan kutatók dolgozni tudjunk. Még a szórakoztatásunkról is gondoskodnak, hogy ne legyen olyan egyhangú az életünk. Legalábbis a következő eset erre enged következtetni:

Valami bürokrata kitalálta, hogy számba kell venni, hogy az intézetünkben mennyi nyomtató van és az egy év alatt mennyi papírt fogyaszt. Nosza, fel is kerekedett a két kópé, mert ugye egy ilyen bonyolult munkához nem elég egy ember. Ki is alakították a hatékony csapatmunkát. Az egyikük leolvasta a nyomtató típusát, IP címét (nevezzük Stannak), a másik beírta egy laptopba (legyen Pan).

Stan: Hogy kell előhívni a tesztoldalt?
Pan: Hosszan lenyomod a gombot.
Stan: Diktálom a sorozatszámot. Így, ahogy mondom: Iksz, kettő Negyven kilenc. Nem negyvenkilenc! Ahogy mondom: Negyven kilenc. Mondom, hogy nem negyvenkilenc! Negyven kilenc. Ezt nem hiszem el!
Én: Miért nem azt mondod neki, hogy négy nulla kilenc?
Stan: Igen, az lesz.
Pan: Itt a gép, írd be te.

Szólj hozzá!

Címkék: életmód rendszergazda

(Majdnem) mindent a Blastról

2015.02.22. 21:04 Travis.CG

Nem hiszem, hogy van még egy olyan bioinformatikai program, ami ennyire alapvető lenne, mint a Blast. Van egy elméletem, ami szerint egy ötlet eredetiségét úgy lehet lemérni, hogy hányan próbálják meg lemásolni, illetve a farvizén elevezni. A Blast ebben torony magasan vezet.

Kezdetek

Kezdetben vala a Smith-Waterman algoritmus és láták a bioinformatikusok, hogy ez jó. És volt szekvencia összehasonlítás, homológia keresés, első nap. Azután a sok szekvenciát elkezdték adatbázisokba gyűjteni, és hamar rájöttek, hogy a Smith-Waterman algoritmus sokáig tart, ha egy adatbázisban kell keresni. Ekkor született meg a Fasta, aminek a neve egy fájlformátumban köszön vissza. Ebből is látszik, hogy többféle módon válhat hallhatatlanná valaki. A Fasta három verziót élt meg, és 2000-ben nyugdíjazták. Én életemben egyetlen egyszer használtam, amikor egy gépen nem volt elérhető a Blast, akkor is csak demonstrációs célokból.

A hős színre lép

Amikor megjelent a Blast, még nem volt az a sziporkázó program, mint most. Nem volt képes gap-esen illeszteni, hiányzott belőle néhány statisztika, viszont kegyetlen gyors volt, miközben az érzékenység oltárán nem áldoztak fel sokat. A sebességre pedig égetően nagy szükség volt. A GenBank-ben abban az időben már 33 ezer szekvencia volt, ami nem tűnik túl nagynak, de akkoriban a gépek teljesítménye sem volt eget rengető.

A program lehetőségei viszont sokakat megihlettek. Blast dolgozik a RepeatMasker gépházában, az annotáló rendszerekben, mint amilyen a Trinotate is, de még HLA típizáló munkafolyamatokban is kap helyet. Ismeretlen fehérjék funkcióinak felderítésére az első lépés még manapság is az, hogy Blast segítségével megkeressük a rokon fajokban a szekvenciát és reménykedünk benne, hogy ott kísérletesen is ellenőrízték a fehérje szerepét (nem csak egy másik Blast kereséssel állapították meg azt). Egyszóval megtaláljuk mindenütt, ahol a szekvencia hasonlóság meghatározására van szükségünk. Gátlástalan cégek odáig merészkednek, hogy üzleti modellt építenek erre a remek kis programra.

Használata

A Blast parancssori kapcsolói rengeteget változtak a verziók során, és hála a különböző webes megoldásoknak, sokszor nincs is szükség az ismeretükre. Rendszeres használat esetén vagy ha nagy mennyiségű adatunk van, szükség lehet a Blast kézi futtatására. Ebben a leírásban a 2.2-es verzióval foglalkozom. Első lépés mindig az adatbázis építése. Ezt a makeblastdb paranccsal hozhatjuk létre egy FASTA fájlból. Meg kell adni a bemeneti állomány nevét, a szekvencia típusát (fehérje vagy DNS) és opcionálisan a kimeneti fájlok prefixét.

makeblastdb -in input.fasta -dbtype nucl -out mydb

Ezután jöhetnek a kérések. Az adatbázis és a kérés típusa határozza meg, melyik Blast programot kell futtatnunk:

program kérés adatbázis
blastn nukl nukl
blastp prot prot
tblastn prot nukl (transzlált)
blastx nukl (transzlált) prot
tblastx nukl (transzlált) nukl (transzlált)

A blastn programnak ezen felül három módja van: a megablast és a blastn-short és a dc-megablast. A megablast nagy mennyiségű kérés esetén gyorsabb, mintha többször lefuttatnánk a Blasttot, mert a kéréseket összefűzi egy szekvenciává. A blastn-short rövid (20 nukleotid) szekvenciák esetén adnak hatékony eredményeket. A -task paraméter segítségével aktiválhatjuk ezeket.

Az alapértelmezett paraméterek a legtöbb esetben elegendőek, olykor mégis szükség lehet azok állítgatására, hogy hatékonyabb, esetleg kevesebb eredményt kapjunk. Az első a -window_size. Ezzel állíthatjuk be, hogy mikor kapcsoljon össze két közeli találatot a blast. A -word_size segítségével állíthatjuk a legkönnyebben a program érzékenységét. Minél magasabbra állítjuk, annál nagyobb összefüggő, teljesen illeszkedő szakaszokat fog megtalálni. Tehát gyorsabb fog futni, de kevesebb találatot kapunk a kevésbé hasonló szekvenciákból.

A -matrix segítségével azt határozhatjuk meg, mennyire tekintsünk hasonlónak két monomert. Ez a beállítás nagyon függ attól, mire is akarjuk használni a Blastot és ha elrontjuk, ezzel okozhatjuk a legnagyobb kárt.

Ha nem érdekelnek minket a gapek, akkor az -ungapped segítségével megszabadulhatunk minden ilyen beállítástól. Főleg rövidebb szekvenciák esetén érdemes használni. Ellenben ha irányítani szeretnénk a gapek hosszát és számát, akkor a -gapopen és -gapextend segítségével bírálhatjuk felül az alapértelmezett viselkedést. Az algoritmus szempontjából ide kell venni a -penalty és -reward opeciókat is. A szekvenciák összehasonlításánál gyakran többféle módon is összeilleszthetünk két szekvenciát. A következő, erősen sarkított példa is ezt kívánja szemléltetni:

Az illesztés paramétereire nem térnék ki, mert rengeteg weboldal és fórum foglalkozik velük. A kimenet feldolgozását viszont valahogy elmúlasztják bemutatni. Az alapértelmezett kimenet jó vizuális áttekintésre, de sok eredmény esetén nehéz a feldolgozásuk. A legegyszerűbb ilyenkor táblázatos formát kérni (-outfmt 7 vagy -outfmt 6, attól függően, hogy akarunk-e kommenteket, vagy nem). Ha több információt szeretnénk visszakapni, az XML lehet segítségünkre. XML-t szinte valamennyi programozási nyelven fel lehet dolgozni. Azt is megadhatjuk, hogy táblázatos kimenet esetén milyen mezőket kapjunk vissza.

from xml.dom.minidom import parse
import sys
xml = parse(sys.argv[1])
for hit in xml.getElementsByTagName('Hit'):
    hitacc = hit.getElementsByTagName('Hit_accession')[0].firstChild.nodeValue

A fenti Python kód kigyűjti a találatok szekvencia azonosítóit.

Habár a nukleotid alapú Blast nagy népszerűségnek örvend, a fehérje alapú homológia keresés a gyakorlatban sokkal lényegesebb. Mivel különböző trinukleotidok is kódolhatják ugyan azt az aminosavat, ezért a fehérje alapú kereséssel olyan hasonlóságokat is megtalálhatunk, ahol az evolúciós távolság nagyobb. Nem véletlen, hogy fehérje alapú keresésre többféle Blast program létezik.

A blastp sok tekintetben megegyezik a blastn-el, ezért az ott leírtak itt is alkalmazhatóak. A psi-blast ellenben egy teljesen más keresési stratégiát valósít meg. Szekvencia helyett ugyanis mátrixokkal keres. Míg a nukleotid alapú összehasonlításnál csak azt nézzük, hogy a szekvenciák egy ponton megegyeznek-e vagy sem, addig a fehérjék összehasonlításánál a nagyszámú kémiai jellemző miatt árnyaltabb hasonlósági mutatókat kell megállapítani. Erre szolgálnak a mátrixok. Minél több hasonló szekvencia kerül a mátrixba, annál több információnk van arról, hogy a szekvenciák mely pozíciói konzerváltak, tehát az összehasonlítás során lényegesek, és melyeknél van nagy diverzitás. De hogyan lesz egyre több elemünk a mátrixban? A psi-blast ezt iterációval oldja meg. A találatokat felhasználva új mátrixot képez és megismétli a keresést. Parancssorban a -num_iterations kapcsolóval szabályozhatjuk ezt.

A psi-blast minden iteráció után egyre távolabbi hasonlóságokat képes megtalálni, így előfordulhat, hogy végül olyan találatokat is megkapunk, aminek kevés köze van az eredeti kereső szekvenciához. A phi-blast ezért egy szabályos kifejezés-szerű mintázattal csökkenti ezen találatok számát. Parancssorban a phi_pattern opcióval adhatunk meg egy fájlt, amiben definiálhatjuk a mintázatokat. Ha a weben keresünk, csak egy mintázatot használhatunk. A szabályos kifejezés szintaxisáról itt olvashatunk.

A psi-blast egyik gyengesége, hogy a mátrix egy blastp keresés első találatából származik. Ezt a hiányosságot igyekszik kiküszöbölni a delta-blast. Ennél a programnál először a konzervált domain adatbázisra történik egy illesztés, majd ebből állítja elő a mátrixot.

Futtatási módszerek

Blastot nagyon sokféle módon futtathatunk. Ha van egy böngészőnk, akkor csak annyi a dolgunk, hogy felkeressük a számtalan weboldal egyikét. Ez rendkívül kényelmes és egyszerű módja a keresésnek. Hátránya, hogy sok limitációval kell számolnunk. Leggyakrabban a kereső szekvenciák számát és méretét korlátozzák.

Ha nincs böngészőnk (például mert egy távoli gépre jelentkeztünk be parancssorban) vagy szeretnénk kicsit automatizálni a kereséseket, akkor az URL API lehet segítségünkre. Ebben az esetben egy URL-be írhatjuk be paraméterként a program beállításait. A folyamat két lépcsős. Először elküldjük a kérést, kiszedjük a Request ID-t (RID), majd ennek ismeretében letöltjük az eredményt. Mivel ebben az esetben nincs automatikus oldal frissítés, ezért ha túl kevés idő telik el a kérés elküldése és az eredmény letöltése között, csak egy értesítést kapunk. Ugyan csak ügyeljünk rá, hogy ne terheljük le a szervert túl sok kéréssel. Ezzel csak azt érjük el, hogy letiltanak bennünket. Minimum a következő paramétereket kell megadnunk:

 wget "http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?QUERY=145361606&DATABASE=nr&PROGRAM=blastn&CMD=Put" -O rid.html

A kérés az Arabidopsis AGO5 mRNS-ét küldi el. A QUERY mezőbe a GI számot írtuk be. Az eredményt a következő utasítással kaphatjuk meg (figyelem, a RID kérésenként változik!):

wget "http://www.ncbi.nlm.nih.gov/blast/Blast.cgi?RID=B5ZDS8C2015&CMD=Get" -O result.html

A paraméterek teljes listája itt található.

Akit a GET-es paraméterek limitációi aggasztanak, használhat SOAP-ot is. Ezt használják a klikkelős programok nagy többsége is. Példaprogramokat itt találunk. Ha a klikkelős programokat választanánk inkább, szóba jöhet a CLC Workbench programcsalád legtöbb tagja, a Geneious, de akár az ingyenes UGene vagy az NCBI Genome Workbench is.

A végére hagytam a legegyszerűbb módszert. A parancssoros blast program a -remote kapcsolóval távoli feldolgozást kezdeményez. Helyi használatra a poszt elején láthattunk példákat. Ha számítógépünket nagyon lefoglalják egyéb programok, használhatunk célhardvereket is. Ezek többnyire FPGA alapokon nyugszanak.

Technikák

A Blast legegyszerűbb, mindenki által ismert használati módja, hogy elküldünk egy szekvenciát és nézzük, milyen találatokat kapunk. Ortológok keresésénél szokták használni a reciprok keresést. Ez két keresésből áll. Először egy "normál" keresést hajtunk végre, majd a legjobb találattal ismét végrehajtunk egy keresést egy olyan adatbázison, amiben az előző kereső szekvencia is szerepel. Ha az első helyen visszakapjuk az eredeti szekvenciát, a két szekvenciát 1-1 ortológnak kiáltjuk ki.

Új organizmus transzkrip annotálásnál, ha a blastn eredmény nem kielégítő, tblastn-t is lehet használni. A fehérje szekvencia konzerváltabb, mint a DNS, ezért esélyesebb, hogy jó eredményt fogunk kapni.

Vannak esetek, amikor a Blast erőssége (lokális illesztés) egyben a hátránya is. Aki sok keresést futtatott, találkozhatott azzal a jelenséggel, hogy túl sok HSP-re esett szét a találat. Ha nem akarunk másik illesztő programot használni, jó szűrési módszer, hogy csak azokat a HSP-ket tekintjük egy találatnak, amelyek azonos orientációban vannak (természetesen a HSP-k közötti távolságot limitáljuk).

Végszó

A Blast hosszú ideje hű társa a bioinformatikusoknak és még az is marad egy jó ideig. Ezzel a poszttal szeretnék tisztelegni az alkotóik előtt és kívánok nekik még ezer hivatkozást.

Szólj hozzá!

Címkék: bioinformatika

süti beállítások módosítása