Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Programmazione in Python, Dispense di Bioinformatica

Primi passi per programmare in Python

Tipologia: Dispense

2023/2024

Caricato il 09/07/2025

sara-guglielmone
sara-guglielmone 🇮🇹

3.5

(2)

9 documenti

1 / 16

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Programmare su Python
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 Scriptsempre nella cartella
sharedFolder altrimenti viene cancellato.
Per eseguire il programma dal terminale bisogna scrivere python3 nome_programma.py
La Shell Interattiva
Esegue le istruzioni una alla volta, è comoda per fare semplici calcoli e per verificare
immediatamente se le istruzioni funzionano.
Scrivere commenti sul codice
VARIABILI
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
Operatori: somma o concatenazione di stringhe (+), sottrazione (-), moltiplicazione (*), divisione
(/), esponente (**), div. intere (//), resto div. (%).
La funzione type() : per riconoscere il tipo di variabile
La funzione isinistance(): Questa funzione viene utilizzata per verificare se un oggetto
è di un certo tipo o se è una sottoclasse di quel tipo
Python tutto è oggetto
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Programmazione in Python e più Dispense in PDF di Bioinformatica solo su Docsity!

Programmare su Python

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

La Shell Interattiva

Esegue le istruzioni una alla volta, è comoda per fare semplici calcoli e per verificare immediatamente se le istruzioni funzionano.

Scrivere commenti sul codice

VARIABILI

Le variabili sono contenitori nella memoria del computer che contengono un valore tramite assegnazione (=) Tipologiefloat: numero con la virgola  Int: numero intero  str=stringa: caratteri/lettere

Operatori : somma o concatenazione di stringhe (+), sottrazione (-), moltiplicazione (*), divisione

(/), esponente (**), div. intere (//), resto div. (%).

 La funzione type() : per riconoscere il tipo di variabile

 La funzione isinistance(): Questa funzione viene utilizzata per verificare se un oggetto

è di un certo tipo o se è una sottoclasse di quel tipo

Python tutto è oggetto

CONVERSIONE TRA TIPI DI DATO

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

FUNZIONI PRINT E INPUT

La funzione print()

p r i n t ( a r g 1 , a r g 2 ,’ ar g 3 ’ … ) [“/n” (andare a capo);” /t” (tab)] risposta

La funzione input

Per consentire all’utente di inserire un valore. DNA = input ('Inserisci sequenza nucleotidica:')

LOGICA BOOLEANA

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.

IL CICLO FOR

Può essere utile per analizzare ogni elemento all’interno di una variabile.

LETTURA E SCRITTURA DI FILE IN PYTHON

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

Nel caso di un file handle è possibile usare il metodo .readlines() assegna un riferimento ad ogni

riga del documento

Lines=file1.readlines()

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

USO DI ARGOMENTI COME INPUT DI UN PROGRAMMA

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:

  • dopo aver scritto su jupyterlab ricordarsi di salvare il file come notebook eseguibile e verificare se nella prima riga è presente un commento con scritto python 3 #!/usr/bin/env python
  • permettere al terminale di accedere al file (chmod +x nomefile)
  • il primo argomento è in posizione 1 (lo 0 è occupato dal comando)

LE ISTRUZIONI CONDIZIONALI:

IF, ELSE IF, ELSE

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

BIOPYTHON

È una libreria come os e sys, riferita all’ambito biologico. Per installarlo bisogna inserire il comando dal terminale: pip3 install biopython

ESPRESSIONI REGOLARI

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

Due tipi di file: FASTA E FASTQ

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 ‘>’)

ANALISI DI UN SAMPLE DATA/METADATA

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 femmineBMI= 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)

PROGRAMMAZIONE AD OGGETTI

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.).

Esercizio finale