ACCESSO REMOTO AL SERVER SIBILLA
Attraverso Internet è possibile accedere al server “sibilla.cribi.unipd.it”. Potrete così effettuare
delle prove di SQL, HTML e Perl direttamente da casa prima dell’esame o anche completare le
esercitazioni
Tramite una
connessione criptata
(SSH) è possibile
avere sul proprio
computer (sia in
ambiente UNIX, sia
in ambiente
WINDOWS) un
terminale per
lavorare su
sibilla.cribi.unipd.it
anche da casa.
Sul terminale è
sufficiente digitare
la propria login e
password
BIOINFO3 - Lezione 32
1
ACCESSO REMOTO CON SSH
Da LINUX è sufficiente usare il comando ssh:
Per windows potete utilizzare questi due programmi:
WinSCP: permette di copiare files dal client al server e viceversa
Putty: ssh
Potete scaricarli al seguente indirizzo:
http://www.jfitz.com/tips/ssh_for_windows.html
BIOINFO3 - Lezione 32
2
PUTTY
3
2
1
Il più semplice è
“putty”,
molto
piccolo (300k) e
quindi rapido da
scaricare, è già
pronto per essere
eseguito
(putty.exe)
da
windows.
4
BIOINFO3 - Lezione 32
3
WinSCP
BIOINFO3 - Lezione 32
4
BIOINFO3 - Lezione 32
5
SOTTOPROBLEMI
Con questa lezione concludiamo la panoramica sul Perl. Abbiamo visto
insieme gli strumenti necessari per scrivere dei programmi in grado di
risolvere problemi bioinformatici.
Oggi vedremo come Perl permetta l’esecuzione di subroutine e di altri
programmi. Vi avevo già accennato che l’approccio utilizzato comunemente
per scrivere un programma che deve risolvere un problema è quello di
spezzare il problema in sottoproblemi più semplici e tentare di risolvere questi
ultimi singolarmente (approccio top-down).
sottoproblema1
sottoproblema2
sottoproblema3
problema
BIOINFO3 - Lezione 32
problema
6
PROGRAMMI ESTERNI
Può capitare (quasi sempre…) che un sottoproblema che ci interessa risolvere
sia già stato risolto da altri con la scrittura di un programma. Ad esempio il
problema della ricerca delle sequenze più simili ad una sequenza query
presenti in un database di sequenze è già stato abbondantemente studiato e
risolto e numerosi programmi sono a disposizione per questo scopo. Ove
possibile si tenterà perciò sempre di utilizzare i programmi già esistenti e il
nostro programma risolverà quindi tali sottoproblemi semplicemente
chiedendo l’esecuzione di un programma “esterno” già bell’e pronto.
sottoproblema1
sottoproblema2
programma
esterno
sottoproblema3
programma
Problema della riusabilità del software: cercare di scrivere dei programmi che
siano facilmente riutilizzabili da altre persone o anche per altri problemi
BIOINFO3 - Lezione 32
7
SUBROUTINE
Un’altra possibilità è quella di riuscire a risolvere più sottoproblemi con una
stessa “porzione” di codice (con lo stesso pezzetto di programma). In questo
caso non avrebbe senso riscrivere più volte le stesse istruzioni ed infatti queste
vengono scritte una volta sola, definendo una SUBROUTINE, che potrà poi
essere eseguita ogni qualvolta sia necessario nel programma
sottoproblema1
sottoproblema2
sottoproblema3
subroutine
programma
BIOINFO3 - Lezione 32
8
SUBROUTINE
La differenza tra chiamata di subroutine e chiamata di programmi esterni
consiste nel fatto che le subroutine sono generalmente scritte nello stesso
linguaggio e nello stesso file in cui è scritto il resto del programma. Sono,
anche fisicamente, una parte vera e propria del programma.
In realtà è possibile avere delle subroutine in altri file e addirittura in altri
linguaggi (ad esempio in assembler per eseguire in modo molto veloce
determinate operazioni “time-consuming”). Quando però il programma viene
compilato allora il programma principale e le subroutine sono comunque
raggruppate assieme e vanno a formare un unico file eseguibile. Al momento
dell’esecuzione avremo quindi l’esecuzione di un unico programma.
Può essere molto utile usare delle subroutine anche per evidenziare meglio i
vari sottoproblemi dedicando ad esempio una subroutine per ciascuno di essi.
In questo caso le subroutine saranno eseguite solamente una volta ciascuna,
ma daranno immediatamente l’idea delle parti che compongono il
programma.
BIOINFO3 - Lezione 32
9
PROGRAMMI ESTERNI
Nel caso di un programma esterno, invece, verrà eseguito sia il nostro
programma, sia tutti quelli esterni, richiesti dal nostro. Ogni programma
esterno sarà eseguito da un nuovo processo di sistema operativo, diverso da
quello che sta eseguendo il nostro programma.
A seconda delle modalità di attivazione potremo avere che mentre il
programma esterno è in esecuzione, il nostro programma venga
momentaneamente interrotto, oppure che essi siano contemporaneamente in
esecuzione (“in parallelo”).
Anche le modalità di acquisizione dei risultati prodotti dal programma esterno
possono essere variabili. I risultati potrebbero essere restituiti al programma
chiamante direttamente in una stringa (e in tal caso il programma chiamante
dovrà sicuramente essere interrotto e ripartirà solo quando il programma
esterno è stato interamente eseguito). Oppure i risultati potrebbero essere
salvati in un file, che poi il programma si preoccuperà di utilizzare
BIOINFO3 - Lezione 32
10
RICAPITOLANDO…
Da un programma possiamo chiamare sia subroutine sia programmi esterni
Chiamata di subroutine
Chiamata di programma esterno
Chiamata di subroutine
subroutine
Programma esterno
Programma
BIOINFO3 - Lezione 32
11
Scarica

bioinfo3