









Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Primi passi per programmare in Python
Tipologia: Dispense
1 / 16
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










Il notebook di python è il programma che si utilizza per scrivere ed eseguire i programmi in python. Necessario esportare il file come “ Save and Export as Executable Script” sempre nella cartella sharedFolder altrimenti viene cancellato. Per eseguire il programma dal terminale bisogna scrivere python3 nome_programma.py
Esegue le istruzioni una alla volta, è comoda per fare semplici calcoli e per verificare immediatamente se le istruzioni funzionano.
Le variabili sono contenitori nella memoria del computer che contengono un valore tramite assegnazione (=) Tipologie float: numero con la virgola Int: numero intero str=stringa: caratteri/lettere
(/), esponente (**), div. intere (//), resto div. (%).
Due variabili per essere concatenate devono essere dello stesso tipo, perciò utilizziamo le conversioni: In questo caso volevamo ottenere una stringa finale che comprendesse la variabile numerica la stringa è stata convertita in un valore numerico
p r i n t ( a r g 1 , a r g 2 ,’ ar g 3 ’ … ) [“/n” (andare a capo);” /t” (tab)] risposta
Per consentire all’utente di inserire un valore. DNA = input ('Inserisci sequenza nucleotidica:')
L'Algebra di Boole è quel ramo dell'Algebra in cui non si utilizzano numeri ma solamente due valori detti Valori di Verità (proprio i Vero e Falso che usiamo nei nostri diagrammi) e che mediante i suoi operatori permette di effettuare calcoli logici.
Può essere utile per analizzare ogni elemento all’interno di una variabile.
Per poter usare il contenuto di un file all’interno di Python è necessario che sia aperto e associato ad un file handle: file1=open (‘path/esempio.txt’, ’r’) file1 sarà memorizzato un collegamento in lettura Per poter scrivere su un file invece: file2=open (‘path/output.txt’, ’w’) file2 collegamento in scrittura in cui potremo stampare diret. Output
riga del documento
Questo metodo sarà molto utile, ad esempio, nel caso in cui dovessimo usare un ciclo for sugli elementi di lines Per stampare invece sul file in scrittura bisogna usare la seguente sintassi: file2.write(s) s=variabile da stampare
Per render un programma generalizzato ed applicabile su input differenti è possibile fornire questi ultimi come argomenti dalla linea di comando: ./programma.py argomento_1 argomento_2 … argomento_n Per permettere la lettura degli argomenti è necessario importare la libreria sys: import sys NOTA BENE:
Il risultato della condizione per eseguire Istruzione1 è true; Istruzione alternativa se il risultato è false (in logica booleana). Le condizioni possono essere espresse utilizzando degli operatori come: ‘==’ (uguaglianza); ‘! =’ (diversità); ‘>’, ‘<’, o ‘<=’ o ‘>=’ Più condizioni logiche and (congiunzione coordinata/solo se entrambe sono true) e or (congiunzione disgiuntiva/ almeno una delle due è true).
Sono molto utili, ad esempio, per calcolare il peso molecolare di una sequenza nucleotidica di cui si conoscono i valori fissi, e quindi attraverso un if else inizializzare una funzione che sia in grado di calcolare il peso a partire da una sequenza nucleotidica inserita
È una libreria come os e sys, riferita all’ambito biologico. Per installarlo bisogna inserire il comando dal terminale: pip3 install biopython
Sono essenzialmente un piccolo ed altamente specializzato linguaggio di programmazione incorporato in Python e reso disponibile attraverso la libreria re. Utilizzando questo piccolo linguaggio, si specificano le regole per l'insieme di possibili stringhe che di cui si vogliono trovare corrispondenze. I primi caratteri importanti per le espressioni regolari sono le parentesi quadre []. Dire aggttg[gt]aa”, vuol dire che dove cominciano le parentesi quadre può esserci una g oppure una t. Quindi scrivere “aggttg[gt]aa” = “aggttggaa” e “aggttgtaa”. o Le quadre due o più caratteri consentiti o Il punto tutti i caratteri o La graffa indica quante volte deve ripetersi Esempio: enzima4=’aat{2,3} in se1 seq2 (la t si deve ripetere da due a tre volte) Altre funzioni re
1. Re.finditer salvare in una variabile tante informazioni, raggiungibili con: a. Lettera .group() restituisce il match b. Lettera .start() da dove inizia c. Lettera .end() dove finisce NOTA: PER SALVARE LE MODIFICHE SUL JUPYTER Digitare ‘ docker ps’ nel terminale Trovare il container ID Digitare nel terminale ‘ docker commit “ID” repbioinfo/informatica22- 23 ATTENTA: o dopo digitare import Bio sul Notebook o Se non funziona, elimina la riga docker pull dallo script Tutto rispetto alla sequenza in cui si cerca
IN AMBITO BIOLOGICO
Biopython contiene in automatico la libreria che si chiama SeqIO , che contiene le funzioni necessarie alla gestione dei file fasta. Con il seguente codice che utilizza il modulo SeqIO di biopython potrete leggere un file .fasta che potrebbe contenere diverse sequenze nucleotidiche e/o amminoacidiche. N.B. con il metodo: .seq è possibile ottenere la sequenza contenuta in ogni record .description si possono ottenere le informazioni sulla sequenza che sono contenute nella riga di header di ogni sequenza (che inizia con ‘>’)
Per fare esperimenti in campo biologico, è utile sapere che esistono due tipologie di dati processati: SAMPLE DATA (METADATA): riportano le informazioni specifiche dei campioni che state analizzando COUNT DATA: livelli degli analiti che avete misurato (es. i livelli di espressione da un esperimento di sequenziamento del RNA).
Esercitazione 9.1. Ipotizza di aver ottenuto dati di una ricerca su un farmaco e aver isolato due campioni di due gruppi: Trattato, con il farmaco; e Controllo, senza farmaco. Creare due dizionari contenenti: N (n°soggetti totali) Age (età media del gruppo) Sex = vettore con percentuale maschi e femmine BMI= BMI medio nel gruppo N.B. convertire in numero una stringa
Per sostituire un elemento: my_data[0,0] = 5 oppure my_data[0,0] = my_data[1, 2] Quando si analizzano questo tipo di dati è utile avere una visione più generale; non possiamo guardare ogni singolo gene quanto è espresso in ogni soggetto, abbiamo bisogno quindi di un modo per rappresentare questa informazione. Se volessimo per prima cosa salvare in una variabile il valore di tutti i geni del soggetto1 basterà utilizzare la seguente sintassi: geniSoggetto1 = my_data[:, 0] #salva in soggetto1 i geni presenti nella colonna 1 relativa al primo soggetto. Esercizio 9.2. Esercizio 9.2.2 (chiedere ad ale)
La classe di programmazione usata in Python è detta “ad oggetti”. Ossia ogni variabile che viene utilizzata durante l'esecuzione di un programma in Python deve essere considerata come un oggetto appartenente ad una classe specifica. Ad esempio, la variabile Testo=’ciao’ sarà automaticamente associata ad una classe già definita in Python, ovvero la classe stringa. Tale oggetto o istanza di classe stringa avrà quindi delle proprietà specifiche, tra cui la possibilità di applicare su di essa delle funzioni specifiche detti metodi (richiamati con il punto ‘.’). Su una stringa, per esempio abbiamo visto: strip (per rimuovere l’accapo al termine della stringa) split (per dividere la stringa in base ad un’altra stringa) find (per trovare la posizione di una sottostringa) esempio: variabile1 = 1234567 risultato = variabile1.split(“4”) #divido la stringa in base al carattere 4 print(“prima parte”, risultato[0]) print(“prima parte”, risultato[1]) ris: prima parte 123 seconda parte 567 Python da’ inoltre la possibilità di creare nuovi oggetti a cui possiamo attribuire specifiche proprietà. Immaginiamo infatti di dover creare una collezione di sequenze di DNA (es ognuna relativa ad un gene, ad un organismo, o ad un campione specifico). Ad ogni molecola di DNA possiamo attribuire delle informazioni (un identificativo, il contenuto di CG, la lunghezza, etc.) o delle funzioni specifiche (la possibilità di essere convertite in RNA, la possibilità di cercare un pattern specifico, etc.).