Des que vaig arribar de les vacances de nadal, tenia molt clar que havia de posar-me en serio amb les simulacions del Quorum Sensing. De fet ho tenia bastant clar des que vam tenir l'últim progress meeting abans de les vacances i va ser bastant desastrós per mi, però com a mínim això té ja una mica de sentit.
Per sort, programar és molt més divertit que llegir papers i elucubrar o pensar en abstracte. Programar et manté distret i entretingut quan les coses van sortint, encara que sigui poc a poc, i si t'ho montes mínimament bé pots anar veient resultats aviat i fer que tot cobri una mica de sentit (de nou).
El que estic fent ara doncs és un simulador pel quorum sensing. El tema no té massa secret amb mínimes nocions de programació (en aquest cas, Matlab). Consisteix en crear un entorn discret (o sigui, no continu, imagineu un taulell d'escacs en que cada casella és un punt en l'espai), que en el nostre cas serà una matriu. En cada casella s'indica si hi ha una bactèria o no, indicat amb un 1 o un 0, respectivament.
En el quorum sensing, les bactèries emetien unes partícules i després detectaven la concentració de dites partícules per decidir si actuar o no. En el simulador, una matriu s'encarrega de guardar en memòria la concentració de partícules que tenim a cada punt del mapa de bactèries. Programarem apart les bactèries perquè cada cert temps facin augmentar la concentració d'on elles estan. I també les programarem perquè mirin quina concentració hi ha on elles hi són i llavors decidir què fer.
L'evolució temporal de la concentració de les partícules ve donada per una llei física anomenada "llei de Fick" i regeix la difusió que les partícules sofreixen. Bàsicament, les partícules van d'on hi ha més concentració a on n'hi ha menys. Aquesta part jo crec que era la més complicada però comptava amb codis anteriors que m'han servit de molt en aquesta part.
I perquè l'evolució temporal sigui realística, s'ha programat també que cada cert temps, la bactèria "es reprodueixi", fent que al costat de cada bactèria n'hi aparegui una altra d'igual. Bàsicament és tot. La resta del codi es preocupa de que no hi hagi cap conflicte en tot això, i a guardar resultats i fer gràfics i tal. Para muestra un botón:
En aquest vídeo es representa tot el que he fet fins ara. Tenim un entorn quadrat, amb una bactèria en el centre. L'eix vertical representa la concentració de partícules que inicialment està a 0 a tot arreu. La bactèria comença a emetre partícules cada cert temps i es van escampant per l'entorn. Alhora, la bactèria es va reproduint (cada cop veureu més pics) i tot va corrent i evolucionant.
Compareu per exemple el nivell de concentració al principi i al final del vídeo... s'han anat acumulant les partícules en l'entorn. A partir de cert nivell, les bactèries començaran a canviar el seu comportament. Si tot va bé, quan canvii la primera, la resta ho farà molt ràpidament també. D'això és tracta: que vagin totes a una.
Ah, i també li he afegit musiqueta... no fos cas que ens avorríssim treballant ;)
De què ens servirà això? Potser per entendre gràficament com funciona això, donar un marc on simular diferents comportaments. Podríem mesurar el temps que es tarda en veure el canvi de comportament de les bactèries, per exemple. O si sabem que canvien de comportament quan es detecta una concentració de partícules per sobre d'un llindar, podem mirar com varia "el número de bactèries que canvien el comportament" en relació a dit llindar.
Més endavant podria canviar les bactèries per altres entitats. Per exemple, imaginem que tenim nanomàquines que no es poden reproduir, però poden emetre i rebre partícules. Podríem estudiar si podem imitar el comportament col·lectiu que representa el quorum sensing, i jugar amb diferents paràmetres, com ara el nombre de nanomàquines de que disposem (clar, si no es poden reproduir).
El que estic fent ara doncs és un simulador pel quorum sensing. El tema no té massa secret amb mínimes nocions de programació (en aquest cas, Matlab). Consisteix en crear un entorn discret (o sigui, no continu, imagineu un taulell d'escacs en que cada casella és un punt en l'espai), que en el nostre cas serà una matriu. En cada casella s'indica si hi ha una bactèria o no, indicat amb un 1 o un 0, respectivament.
En el quorum sensing, les bactèries emetien unes partícules i després detectaven la concentració de dites partícules per decidir si actuar o no. En el simulador, una matriu s'encarrega de guardar en memòria la concentració de partícules que tenim a cada punt del mapa de bactèries. Programarem apart les bactèries perquè cada cert temps facin augmentar la concentració d'on elles estan. I també les programarem perquè mirin quina concentració hi ha on elles hi són i llavors decidir què fer.
L'evolució temporal de la concentració de les partícules ve donada per una llei física anomenada "llei de Fick" i regeix la difusió que les partícules sofreixen. Bàsicament, les partícules van d'on hi ha més concentració a on n'hi ha menys. Aquesta part jo crec que era la més complicada però comptava amb codis anteriors que m'han servit de molt en aquesta part.
I perquè l'evolució temporal sigui realística, s'ha programat també que cada cert temps, la bactèria "es reprodueixi", fent que al costat de cada bactèria n'hi aparegui una altra d'igual. Bàsicament és tot. La resta del codi es preocupa de que no hi hagi cap conflicte en tot això, i a guardar resultats i fer gràfics i tal. Para muestra un botón:
En aquest vídeo es representa tot el que he fet fins ara. Tenim un entorn quadrat, amb una bactèria en el centre. L'eix vertical representa la concentració de partícules que inicialment està a 0 a tot arreu. La bactèria comença a emetre partícules cada cert temps i es van escampant per l'entorn. Alhora, la bactèria es va reproduint (cada cop veureu més pics) i tot va corrent i evolucionant.
Compareu per exemple el nivell de concentració al principi i al final del vídeo... s'han anat acumulant les partícules en l'entorn. A partir de cert nivell, les bactèries començaran a canviar el seu comportament. Si tot va bé, quan canvii la primera, la resta ho farà molt ràpidament també. D'això és tracta: que vagin totes a una.
Ah, i també li he afegit musiqueta... no fos cas que ens avorríssim treballant ;)
De què ens servirà això? Potser per entendre gràficament com funciona això, donar un marc on simular diferents comportaments. Podríem mesurar el temps que es tarda en veure el canvi de comportament de les bactèries, per exemple. O si sabem que canvien de comportament quan es detecta una concentració de partícules per sobre d'un llindar, podem mirar com varia "el número de bactèries que canvien el comportament" en relació a dit llindar.
Més endavant podria canviar les bactèries per altres entitats. Per exemple, imaginem que tenim nanomàquines que no es poden reproduir, però poden emetre i rebre partícules. Podríem estudiar si podem imitar el comportament col·lectiu que representa el quorum sensing, i jugar amb diferents paràmetres, com ara el nombre de nanomàquines de que disposem (clar, si no es poden reproduir).
El WHILE es un bucle infinit, no l'has tancat xD ;).
ResponderEliminar¬¬
ResponderEliminarjijijiji no sé ni que posar!!!
¿Pero se entiende la filosofía? Si nadie entiende una mierda, he fracasado...
ResponderEliminarclaro k se entiende...k las bacterias se kieren mucho entre ellas...van juntitas "haciendo piña" ;) a todas partes ...cuantas más mejor!!! y se reproducen entre ellas!...aunk claro...igual si hay muchas...cambian d actitud!!! (lo normal...una se enfado con otra, empiezan a criticarse...) es això no?? l k volies dir?' :D
ResponderEliminar