HTML

Az élet kódjai

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

Friss topikok

  • sdani: @Travis.CG: Nohát, nem is tudtam, hogy ilyen van... bár ahogy elnézem ezek a komponensek fizetősek... (2018.11.01. 10:14) Rossz beidegződések a bionformatikában
  • Csenge Tarnói: Ez érdekes. Most csinálok egy meta-analízist, életemben először, úgyhogy az én tudásom is felszíne... (2018.10.01. 21:39) Ez már nekem sok
  • robertherczeg: Nekem a kedvenc az volt, hogy: "Inkább eleve Mann-Whitney és/vagy Wilcoxon tesztet használjunk, m... (2018.09.04. 07:47) Ezért utálom a Wilcoxon-tesztet
  • Travis.CG: ÉÉÉÉÉs megjelent! (2018.08.24. 23:31) Nehéz szülés 2
  • Szedlák Ádám: Hogy én mennyire köszönöm ezt a posztot, arra nincs szó. A kódoljon mindenki / legyen mindenki olc... (2018.06.25. 03:37) Legyen mindenki programozó

CLC parancssorból

2011.09.28. 10:07 Travis.CG

A klikkelős programokkal az egyik alapvető problémám, hogy csak nagyon ritka esetben nyújtanak segítséget az ismétlődő feladatok leeegyszerűsítésére. Emlékszem, még a win 3.1-ben voltak makrók, amelyekkel több-kevesebb sikerrel lehetett felvételeket készíteni tevékenységünkről, majd visszajátszani. A módszer sikertelenségét jól mutatja, hogy ez az eszköz már nem része az újabb rendszereknek.

A különböző makronyelvek és azok programba/szkriptbe szervezése ellenben virágzik, gondoljunk csak a Blenderre, amiről már röviden írtam. A bioinformatikában különösen fontos, hogy több adattal dolgozzunk. Ritkán van olyan szerencsénk, hogy egy mintát kell elemeznünk. A folyamatok automatizálása ezért létkérdés.

A CLC is felismerte, hogy hiába a könnyű kezelhetőség, a szupergyors algoritmusok, ha egyszer a felhasználó klikkelési sebessége limitálja az adatfeldolgozás hosszát. Ezért a CLC Server kapott egy parancssoros, jelenleg béta állapotú felületet. Mivel bétáról van szó, lehetnek eltérések az itt leírtakhoz képest.

Használat

A parancssor egyetlen Java alapú program, ami a clcserver nevet kapta. Az összes programozói eszközt az operációs rendszer parancsértelmezője adja, ami az itt bemutatott példáknál egy Linuxos Bash lesz. Érdemes megemlíteni egy másik programot is, a clcresultparser-t, ami a program által visszaadott szöveges eredményt dolgozza fel. Ha elég erőt érzünk magunkban, helyettesíthetjük egy grep-el.

A program működéséhez indítsuk el a CLC Servert:

>CLCGenomicsServer start

Most már nyugodtan használhatjuk a szkriptjeinket.

Kötelező argumentumok

Az első kényelmetlenség, hogy minden egyes parancs kiadásához négy állandó paraméter kell. Mivel szerverről van szó, ez a szerver URL-je (-S), a port (-P), felhasználó név (-U), jelszó (-W).

>clcserver -S localhost -P 1234 -U user -W secretpassword

Ennek nyugodtan csinálhattak volna egy konfigurációs állományt. Mivel nem csináltak, hozzunk létre egy Bash változót és nevezzük el CMD-nek. A továbbiakban csak a CMD változóra fogok hivatkozni:

CMD="/opt/CLCServer/CLI/clcserver -S localhost -P 1234 -U user -W secretpassword"

Elérési utak

Mivel szerverről van szó, és a parancssoros programnak nem kell feltétlenül azon a gépen futnia, a fájlok elérése URL-en keresztül történik. A protokol a clc. Ha olyan fájlra akarunk használni, ami már a CLC Server "látókörében" van, akkor a clc://server kezdetű URL-el tudunk rá hivatkozni. (Ezek clc kiterjesztésű fájlok. Szerializált Java objektumok.) Ha egy külső fájlt akarunk megadni, akkor a clc://serverfile előtaggal érhetjük el azt.

Parancsok

A parancsokat a -A argumentummal adhatjuk meg, majd ezt követik a parancs-specifikus egyéb paraméterek. Például listázzuk ki azokat a fájlokat, melyek a CLC Serveren vannak:

$CMD -A ls -t clc://server/CLC -O res.txt

A -t argumentummal adjuk meg, hogy mit szeretnénk kilistázni. A -O pedig a res.txt állományba menti az eredményt. Ha megnézzük a res.txt-t, azt tapasztaljuk, hogy minden kilistázott objektumhoz tartozik két URL (egy egyszerűsített és egy teljes), egy név és dátum. Ezt a fájlt lehet feldolgozni a clcresultparser-el. Ez a teljes URL-t visszaadja. Például tegyük fel, van 23 darab "read" karaktereket tartalmazó fájlunk, amelyeket szeretnénk egy referenciához illeszteni.

for READ in `clcresultparser -f res.txt -c read`
do
  $CMD -A read_mapping --short-read-alignment-mode ALIGNMENT_LOCAL -i $READ --references clc://server/CLC/chrX -d clc://server/CLC/results
done
A -d adja meg az eredmény helyét, a --references a referencia objektum elérési útja, a -i pedig a short read adat. Figyeljük meg, hogy a clcresultparser -c opcióját, amivel kiszűrjük azokat a neveket, amelyek tartalmazzák a "read" szót.

Összegzés

A CLC jó irányba indult el a parancssoros interfésszel. Az is jó ötlet, hogy egy ismerős közegbe (Bash) beilleszhető a szervert vezérlő parancs. A használhatóságán viszont lehet még javítani. A parancsok alapértelmezett tulajdonságai is meglepően vannak beállítva, gyakran nem tükrözik a grafikus felület beállításait. (Például alapértelmezetten a short readek importjánál eldobja a read azonosítókat). Néhány esetben logikátlan opciókat is meg kell adni. (Ha nem paired adatokat töltünk be, akkor is meg kell adni a readek távolságát) Reméljük, a végleges változatban kijavítják ezeket a hibákat.

Szólj hozzá!

Címkék: programozás rendszergazda bioinformatika

A bejegyzés trackback címe:

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

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.