Corso di Informatica Medica
Esercitazione 1I
Alessandro A. Nacci
[email protected] - alessandronacci.com
Conferenza
2
La relazione riguarderà aspetti avanzati di Neuroscienze che studiano l’attività della corteccia cerebrale umana attraverso un modello di rete in miniatura (area ~3 mm2) formato da circa 3000 neuroni iper-connessi con vie nervose funzionanti in modo del tutto analogo alla nostra corteccia umana (area 250.000 mm2). Le moderne tecnologie permettono di osservare on-line e sperimentare per settimane l’azione di farmaci e neurotrasmettitori mappando contemporaneamente l’attività elettrica (frequenza degli impulsi nervosi) di circa 120 neuroni uniformemente distribuiti ogni 200 µm. Verranno illustrate le metodiche di analisi delle sequenze temporali che hanno permesso di caratterizzare completamente le proprietà statistiche dell’attività complessiva con metriche quali auto e cross-correlazioni, fattore di Fano, CV2, etc. Questa attività consiste in un
“equilibrio bilanciato” fra le contrastanti azioni di due classi distinte di neuroni, biologicamente diversi in numero ed eccitabilità, che tendono a eccitare o inibire, rispettivamente la durata dell’attività elettrica. Saranno inoltre spiegate le metodiche usate per classificare l’eterogeneità degli stati della rete anche nei casi di induzione di stati “epilettici” o “febbrili”.
Saranno infine discusse possibili soluzioni che potrebbero permettere una nuova caratterizzazione, questa volta “spazio-temporale”, delle connessioni sinaptiche (trasmissione chimica) fra i neuroni identificati (ogni neurone riceve circa 500 sinapsi dai neuroni più vicini). Ciò per poter affrontare lo studio di fenomeni elementari di memoria che consistono nel rinforzo (o indebolimento) di alcune connessioni, senza trascurare altri fenomeni più complessi quali lo “scaling” (ad es. cambiamento di guadagno) della rete per condizioni di emergenza quando l’attività deve essere silenziata o potenziata, in altre parole di ri-equilibrio delle proprietà di interconnessione. Recentemente sono stati resi disponibili apparati con più di 250 punti di registrazione su 10 mm2 dai quali si possono analizzare simultaneamente più di 500 neuroni con la possibilità ad es. di ricostruire in vitro tutto il canale visivo dei mammiferi, dalla retina al talamo e alla corteccia e ciò apre possibilità di studio molto interessanti.
22 aprile 2013 - ore 10:00
Sala Seminari del Dipartimento di
Elettronica Informazione e Bioingegneria Politecnico di Milano
Prof. Enzo Wanke
Ordinario di Biotecnologie e Bioscienze Università Milano Bicocca
Registrazioni a lungo termine da reti di neuroni corticali con piattaforme avanzate a grande scala ed identificazione delle classi neuronali: proposte per un'implementazione on-line e software-assistita delle loro connessioni spazio-temporali
La relazione riguarderà aspetti avanzati di Neuroscienze che studiano l’attività della corteccia cerebrale umana attraverso un modello di rete in miniatura (area ~3 mm2) formato da circa 3000 neuroni iper-connessi con vie nervose funzionanti in modo del tutto analogo alla nostra corteccia umana (area 250.000 mm2). Le moderne tecnologie permettono di osservare on-line e sperimentare per settimane l’azione di farmaci e neurotrasmettitori mappando contemporaneamente l’attività elettrica (frequenza degli impulsi nervosi) di circa 120 neuroni uniformemente distribuiti ogni 200 µm. Verranno illustrate le metodiche di analisi delle sequenze temporali che hanno permesso di caratterizzare completamente le proprietà statistiche dell’attività complessiva con metriche quali auto e cross-correlazioni, fattore di Fano, CV2, etc. Questa attività consiste in un
“equilibrio bilanciato” fra le contrastanti azioni di due classi distinte di neuroni, biologicamente diversi in numero ed eccitabilità, che tendono a eccitare o inibire, rispettivamente la durata dell’attività elettrica. Saranno inoltre spiegate le metodiche usate per classificare l’eterogeneità degli stati della rete anche nei casi di induzione di stati “epilettici” o “febbrili”.
Saranno infine discusse possibili soluzioni che potrebbero permettere una nuova caratterizzazione, questa volta “spazio-temporale”, delle connessioni sinaptiche (trasmissione chimica) fra i neuroni identificati (ogni neurone riceve circa 500 sinapsi dai neuroni più vicini). Ciò per poter affrontare lo studio di fenomeni elementari di memoria che consistono nel rinforzo (o indebolimento) di alcune connessioni, senza trascurare altri fenomeni più complessi quali lo “scaling” (ad es. cambiamento di guadagno) della rete per condizioni di emergenza quando l’attività deve essere silenziata o potenziata, in altre parole di ri-equilibrio delle proprietà di interconnessione. Recentemente sono stati resi disponibili apparati con più di 250 punti di registrazione su 10 mm2 dai quali si possono analizzare simultaneamente più di 500 neuroni con la possibilità ad es. di ricostruire in vitro tutto il canale visivo dei mammiferi, dalla retina al talamo e alla corteccia e ciò apre possibilità di studio molto interessanti.
22 aprile 2013 - ore 10:00
Sala Seminari del Dipartimento di
Elettronica Informazione e Bioingegneria Politecnico di Milano
Via Ponzio 34/5 - 20133 Milano
Prof. Enzo Wanke
Ordinario di Biotecnologie e Bioscienze Università Milano Bicocca
Registrazioni a lungo termine da reti di neuroni corticali con piattaforme avanzate a grande scala ed identificazione delle classi neuronali: proposte per un'implementazione on-line e
software-assistita delle loro connessioni spazio-temporali
LUNEDI’ PROS SIMO!
giovedì 18 aprile 13
QUANTO FATTO OGGI VERRA’ UTILIZZATO
NELLE PROSSIME LEZIONI!
Il piano cartesiano
•
Scrivere in C un programma che rappresenti un piano cartesiano•
Il programma deve poterrappresentare e visualizzare a schermo PUNTI, LINEE e
QUADRATI
•
Deve essere inoltre possibile manipolare le forme create(spostarle, cancellarle, ingrandirle, etc..)
•
Il programma deve poterrappresentare la curva di una funzione di secondo grado:
x
y
0
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y
0
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y
0
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y
0
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y 0
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
La rappresentazione
•
Per visualizzare a schermo abbiamo a disposizione il solo terminale:•
Formato da RIGHE eCOLONNE di caratteri ASCII
•
Ci arrangiamo con quello che abbiamox
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
ATTENZIONE!
NON POTREMO RAPPRESENTARE I BORDI DELLE FIGURE!
CI LIMITEREMO A RAPPRESENTARE IL CONTENUTO DELLE FIGURE
CON DEI CARATTERI
Cosa ci serve?
Cosa ci serve?
• Come sempre, prima di scrivere un
programma, dobbiamo:
Cosa ci serve?
• Come sempre, prima di scrivere un programma, dobbiamo:
1. definire i tipi di dato
Cosa ci serve?
• Come sempre, prima di scrivere un programma, dobbiamo:
1. definire i tipi di dato
2. dichiarare le variabili
Cosa ci serve?
• Come sempre, prima di scrivere un programma, dobbiamo:
1. definire i tipi di dato 2. dichiarare le variabili
1. Ricorda di usare le #DEFINE
Cosa ci serve?
• Come sempre, prima di scrivere un programma, dobbiamo:
1. definire i tipi di dato 2. dichiarare le variabili
1. Ricorda di usare le #DEFINE
3. scegliere quali funzioni implementare
Cosa ci serve?
• Come sempre, prima di scrivere un programma, dobbiamo:
1. definire i tipi di dato 2. dichiarare le variabili
1. Ricorda di usare le #DEFINE
3. scegliere quali funzioni implementare
4. implementare
Definizione dei tipi di dato
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
• Punto dello schermo
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
• Punto dello schermo
• Una generica forma
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
• Punto dello schermo
• Una generica forma
• Quali forme sono disponibili
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
• Punto dello schermo
• Una generica forma
• Quali forme sono disponibili
• Direzioni
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione dei tipi di dato
• I tipi di dato che possono essere utili sono:
• Punto dello schermo
• Una generica forma
• Quali forme sono disponibili
• Direzioni
IMPLEMENTIA MO ALLA LAVAGNA!
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione delle variabili
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione delle variabili
• Le variabili che
possono essere utili sono:
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione delle variabili
• Le variabili che
possono essere utili sono:
• Lo schermo
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione delle variabili
• Le variabili che
possono essere utili sono:
• Lo schermo
• Le varie forme
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Definizione delle variabili
• Le variabili che
possono essere utili sono:
• Lo schermo
• Le varie forme
IMPLEMENTIA MO ALLA LAVAGNA!
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
•
Le funzioni che possono essere utili sono:x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
•
Le funzioni che possono essere utili sono:•
Funzioni per lavisualizzazione a video
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
•
Le funzioni che possono essere utili sono:•
Funzioni per lavisualizzazione a video
•
Modifica delle matriche che rappresenta lo schemox
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
•
Le funzioni che possono essere utili sono:•
Funzioni per lavisualizzazione a video
•
Modifica delle matriche che rappresenta lo schemo•
Generazione delle formex
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Le funzioni
•
Le funzioni che possono essere utili sono:•
Funzioni per lavisualizzazione a video
•
Modifica delle matriche che rappresenta lo schemo•
Generazione delle formeIMPLEMENTIA MO ALLA LAVAGNA!
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Iniziamo ad implmentare il codice!
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Iniziamo ad implmentare il codice!
• Occupiamoci del main()
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale
Iniziamo ad implmentare il codice!
• Occupiamoci del main()
• Lasciamo le altre funzioni per dopo (prossime lezioni)
x
y 0
% % %
% % %
% % %
% % % %
%
Un quadrato di lato L riempie LxL caratteri del terminale
Una linea di lunghezza L riempe Lx1 caratteri del terminale
Un punto riempie un carattere del
terminale