HTML

Az élet kódjai

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

Friss topikok

Kutatók és programozás

2011.02.19. 19:08 Travis.CG

Egy érdekes cikkre bukkantam a Nature hasábjain (itt). Röviden a lényege, hogy a kutatók többsége képtelen normális kódot írni. Nem ellenőrzi, dokumentálják a programosorokat, ezért a vége jobb esetben nem működő program, rosszabb esetben hibás eredmény, amit neves újságok hasábjain publikálnak.

Szeretném hinni, hogy én nem tartozom közéjük, amire az ad okot, hogy dolgoztam programozóként is, nem csak kutatóként. Ha viszont az itt feltüntetett kódjaimban vagy a demóim forráskódjában valaki oltári nagy ostobaságot talál, akkor annak a cikkben leírtak az okai.

Komolyra fordítva. A munkám során én is találkoztam ilyen esetekkel. Az első egy hipergeometrikus eloszlást számolt GO azonosítókra. Azt vettük észre, hogy a program meglepően lassú. Megnéztem a forráskódot és meglepődve tapasztaltam, hogy minden egyes rendezés során az adatokat fájlba írta. Ez elég rossz hír volt, de a mégrosszabb az volt, hogy a program szerzője nem ismerte a hasítótáblákat, helyette tömböt használt. Minden egyes alkalommal végigjárta a teljes tömböt, ha egy elemet meg akart találni. Természetesen ezt is fájlba írta, majd visszaolvasta onnan. Mondanom sem kell, hogy a fenti két hiba kijavítása után 40-szeres sebességnövekedést értünk el.

A másik esetben a Java program tartalmazott C programrészletet, aminél súlyos memóriaszivárgás volt. Ez csak bizonyos hosszúságú szekvenciáknál okozott szegmentációs hibát. Az utolsó esetben olyan programmal találkoztam, ami gyakorlatilag érthetetlen volt a számomra. Bonyolult volt a matematikai modell is, amit alkalmazott (legalábbis nekem), de a program felépítése ezt tovább bonyolította. Az összetettséget jól példázza, hogy bárki, aki a kódhoz nyúlt és javított benne valamit, két másik hibát ejtett.

A cikkben említett jelenséget tehát én is megtapasztaltam. Kérdés, hogy mit lehet tenni ellene. Először is, ne tegyünk fel mindent egy lapra. Ha egy program kiadott egy eredményt, ne higgyük, hogy most miénk lesz a Nobel-díj. Használjunk több programot. Ahogy a laboratóriumi munkában sem fogadják el, ha csak Chip-kísérletet végznek és nem validáljuk azt QT-PCR-al, mi se dőljünk hátra, ha egyetlen program, egyetlen beálításokkal kiad egy eredményt.

Most Blastot fordítok, ezért van némi időm sztorizgatni. Például egy baktérium szekvenálása során kaptunk egy gént, ami elé egyedi volt, hogy a Blast ne adjon egyértelmű ereményt, ezért halvány sejtelmünk sem volt róla, hogy mi lehet a szerepe. Több prediktáló programot is kipróbáltunk, míg végül egyszer csak azt kaptuk, hogy transzmembrán proteint kódol. Ez sem volt egyértelmű, mert amint megváltoztattuk kicsit a program paramétereit, rögtön eltűnt az eredmény. Természetesen hozzá kell tennem, hogy ezt az eredményt kísérletesen ellenőriztük és olyan szerencsénk volt, hogy igazolni tudtuk.

Végezetül még egy tanács. Ha mi magunk írunk programokat, ne féljünk tanulni. Ne higgyük, hogy csak azért, mert elméleti algoritmusokat vagyunk képesek működő programkóddá varázsolni, máris mi vagyunk a programozás nagymesterei. Ha pedig hibás programra bukkanunk, javítsuk ki, vagy írjunk újat, mert senki nem csinálja meg helyettünk.

Szólj hozzá! · 1 trackback

Címkék: programozás filozofálás bioinformatika

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr472673234

Trackbackek, pingbackek:

Trackback: Elavult verzióra dolgozik a Java-fejlesztők egy negyede 2014.05.23. 23:48:11

Bár már több mint egy éve nem támogatott, még rengeteg helyen dolgoznak programozók a Java 6-ra

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása