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


bioinformatica e informatica, Sintesi del corso di Elementi di Informatica

Utili per passare un esame universitario, facili da comprendere🥰

Tipologia: Sintesi del corso

2025/2026

In vendita dal 05/02/2026

sofia-campagnolo-2
sofia-campagnolo-2 🇮🇹

2 documenti

1 / 52

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA
Informazioni sul corso
Corso: Principi di Informatica — Corso di Laurea in Biotecnologie L-2
Docente: Prof.ssa Carolina Crespi (Post-doc, Dip. Matematica e Informatica, UNICT) —
Ricevimento: via email (Studio 230, 1° piano, stanza dietro la biblioteca)
Materiale didattico: caricato su Studium.
Struttura del corso
Parte I — Introduzione alla programmazione: Definizione di algoritmo e di linguaggio di
programmazione. Descrizione dei traduttori e distinzione tra linguaggi compilati e
interpretati. Concetti di base della programmazione: variabili, assegnamento, tipi di dato e
tipi di operatori (aritmetici, relazionali e booleani). Introduzione ai costrutti fondamentali
della programmazione (sequenza, selezione e iterazione). I diagrammi di flusso e la
Notazione Lineare Strutturata. Esercitazioni su algoritmi e diagrammi di flusso.
Parte II — Linguaggio R: Istallazione e introduzione a R e all'ambiente di sviluppo
Rstudio. Basi del linguaggio: commenti, assegnazione di valori a variabili, valori speciali,
tipi di dato primitivi e avanzati, controllo e conversione del tipo di dato. Sintassi degli
operatori aritmetici, relazionali e booleani. Sintassi dei costrutti fondamentali (if-else, while,
for) e implementazione di semplici diagrammi di flusso. Definizione di funzione e relative
esercitazioni. Introduzione del tipo di dato vettoriale (funzione di concatenazione, funzione
seq(), rep() e altre funzioni di utilità sui vettori). Introduzione al tipo di dato matriciale e
relative funzioni (estrazione di elementi, filtri, gestione di righe e colonne). Esercitazioni su
vettori e matrici. Introduzione al tipo di dato lista (la funzione list() e le funzioni di utilità,
estrazioni di elementi). Introduzione al tipo di dato dataframe (funzioni di utilità,estrazione
di elementi, aggiunta/rimozione di righe e colonne, gestione dei valori NA). Esercitazioni su
liste e dataframes. Lettura e scrittura files. Grafici in R (line plots, bar plots, pie charts e
parametri estetici). Istallazione di librerie in R da CRAN e Bioconductor.
Parte III — Python: Istallazione e introduzione a Python e all'ambiente di
sviluppo Spyder. Basi del linguaggio: commenti, assegnazione di valori a variabili, valori
speciali, tipi di dato primitivi e avanzati, controllo e conversione del tipo di dato, stringhe e
relative operazioni. Sintassi degli operatori aritmetici, relazionali e booleani.
Sintassi dei costrutti fondamentali (if-else, while, for) e implementazione di semplici diagrammi
di flusso. Definizione di funzioni e docstrings e relative
esercitazioni. La standard library di Python. Introduziona al tipo di dato lista (creazione di una
lista, estrazione di elementi e metodi relativi). Tuple e set (definizione e metodi relativi).
Dizionari (definizione e metodi relativi). Istallazione di moduli esterni tramite pip e
installazione di pandas e numpy. Introduzione alle matrici di numpy e relative operazioni.
Esercitazioni su matrici. Introduzione alle series di pandas e relative operazioni.
Introduzione ai dataframes di pandas e relative operazioni.
Esercitazioni su series e dataframes. Grafici in Python con matplotlib (line plots, bar plots e
parametri estetici).
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34

Anteprima parziale del testo

Scarica bioinformatica e informatica e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA

Informazioni sul corso

  • Corso : Principi di Informatica — Corso di Laurea in Biotecnologie L- 2
  • Docente : Prof.ssa Carolina Crespi (Post-doc, Dip. Matematica e Informatica, UNICT) — [email protected]
  • Ricevimento : via email (Studio 230, 1° piano, stanza dietro la biblioteca)
  • Materiale didattico : caricato su Studium. Struttura del corso
  • Parte I — Introduzione alla programmazione : Definizione di algoritmo e di linguaggio di programmazione. Descrizione dei traduttori e distinzione tra linguaggi compilati e interpretati. Concetti di base della programmazione: variabili, assegnamento, tipi di dato e tipi di operatori (aritmetici, relazionali e booleani). Introduzione ai costrutti fondamentali della programmazione (sequenza, selezione e iterazione). I diagrammi di flusso e la Notazione Lineare Strutturata. Esercitazioni su algoritmi e diagrammi di flusso.
  • Parte II — Linguaggio R : Istallazione e introduzione a R e all'ambiente di sviluppo Rstudio. Basi del linguaggio: commenti, assegnazione di valori a variabili, valori speciali, tipi di dato primitivi e avanzati, controllo e conversione del tipo di dato. Sintassi degli operatori aritmetici, relazionali e booleani. Sintassi dei costrutti fondamentali (if-else, while, for) e implementazione di semplici diagrammi di flusso. Definizione di funzione e relative esercitazioni. Introduzione del tipo di dato vettoriale (funzione di concatenazione, funzione seq(), rep() e altre funzioni di utilità sui vettori). Introduzione al tipo di dato matriciale e relative funzioni (estrazione di elementi, filtri, gestione di righe e colonne). Esercitazioni su vettori e matrici. Introduzione al tipo di dato lista (la funzione list() e le funzioni di utilità, estrazioni di elementi). Introduzione al tipo di dato dataframe (funzioni di utilità,estrazione di elementi, aggiunta/rimozione di righe e colonne, gestione dei valori NA). Esercitazioni su liste e dataframes. Lettura e scrittura files. Grafici in R (line plots, bar plots, pie charts e parametri estetici). Istallazione di librerie in R da CRAN e Bioconductor. Parte III — Python : Istallazione e introduzione a Python e all'ambiente di sviluppo Spyder. Basi del linguaggio: commenti, assegnazione di valori a variabili, valori speciali, tipi di dato primitivi e avanzati, controllo e conversione del tipo di dato, stringhe e relative operazioni. Sintassi degli operatori aritmetici, relazionali e booleani. Sintassi dei costrutti fondamentali (if-else, while, for) e implementazione di semplici diagrammi di flusso. Definizione di funzioni e docstrings e relative esercitazioni. La standard library di Python. Introduziona al tipo di dato lista (creazione di una lista, estrazione di elementi e metodi relativi). Tuple e set (definizione e metodi relativi). Dizionari (definizione e metodi relativi). Istallazione di moduli esterni tramite pip e installazione di pandas e numpy. Introduzione alle matrici di numpy e relative operazioni. Esercitazioni su matrici. Introduzione alle series di pandas e relative operazioni. Introduzione ai dataframes di pandas e relative operazioni. Esercitazioni su series e dataframes. Grafici in Python con matplotlib (line plots, bar plots e parametri estetici).

Algoritmi — definizione e concetti chiave Algoritmo: sequenza finita e ordinata di istruzioni che descrive con precisione come risolvere un determinato problema. A partire dai dati di ingresso (input), un algoritmo è in grado di produrre i risultati desiderati (output), seguendo regole logiche ben definite. Cosa sono le istruzioni In un algoritmo, la sequenza delle istruzioni è fondamentale, perché il calcolatore esegue istruzioni nell’ordine in cui sono scritte, una dopo l’altra. Cambiare l’ordine può alterare il comportamento del programma o portare a risultati errati. Tipi di istruzioni in un algoritmo:

  • Istruzioni operative (imperative) : eseguono azioni concrete (es. “leggi un numero”, “stampa un messaggio”).
  • Istruzioni di controllo decisionale : selezionano quale blocco eseguire in base a condizioni (es. if, else, switch).
  • Istruzioni di controllo iterativo : ripetono operazioni finché una condizione è vera (es. while, for, repeat). Caratteristiche fondamentali di un algoritmo Caratteristica Descrizione Finitezza Deve terminare dopo un numero finito di passi. Definitezza / Non ambiguità Ogni operazione deve essere precisa e non interpretabile soggettivamente. Input Devono essere specificati chiaramente i dati in ingresso. Effettività Le operazioni devono essere effettivamente eseguibili con le risorse disponibili. Terminazione ragionevole Deve completarsi in un tempo finito e praticabile. Generalità Deve risolvere un’intera classe di problemi, non solo casi specifici. Esempi di fallimenti di un algoritmo (punti critici)
  • Ciclo infinito : incrementare X e tornare sempre al passo precedente senza condizione di uscita.
  • Ambiguità : istruzioni del tipo “prendi una quantità sufficiente” o “mescola finché sembra pronto” sono non definite.
  • Input non specificato : “calcola la media dei numeri” senza definire quali numeri.
  • Non effettività : “risolvi qualsiasi problema matematico” non è realizzabile come insieme di operazioni concrete.
  • Terminazione non ragionevole : provare tutte le password a 10 cifre può terminare, ma richiede tempo inaccettabile.
  • Mancanza di generalità : algoritmo che funziona solo per un valore specifico (es. solo per il numero 4). Programmi e linguaggi di programmazione Un algoritmo può essere descritto anche in linguaggio naturale, come l’italiano. Tuttavia, in questa forma non può essere compreso né eseguito da un computer, perché il linguaggio naturale è ambiguo e impreciso. Per poter essere eseguito da un calcolatore, un algoritmo deve essere tradotto in un linguaggio formale, ovvero: preciso, senza ambiguità, comprensibili per la macchina. Un programma è proprio questo: un algoritmo scritto in un linguaggio formale, che per questo motivo

Componenti di un linguaggio di alto livello

  • Alfabeto : simboli base (lettere, numeri, operatori, punteggiatura).
  • Lessico : parole riconosciute (keyword, nomi validi per variabili/funzioni).
  • Sintassi : regole grammaticali per combinare simboli e parole.
  • Semantica : significato delle frasi sintatticamente corrette; un programma può essere sintatticamente corretto ma semanticamente sbagliato Variabili e assegnamento In informatica, una variabile è uno spazio in memoria utilizzato per memorizzare un’informazione. Si può immaginare come una scatola etichettata, dove:
  • L’etichetta è il nome della variabile
  • Il contenuto è il valore che contiene Una variabile consente di dare un nome a un lato, cosi da poterlo usare in modo più semplice, modificabile, leggibile e riutilizzabile in un programma.
  • Caratteristiche : ◦ Possono cambiare valore durante l’esecuzione. ◦ Sono case sensitive (es. nome ≠ Nome). ◦ Devono rispettare le regole di naming del linguaggio; buona pratica: nomi chiari, in minuscolo, underscore per separare parole.
  • Assegnamento : operazione che inserisce un valore in una variabile. In molti linguaggi si usa = (es. Python, Java); in R si può usare anche <- (es. a <- 10). ◦ Esempio di aggiornamento: x = 1; x = x + 1 Tipi di dato I linguaggi devono conoscere il tipo di un valore per applicare operazioni corrette e coerenti. Tipo Descrizione Esempi Numero intero Numeri senza virgola 3, - 15 Numero reale Numeri con decimali 3.14, 0. Testo (stringa) Sequenze di caratteri "ciao", "ACGT" Booleano Valore logico True, False Complesso Numeri complessi 3 + 2i Lista Sequenza ordinata e modificabile frutti = ["mela", "banana"] Matrice / Array Struttura 2D (righe e colonne) m = np.array([[1,2],[3,4]]) Esempio di differenza d’operazione : 3 + 4 esegue un’addizione; "3" + "4" concatena le stringhe ottenendo "34". Operatori

LINGUAGGI DI ALTO LIVELLO

 Un programma può essere sintatticamente corretto , ma semanticamente sbagliato , cioè non fare ciò che intendevi. a = 10 b = 20 media = a + b / 2 print(media) # Output: 20. a = 10 b = 20 media = (a + b) / 2 print(media) # Output: 15.

Per operatori si intende un simbolo che indica delle manipolazioni locgiche e matematiche sui dati Gli operatori appartengono a 3 classi: Operatori aritmetici Operatore Significato Esempio Risultato

  • Somma 3 + 2 5
  • Sottrazione 5 - 1 4
  • Moltiplicazione 4 * 3 12 / Divisione reale 10 / 2 5. % Modulo (resto) 7 % 3 1 ** o ^ Potenza 2 ** 3 / 2^3 8 Operatori relazionali Operatore Significato Esempio Risultato == Uguale 4 == 4 True != Diverso 5 != 3 True > Maggiore 7 > 5 True < Minore 2 < 4 True >= Maggiore o uguale 5 >= 5 True <= Minore o uguale 3 <= 2 False Operatori logici Scopo : combinare condizioni restituendo un booleano (True/False); usati in if, while, filtri. ◦ AND : vero solo se entrambe le condizioni sono vere. ◦ OR : vero se almeno una condizione è vera. ◦ NOT : inverte il valore logico. Riepilogo sulle variabili
    • Le variabili nominano e conservano valori.
    • L’assegnamento inizializza o aggiorna una variabile.
    • Ogni valore ha un tipo che ne determina il comportamento.
    • Gli operatori aritmetici calcolano; i relazionali confrontano; i logici combinano condizioni. Costrutti fondamentali (controllo del flusso) Tre costrutti di base su cui si costruiscono tutti i programmi:
    • Sequenza (esecuzione lineare).
    • Selezione / Condizione (scelta, if / else).
    • Iterazione / Ciclo (ripetizione, while, for).

OPERATORI LOGICI

Gli operatori logici servono per combinare più condizioni relazionali, con risultato booleano (True/False). Molto utili nei blocchi if, while, o nel trattamento di dati A B A AND B FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE A B A OR B FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE A NOT A FALSE TRUE TRUE FALSE AND vero solo se entrambe le condizioni sono vere. OR vero solo se almeno una delle condizioni è vera. NOT inverte il valore logico. Esegui un’istruzione solo se x> 0 AND y> 0 ; x> 0 OR y> 0

Funzioni

  • Sono blocchi riutilizzabili che combinano sequenza, selezione e iterazione.
  • Possono ricevere argomenti e restituire valori.
  • Vantaggi: riuso, chiarezza, organizzazione del codice. Esempio: def saluta(nome): print("Ciao, " + nome + “!”) . . . saluta(“Anna”) saluta(“Marco”) Diagrammi di flusso (flowcharts) Rappresentazioni grafiche di algoritmi usando forme geometriche standard per mostrare ordine, decisioni e ripetizioni. I diagrammi si leggono dall’alto verso il basso seguendo le frecce. Teorema di Böhm–Jacopini (1966) Ogni algoritmo può essere costruito usando solo le tre strutture:
  • sequenza , esecuzione lineare di istruzioni una dopo l’altra. Simbolo: serie di rettangoli collegati da frecce
  • selezione , scelta tra due o più percorsi in base a una condizione logica. Simbolo : rombo con almeno due uscite (si, no)
  • iterazione , ripetizione di un blocco di istruzioni finché una condizione è vera Qualsiasi altra istruzione può essere ricondotta a combinazioni di questi schemi. Notazione lineare strutturata e indentazione La notazione lineare strutturata descrive gli algoritmi in forma testuale con indentazione chiara per i blocchi logici, è un passo intermedio tra linguaggio naturale e codice. Ogni istruzione è scritta su una riga, e i blocchi logici sono indentati per mostrare la gerarchia. Indentazione : spostamento in avanti di una riga di codice per mostrare visivamente quali istruzioni appartengono a un blocco logico. In Python è sintatticamente obbligatoria; in altri linguaggi è fortemente raccomandata.

SIMBOLI DEI DIAGRAMMI DI FLUSSO

Simbolo Significato Descrizione Ovale Inizio / Fine Indica il punto di partenza o di conclusione dell’algoritmo Parallelogramma Input / Output Rappresenta operazioni di scrittura dati (es. "leggi X", "scrivi risultato")^ lettura o Rettangolo Istruzione / Azione Contiene operazioni assegnamento (es. x = x + 1)^ di calcolo o Rombo Condizione / Decisione Rappresenta un con risposta sì/no^ bivio logico : una domanda Freccia Flusso del controllo Indica il programma^ verso dell’esecuzione^ del I diagrammi si leggono sempre dall’alto verso il basso , seguendo le frecce.

 L’ indentazione è lo spostamento in avanti di una riga di codice , solitamente con spazi o tabulazioni, per mostrare visivamente quali istruzioni appartengono a un blocco logico.  In Python, l’indentazione non è solo estetica : è parte della sintassi del linguaggio. Senza indentazione corretta, il programma non funziona.  In altri linguaggi come R, C, Java, JavaScript, non è obbligatoria per la compilazione, ma è fortemente raccomandata per evitare confusione. numero = 10 if numero % 2 == 0: print("È pari") else: print("È dispari") numero = 10 if numero % 2 == 0: print("È pari") else: print("È dispari") Esempio errato (indentazione mancante – Python)^ Esempio corretto (Python)  Selezione (o condizione / decisione)  Scelta tra due o più percorsi in base a una condizione logica.  Simbolo: rombo, con almeno due uscite (es. sì / no). NO SI Condizione Istruzione Istruzione

COSTRUTTI FONDAMENTALI

if (Condizione) then Istruzione 1; else Istruzione 2; end if

COSTRUTTI FONDAMENTALI

Sequenza  Esecuzione lineare di istruzioni una dopo l’altra.  Simbolo: serie di rettangoli collegati da frecce. ISTRUZIONE 2 ISTRUZIONE 1

COSTRUTTI FONDAMENTALI

Istruzione 1; Istruzione 2; . . Istruzione n;

COSTRUTTI FONDAMENTALI

Iterazione (o ciclo)  Ripetizione di un blocco di istruzioni finché una condizione è vera.  Si rappresenta con un rombo (condizione) + freccia che ritorna indietro. NO SI Condizione Istruzione while (Condizione) do Istruzione; end while

R

R è un linguaggio di programmazione e un ambiente di calcolo pensato per l’analisi dei dati, la statistica e la grafica scientifica. È ampiamente usato nella ricerca, nelle scienze biologiche e biotecnologiche, ma anche in ambito economico, sanitario, sociale. Una delle maggiori forze di questo linguaggio è la sua flessibilità. Può essere utilizzato per una vasta gamma di analisi statistiche, dal calcolo di semplici medie alla creazione di modelli di machine learning complessi. È un software libero in quanto viene distribuito con la licenza GNU GPL, ed è disponibile per diversi sistemi operativi (GNU/Linux, macOS, Microsoft Windows). Anche se il linguaggio è fornito con un'interfaccia a riga di comando, sono disponibili diverse interfacce, tra cui il popolare Rstudio. COME FUNZIONA R

  • R interpreta il codice riga per riga (linguaggio interpretato)
  • R ha una struttura “a blocchi”: le funzionalità di base si possono estendere installando pacchetti aggiuntivi Esistono migliaia di pacchetti per:
  • statistica avanzata,
  • analisi genomica,
  • machine learning,
  • grafici interattivi Si installano direttamente da R o RStudio con comandi come:
  • install.packages("nome_pacchetto")PERCHE’ USARE R
  • È open source: gratuito, modificabile, supportato da una comunità globale.
  • È estendibile: puoi aggiungere migliaia di pacchetti specializzati (es. Bioconductor, ggplot2, dplyr, tidyverse).
  • È riproducibile: le analisi fatte in R possono essere documentate, salvate e ri-eseguite facilmente,facilitando la trasparenza scientifica.
  • È pensato per lavorare direttamente con dati tabellari, vettori, matrici e tabelle complesse (data frame).
  • Supporta anche grafici avanzati, interattivi e pubblicabili con qualità editoriale.R e RStudio Sebbene R possa essere usato direttamente tramite console, esiste un ambiente molto più comodo e potente: RStudio, un IDE (ambiente di sviluppo integrato) creato per facilitare l’uso di R, anche da parte di principianti. R è il motore È il linguaggio vero e proprio: interpreta il codice, esegue i comandi, gestisce calcoli, analisi, grafici. È come il motore di una macchina: potente, ma difficile da usare da solo. Quando installi R, ottieni solo una console molto semplice, con poche funzionalità visive. RStudio è l’interfaccia grafica È un ambiente di sviluppo integrato (IDE) pensato per facilitare l’uso di R. Organizza il lavoro in quattro pannelli: script, console, variabili, file/grafici/pacchetti. È come il cruscotto della macchina: ti permette di guidare in modo semplice e ordinato.

INTERFACCIA DI R

Questa immagine mostra l’interfaccia di base di R (detta RGui), composta da due finestre principali: A sinistra: la console di R, dove i comandi vengono eseguiti uno alla volta. In questo esempio ho assegnato x <- 2 e y <- 3, poi ho calcolato la somma z <- x

  • y e la stampa con cat(z). A destra: l’editor di script, dove si scrivono e salvano più righe di codice. Questo permette di scrivere un programma completo, salvarlo su file (con estensione .R) e riutilizzarlo facilmente. In genere: Si scrive il codice nello script (finestra di destra) Poi si clicca su “Esegui tutto” (oppure si usa il tasto Ctrl + R) per inviarlo alla console ed eseguirlo tutto insieme VANTAGGI DI RStudio Cliccando sul secondo link (altri link per altri sistemi operativi) si attiva automaticamente il download del software di installazione. Dopo aver eseguito l’installazione e avviato il software vi si aprirà una schermata come questa

FILES/PLOTS/PACKAGES/HELP/VIEWER (IN BASSO A DESTRA)

Questo pannello mostra

strumenti aggiuntivi:

filese: per navigare tra le

cartelle e file sul computer

plots: visualizza i grafici

prodotti con R

packages: consente di

gestire pacchetti istallati

help:offre documentazione

e guide integrate

viewer:visualizza pagine

web o documenti HTML

prodotti in R

I FILE GENERATE DA RStudio Quando si lavora in RStudio e si salva uno script, ci si può trovare con tre file nella cartella di lavoro

  • nomefile. R : È lo script vero e proprio. Contiene il codice che hai scritto. È un file di testo: puoi aprirlo con qualsiasi editor. È l’unico file da consegnare o conservare, ad esempio per un compito o progetto. -. Rhistory : contiene lo storico dei comandi eseguiti nalla console Rstudio lo usa per ricordare cosa hai fatto nella sessione. Può essere utile per ritrovare comandi provati a mano ma non è essenziale. Si può disattivare oppure ignorare. -. RData : contiene tutti gli oggetti della sessione di lavoro (variabili, vettori, funzioni...). Serve se vuoi salvare l’ambiente di lavoro per riprenderlo esattamente com’era. Quando riapri RStudio puoi ritrovare tutto com’era prima (se l’opzione è attiva LE LIBRERIE IN R R è un linguaggio molto potente, ma di base ha solo le funzioni essenziali. Per estenderne le funzionalità, si usano le librerie (chiamate anche pacchetti). Una libreria in R è un insieme di funzioni, dati e documentazione creato per svolgere compiti specifici:
  • Analisi statistiche avanzate.
  • Creazione di grafici.
  • Gestione di dati complessi.
  • Bioinformatica, machine learning, ecc. Esempi pratici:
  • Vuoi creare grafici complessi? Ti serve il pacchetto ggplot2.
  • Vuoi manipolare grandi tabelle di dati? Serve dplyr.
  • Lavori con dati genomici? Usi Bioconduct CRAN : IL REPOSITORY UFFICIALE DI R CRAN (Comprehensive R Archive Network) è il portale ufficiale da cui scaricare pacchetti. È come un grande “negozio” gratuito di librerie per R. Tutti i pacchetti vengono verificati prima di essere pubblicati su CRAN. Come installare una libreria da CRAN:
  • Una sola volta: installazione sul PC. Install.packages("dplyr")
  • Ad ogni sessione R: caricamento per usarla. Library(dplyr) Esempio: Vuoi usare funzioni per filtrare e ordinare tabelle? Ti serve dplyr:

install.packages("dplyr") # Installazione library(dplyr) # Caricamento

BIOCONDUCTOR: IL MONDO DELLA BIOINFORMATICA IN R

Bioconductor è un progetto separato da CRAN, specializzato in pacchetti per:

  • Genomica.
  • Bioinformatica.
  • Analisi di dati biologici complessi.
  • Visualizzazione di dati di espressione genica, ecc. Non si usa install.packages(), ma il pacchetto BiocManager.
  1. Installare BiocManager da CRAN: install.packages("BiocManager")
  2. Usare BiocManager per installare pacchetti da Bioconductor: BiocManager::install("GenomicFeatures")
  3. Caricare la libreria: library(GenomicFeatures BASI DEL LINGUAGGIO Le istruzioni (o comandi) in R possono essere eseguiti in due modi: Eseguendo l’istruzione nell’editor di testo + pulsante Run o INVIO (scelta consigliata) Digitando sul prompt dei comandi il comando desiderato (premendo INVIO per eseguirlo) COMMENTI IN R I commenti sono porzioni di testo scritte nel codice per spiegare cosa fa un’istruzione o un blocco di istruzioni, ma non vengono eseguite da R. Sono fondamentali per:
  • comprendere meglio il significato del codice (sia da parte nostra che di altri),
  • annotare passaggi complicati,
  • inserire appunti temporanei senza alterare il funzionamento del programma. In R, un commento inizia con il simbolo #. Tutto ciò che segue sulla stessa riga sarà ignorato dal programma. DIFFERENZA TRA CAT() E PRINT () cat():stampa semplice (per output leggibili)
  • Stampa testo in modo diretto e leggibile

VETTORE (vector) à è una sequenza ordinata di elementi tutti dello stesso tipo (numeri, stringhe, logivi..) MATRICE (matrix) à è una tabella bidimensionale di elementi tutti dello stesso tipo. Ha tighe e colonne ed è utile per operazioni algebriche strutturali. Puoi accedere agli elementi della matrice scrivendo m[elem1, elem2] #elemento riga 1, colonna 2 ARRAY (array) à Un array è simile a una matrice, ma può avere più di due dimensioni (es. 3D, 4D...). Utile per dati volumetrici, immagini, o dati temporali ripetuti. Questo crea 2 strati da 2x2 elementi ciascuno. Ogni "strato" è come una matrice, e dim() ti mostra le dimensioni. dim = c(2, 2, 2) significa:2 righe 2 colonne 2 strati (o "fogli" o "livelli" tridimensionali) DATA FRAME (data.frame) àIl data.frame è una delle strutture più usate in R, perché rappresenta una tabella di dati, simile a un foglio Excel o a un file CSV. Caratteristiche:

  • Ogni colonna può contenere un tipo diverso: numeri, stringhe, logici...
  • Ogni riga rappresenta un'osservazione o un'unità sperimentale.
  • Le colonne sono vettori della stessa lunghezza. LISTA (list) à Una lista è una collezione di oggetti di tipo diverso: numeri, stringhe, vettori, data frame, funzioni. È molto flessibile e viene usata quando i dati non sono omogenei. Gli elementi di una lista possono essere etichettati con nomi al momento della creazione. Per accedere a un elemento specifico della lista, si usa la notazione con il simbolo $, scrivendo: nomeLista$nomeElemento In alternativa, è anche possibile accedere agli elementi numericamente: dati[[posizione_elemento]] FATTORI (factor) à Il tipo factor viene utilizzato per rappresentare variabili categoriali, cioè grandezze che possono assumere un numero limitato e finito di valori, detti livelli (in inglese: levels). Sono usati spesso per:
  • codificare gruppi (es. "trattamento" vs "controllo"),
  • distinguere categorie (es. "maschio" / "femmina"),
  • rappresentare stati o risposte qualitative. RIEPILOGO
  1. Operatori Logici, utilizzati per combinare condizioni booleane.
  • Sequenza : Le istruzioni vengono eseguite una dopo l’altra, nell’ordine in cui sono scritte. È il comportamento "naturale" del codice, senza condizioni o ripetizioni.
  • Selezione (condizione): Consente di eseguire istruzioni diverse a seconda del verificarsi di una condizione. In R si usa il costrutto if , eventualmente con else e else if.
  • Iterazione (ripetizione): Serve per ripetere un blocco di istruzioni più volte, finché una condizione è vera o per ogni elemento di una sequenza. In R si usano i cicli while e for. IF- ELSE Il costrutto if-else consente di eseguire un blocco di istruzioni solo se una condizione è vera. Se la condizione non è soddisfatta viene eseguito un blocco alternativo. IF-ELSE IF ELSE Serve per gestire più condizioni alternative: si verifica la prima, poi eventualmente la seconda (else if) e infine si esegue il blocco else se nessuna è soddisfatta.

WHILE

Il ciclo while serve a ripetere un blocco di istruzioni finché una condizione è vera. La condizione viene controllata prima di ogni esecuzione del ciclo. FOR Il costrutto for permette di ripetere un blocco di istruzioni per un numero definito di volte, scorrendo una sequenza o un vettore di valori. Caratteristica for^ while Numero di iterazioni Fisso e noto in anticipo Variabile, dipende dalla condizione Come funziona Scorre su una sequenza di valori Continua finché la condizione è vera Sintassi for(i in sequenza) { ... } while(condizione) { ... } Quando usarlo Quando conosci quante volte ripetere Quando non sai quante volte servirà ripetere Esempio for(i in 1:5) print(i)^ i <- 1; while(i <= 5) { print(i); i <- i + 1 } FUNZIONI In R (come in molti altri linguaggi), una funzione è un insieme di istruzioni che svolgono un compito specifico. Possiamo pensarla come una “macchina” che prende qualcosa in ingresso, lo elabora, e restituisce un risultato. Le funzioni servono per:

  • organizzare il codice in blocchi riutilizzabili
  • semplificare i calcoli e le operazioni ripetitive
  • rendere i programmi più ordinati, comprensibili e facili da modificare. Per definire una funzione, si usa la parola chiave function , seguita da parentesi tonde con gli eventuali argomenti (input) e poi da un blocco di istruzioni racchiuso tra { }. nome_funzione <- function(argomento1, argomento2, ...) {

operazioni che deve eseguire la funzione

return(risultato) }