View Full Version : Python in Networks Complex
Ciao a tutti!
Per un esame devo preparare un algoritmo in python in reti complesse. Premetto che non sono esperta di programmazione e mi sto approcciando ora con il linguaggio.
Sono qui ora per chiedervi un consiglio su come approcciarmi... sebbene abbia studiato la teoria delle reti e algoritmi non so come iniziare il programmino:
non capisco se devo partire dalla rete secondo l'argomento prescelto e quindi in base al tipo ipotizzare un certo numero di nodi e di links oppure fare un import dataset come matrice ed effettuare delle elaborazioni di calcolo statistico.
Potreste darmi dei suggerimenti? Grazie mille!!!
Nessuno che mi possa dare due dritte su questo esame di Fisica Applicata? Grazie
Ho riletto più volte ma davvero non ho ben capito il quesito.
Puoi provare a riformularlo come se parlassi a qualcuno che non sa nulla di ciò che devi fare?
Ho riletto più volte ma davvero non ho ben capito il quesito.
Puoi provare a riformularlo come se parlassi a qualcuno che non sa nulla di ciò che devi fare?
davvero, non riesco a capire cosa ti serve...
Devo realizzare un progetto in python su reti complesse e quindi fare uno studio di analisi una rete che possa essere sociale, biologica etc
Dal momento che devo fare un progetto simile in big data su Metodi Fisici in Biologia, Ho pensato di realizzare un unico progetto su una rete biologica che possa essere una INTERAZIONE TRA PROTEINE o SISTEMA IMMUNITARIO etc...
Il mio problema è che non so proprio come iniziare e il professore è irrintracciabile.
Tutto questo dovrebbe servire, mi pare di aver capito, per rilevare ad esempio una cellula cancerogena (uno dei nodi), e come le malattie/disturbi siano ben collegate tra loro e quindi portate a formare una rete.
Ho trovato qualcosa in python per la bioinformatica ma trattasi di studio del DNA e geni. Mi pare di capire che possa essere preso in esame per i big data ma nel caso di reti complesse non trovo riscontro.
Nello studio e analisi di una rete vengono prese in considerazione Interazioni tra Proteine, Interazioni tra geni, Sistema Immunitario, Sistema Nervoso.
Dopo tutto questo, avrei bisogno di un consiglio/aiuto perchè non voglio complicarmi la vita ne sbagliare su come gestire il tutto.
Spero di essere riuscita a farmi capire ;)
Grazie a tutti per l'attenzione!
PS: Tra gli argomenti di Reti Complesse c'è la Teoria dei grafi, grafo diretto e non, Markov, Scale-free, grafi a Random, le varie distribuzioni di Bernoulli, Poisson, Gauss a seconda del tipo di rete... etc
Tra gli argom di Metodi Fisici in Biologia c'è la Biologia Cellulare, Biologia Molecolare, Entropia, Cinetica etc
mmhhh l'argomento sembra complesso...
come introduzione una cosa del genere può fare al caso tuo?
link (https://www.analyticsvidhya.com/blog/2018/04/introduction-to-graph-theory-network-analysis-python-codes/)
Deve per forza... perchè è un esame che devo dare! :mc:
Credo che il più sia partire...
Grazie do un'occhiata
IO non possiedo alcun dato!!!!
Devo semplicemente applicare la teoria... MA... nella teo dei grafi viene espressamente indicato tra i diversi tipi di grafo quale è usato per un argomento e quale per un altro... come ad esempio nella teoria viene spiegato il PAGERANK di Google e il tipo di grafo dei Social Networks differente dal grafo per una interazione tra proteine.
Cmqsia ogni grafo ha un comportam/studio differente e... cmq un certo numero di nodi e links (come li devo considerare? cerco un esempio reale sul web e lo analizzo? prendo una immagine e da li (se si può fare) estrapolare le info di n. nodi e m. links? o da un dataset scaricato dal web (perchè esempi di file .csv si trovano pubblicamente) ?
Sto prendendo spunto da Cytoscape: software che permette lo studio di una rete biologica.
Per calcolare poi il coeff di clustering, il diametro dei nodi, distribuzione di connettività, shortest path, Markov, l'entropia......etc.. devo cmq partire da un grafo.
Ora, una volta scelto l'argomento a cui è associato un determinato tipo di grafo...cosa devo fare? Caricare un grafico come immagine e da li fare uno studio approfondito oppure caricare i dati da un file o vado per ipotesi?
Premetto che io non ho nulla a livello pratico.
GRAZIE!
Considerato che l'argomento è particolarmente complesso (anzi mi sembra anche troppo complesso per un singolo progettino d'esame) ti suggerisco di rintracciare in qualche modo il professore a cui chiedere chiarimenti.
Per tutte le cose che hai chiesto ci sono già algoritmi implementati nei più disparati linguaggi..Io sono abbastanza convinto che sia la consegna a monte a essere anomala, sei sicura di quello che ti viene chiesto di fare?
Puoi darci copia del documento preparato (dal professore immagino) in cui c'è la consegna?
--------Conoscenze e abilità da conseguire
Al termine del corso, lo studente ha una conoscenza delle principali proprietà matematiche che caratterizzano un grafo, ed ha una panoramica delle più recenti e importanti applicazioni dei modelli a network in situazioni reali, specialmente in ambito biologico. Inoltre, acquisisce competenze sui principali algoritmi utilizzati per analizzare un grafo e per implementare modelli dinamici immersi in una struttura a network di varia topologia.
--------Programma/Contenuti
Introduzione alle reti complesse: esempi dalla fisica, biologia, sociologia, informatica. Esempi: caratteristiche di Internet, network in biologia
Definizione di network: grafo. Grafi semplici e bipartiti. Network pesati e non. Network diretti e non.
Caratterizzazione della topologia di un network a livello globale e di singolo nodo: distribuzione dei parametri per singolo nodo (connettività). Connettività, clustering, misure di centralità. Diametro di un network. Sottonetworks; clustering di un network; cliques e moduli. Definizione e calcolo delle principali misure del network. Metodi di clustering: Newman-Girwan.
Modello base: random networks alla Erdos-Renyi. (Analogia con i modelli di percolazione.) Distribuzione dei parametri del network e teoremi limite per N>>1. Matrici di Wigner e spettro degli autovalori. Transizione di fase e giant cluster. Relazione tra vari parametri del network (assortatività-disassortatività [modelli di MEJ Newman, Maslov-Sneppen], connettività vs. betwenness centrality).
Lattice come network: proprietà. Generalizzazione a small world networks: high clustering short distances (log(N)). Modello di Watts-Strogatz: rewiring.
Scale free networks: esempi. Modello di crescita di Barabasi-Alberts: preferential attachment. Scale log-log. Istogrammi e possibili errori (heavy tails).
Perturbazioni di un network: attack/error tolerance, node relevance & efficiency.
Meccanica statistica dei network: definizione di ensemble, constraints e network entropy.
Sviluppo di alcuni esempi particolari: network & Sistema Immunitario, serie temporali di espressione genica, random boolean networks, metabolic networks & flux balance analysis. Esempi in modelli biologici (gerarchia: Jeong-Tombor-Barabasi, motifs: Alon).
--------Modalità di verifica dell'apprendimento
Verifica orale con lo sviluppo di un elaborato su un argomento specifico. Lo studente deve essere capace di: - applicare i metodi di analisi dei network appresi a lezione - adattarli al contesto del progetto/elaborato
Scusa ma mi sento preso per il culo.
Hai copia incollato la descrizione del corso che stai seguendo, non la consegna.
"Verifica orale con lo sviluppo di un elaborato su un argomento specifico. "
Facci vedere questo progetto specifico.
Perchè dovrei prenderti per il culo!!!!
Questo è tutto ciò che il prof c'ha dato.
L'argomento è a scelta dello studente.
Non ho altre info!
Che cos'è la CONSEGNA??? Boh... nei progetti fatti di programmazione non ho MAI e dico MAI avuto una consegna! Non so nemmeno cosa sia
aspetta.... che sia questo?? :cry:
Esame finale
Elaborato (report con dati, algoritmi, riferimenti):
- compilativo (es. commento ad articoli)
- progetto originale (es. analisi e misure su network
empirici, ricostruzione di network da dati reali, modelli
dinamici su network)
Da soli o IN GRUPPO
(in python)
Perchè dovrei prenderti per il culo!!!!
Questo è tutto ciò che il prof c'ha dato.
Cioè vi ha dato un estratto della pagina che identifica il corso?
https://www.unibo.it/it/didattica/insegnamenti/insegnamento/2017/330194
P
L'argomento è a scelta dello studente.
Non ho altre info!
Che cos'è la CONSEGNA??? Boh... nei progetti fatti di programmazione non ho MAI e dico MAI avuto una consegna! Non so nemmeno cosa sia
Io in te, visti i dubbi, contatterei il prof:
https://www.unibo.it/sitoweb/daniel.remondini
ma hai visto il mio ultimo ESAME FINALE??
I dati reale si riescono a trovare su internet. Diverse università allegano file .csv ;)
Cmq non capisco perchè mi hai riportato il link del prof.
Pensi che non ce l'abbia :eek:
Io sto chiedendo aiuto a voi. Mi potete aiutare????
Se fosse stato così semplice rintracciare il prof non sarei qui ora!
Il progetto si può fare anche in gruppo ma ahimè non ho trovato nessuno per cui me la devo cavare da solo.
Voi potete darmi due dritte su come muovermi? Chiedo tanto?
Grazie mille
Ti ringrazio per questo confronto perchè mi hai fatto trovare la pagina legata all'esame finale che trovandosi nelle primissime pagine avevo messo da parte in fase di studio e sbadatamente non riconsiderato successivamente! :muro:
So che ce la posso fare ma... boh... magari è più semplice di quanto penso e mi complico la vita.
Sono nervoso perchè non riesco a iniziare e il tempo passa!!!
pabloski
17-04-2019, 13:13
Se il problema è implementativo, posso dirti che la seconda che avevi scritto all'inizio è quella giusta.
Giocherello con le reti neurali e pure in questo campo si fa così. Cioè non si modella una rete di elevata complessità come una serie di oggetti interconessi, ma si valutano le variabili rappresentatevi dei vari nodi ( pesi sinaptici e bias nel caso dei neuroni ), si ficcano in matrici e si usano operazioni matriciali ( Numpy sotto Python ) per fare i calcoli.
Modellare il tutto col paradigma OOP uccide le prestazioni e non si può accelerare via GPU, cosa che magari il tuo esame richiede/preferisce.
Quindi le informazioni legate ai nodi (e pesi dei links), che poi dipende dal tipo di rete mi pare (giusto? ) sono i dati contenuti su file .csv (è esatto? ).
Ok quindi meglio procedere con python procedurale piuttosto che OOP.
Meglio per me :D
Ho provato a contattare il professore per l'ennesima volta. Spero mi risponda..dai e dai... :cry:
Nel frattempo mi sono scaricato matlab dal portale universitario, provo in questi giorni a giocarci un po :doh:
Per quanto riguarda python ho installato diverse librerie tramite anaconda, anche Spyder come tool di sviluppo.
Ho installato non solo NUMPY ma anche Scipy, Matplotlib, BioPython, qualcuna per l'interfaccia grafica (in caso).
Per le reti neurali hai installato Theano?
Nella dinamica delle reti c'è il richiamo alle reti neurali ma ho notato che il programma si sofferma maggiormente su interazioni tra RNA/geni/proteine, sistema immunitario.
Provo a cercare qualche file .csv legato a questi argom nel frattempo che... se mi rispondesse il prof sarebbe meglio :D
Grazie 1000!!
PS: Ho pensato di rimanere su quegli argomenti anche perchè così il progetto posso presentarlo per due esami (reti complesse e Biologia).
In questo secondo esame verrebbe richiesto nel progetto la gestione dei Big Data.
Secondo te lo posso integrare in questo progetto di python su reti?
pabloski
18-04-2019, 16:37
Quindi le informazioni legate ai nodi (e pesi dei links), che poi dipende dal tipo di rete mi pare (giusto? ) sono i dati contenuti su file .csv (è esatto? ).
Questo dipende dal formato.
Per esempio Tensorflow memorizza sia la struttura della rete che i parametri.
Per le reti neurali hai installato Theano?
No. Theano è di fatto abbandonato. Bengio non ci lavora più. I competitor sono troppo forti. Attualmente i maggiori sono Tensorflow ( Google ), PyTorch ( Facebook ), Mxnet ( Apache/Amazon ), CNTK ( Microsoft ), PaddlePaddle ( Baidu ).
E Caffe che si difende ancora benino.
Nella dinamica delle reti c'è il richiamo alle reti neurali ma ho notato che il programma si sofferma maggiormente su interazioni tra RNA/geni/proteine, sistema immunitario.
Evidentemente è orientato a supportare un futuro esame di bioinformatica.
Si credo di si, bioinformatica e biofisica, anche perchè la parte di reti neurali l'ha trattata in modo specifico un altro prof analisi dati e pattern recognition con Matlab.
In merito alla possibilità di gestire i Big Data nello studio delle reti biologiche dici che possa farlo?
In questo caso forse dovrei considerare reti di più tipologie connesse tra loro? :eh: (più argom bio interconnessi) :doh:
Il prof mi ha tirato fuori il discorso del Cloud...
pabloski
18-04-2019, 18:38
In merito alla possibilità di gestire i Big Data nello studio delle reti biologiche dici che possa farlo?
A parte l'hype intorno a questi termini assurdi. Ma si, i big data sono "tantissimi dati correlati". I metodi sono più o meno sempre gli stessi. Che riguardino lo studio di sistemi biologici o difetti dei materiali, non c'è differenza.
In questo caso forse dovrei considerare reti di più tipologie connesse tra loro? :eh: (più argom bio interconnessi) :doh:
Ma queste cose si fanno quando hanno senso. Mischi una CNN con un ensemble ( per esempio )? Il risultato sarà al 99% un disastro.
Dietro ogni architettura di rete complessa ( neurale, biologica, un processo markoviano o che altro ) ci sono decenni di studi, prove ed errori, teoremi matematici dimostrati e alcuni ancora da dimostrare.
Non produci qualcosa di logico e funzionante mischiando roba a casaccio.
Il prof mi ha tirato fuori il discorso del Cloud...
Come esempio. Il cloud computing non è altro che la messa in comune, da parte di un vasto array di computer, di risorse di calcolo, di archiviazione dati e periferiche.
Ed è un termine esclusivamente relativo alle reti telematiche.
Mi potete consigliare una pagina dove scaricare file di Big Data reali in biologia?
quelli presenti in Cytoscape possono andar bene? Grazie
Ciao a tutti e Buon Anno!
Ho completato la prima parte, legata allo studio dei Networks,
ora devo provare ad inserire la parte di Cinetica tipo la 'costante di Michaelis-Menten' enzimatica ma non saprei quale libreria usare, sempre ce ne sia una.
Mi pare che Biopython sia più legata al genoma più che al proteoma.
Qualcuno che mi sappia consigliare? Grazie!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.