Ejercicios Linux

ANTES DE EMPEZAR

Por favor, lee atentamente las instrucciones. Para continuar con estos ejercicios nos conectaremos a un servidor Linux preparado por el Equipo Docente. Deberías haber recibido un usuario y una contraseña para poder acceder junto con unas instrucciones. Si no es así, por favor ponte en contacto con el Equipo Docente.

Servidor de docencia: alu.ugr.es  – puerto: 2212

 

Pero… si yo no tengo Linux ¿cómo voy a seguir el curso?

El equipo docente ha preparado un servidor Linux en el que tendréis acceso a todo el software que se necesita para este curso. Aunque tuvieras instalado un sistema Linux, igualmente tendrías que conectarte (instrucciones).

 

Objetivo del ejercicio: 

Descargar una secuencia y analizarla mediante el programa blast de forma local

Objetivo de aprendizaje: 

Familiarización con el uso de la terminal. Aprender a lanzar un programa por línea de comando.

Material

Secuencia 1 ; sequence2

Pasos que debemos aprender antes:

  • Acceder a un servidor Linux
  • Copiar y mover ficheros entre ordenadores y dentro del servidor
  • Visualizar y editar el contenido de un fichero
  • Crear y eliminar carpetas
  • Lanzar programas y redirigir la salida

Como norma general, la mayoría de usuarios están acostumbrados a manejar un ordenador de forma gráfica, esto es: usando el ratón y pinchando en los distintos iconos que aparecen en un escritorio y mediante ventanas. Sin embargo hay muchas funciones más a las que se pueden acceder mediante el uso de la terminal o líneas de comando. En concreto, los servidores no suelen tener una interfaz gráfica disponible para sus usuarios por lo que en nuestro caso se hace indispensable interactuar con el ordenador de este modo.

CONCEPTOS CLAVE

+Ruta o PATH: es la localización única que tiene un fichero o un directorio (carpeta) en el ordenador. Igual que en un entorno visual, los distintos ficheros y carpetas están dentro de otras carpetas. Para separarlos se usa el símbolo / Dentro de la terminal, a la izquierda, suele aparecer la ruta o path en el que el usuario se encuentra en ese momento

 

+Comandos: Puesto que no podemos “pinchar” para abrir, copiar, mover o interactuar con los ficheros o carpetas, tendremos que usar comandos. Un comando es una “orden” que se le da al ordenador para que haga algo. Por ejemplo podemos pedirle la hora al sistema escribiendo date y pulsando Enter. Cada vez que introduzcamos un comando debemos pulsar Enter para “enviar” la orden. A continuación vamos a ver un ejemplo sencillo de comandos que podemos usar.

Movernos a un directorio

Cada usuario cuenta con una carpeta propia en el directorio /home/. Así, un usuario con nombre pepe , tendría una carpeta con la ruta /home/pepe. Normalmente, al iniciar sesión nos encontraremos directamente en esta carpeta. Para movernos a otra carpeta podemos hacer:

cd [nombre_de_la_carpeta_destino]

Crear una carpeta

Como de momento nuestro directorio está vacío, vamos a crear una carpeta para posteriormente acceder:

mkdir carpeta_de_prueba
cd carpeta_de_prueba

Ahora estamos dentro de la nueva carpeta que hemos creado. Prueba un poco este comando, puedes hacer otra carpeta en el interior o una con otro nombre. Para volver a nuestra carpeta personal podemos usar simplemente el comando cd sin añadir nada más:

cd

Ahora volvemos a estar en nuestra carpeta personal.

Ver los contenidos de un directorio

Mediante el comando ls, mostraremos los contenidos de un directorio. Si creamos carpetas dentro también aparecerán. Por ejemplo para ver qué hay en nuestro directorio:

cd
ls
mkdir prueba2
ls

Podemos ver cómo aparecen las carpetas que hemos creado

Rutas absolutas/rutas relativas

Podemos referirnos a cada fichero o carpeta usando rutas relativas (relativas al directorio en el que nos encontramos) o absolutas. Por ejemplo, si nos encontramos en nuestra carpeta, podremos crear un directorio en su interior usando la ruta absoluta o relativa:

mkdir prueba3
mkdir /home/pepe/prueba4

*reemplaza pepe por tu nombre de usuario

Esta misma lógica se aplica a todos los comandos.

Encadenar dos (o más) comandos

Hasta ahora hemos ido mostrando cómo lanzar comandos uno a uno pero se pueden lanzar de forma sucesiva más de uno separándolos con ;

mkdir prueba;cd prueba

Podemos volver a la carpeta personal usando el comando cd

Descargar un fichero de internet

En muchas ocasiones nos será de utilidad descargar un fichero disponible públicamente en internet a través de un enlace. Vamos a ver un ejemplo de cómo podríamos descargar la secuencia de este ejercicio usando el comando wget:

mkdir ejercicio_linux
cd ejercicio_linux
wget -c https://bioinfo2.ugr.es/biocomputacion/wp-content/uploads/2017/09/sequence_blast_cmd.txt
ls

Y ya tenemos la secuencia descargada. Ahora echemos un ojo al contenido.

Visualizar el contenido de un fichero

more 'nombre del fichero'
less 'nombre del fichero'

less ejercicio_linux/sequence_blast_cmd.txt

Con less podemos abrir un fichero e ir bajando usando la flecha hacia abajo y para salir pulsamos Q. Podemos ver que se trata de un fichero fasta.

Extra: Investiga el uso de los comandos head y tail también para visualización de ficheros.

Cambiar el nombre a un fichero

con el comando mv podemos tanto mover un fichero como renombrarlo

mv 'nombre_old' 'nombre_new'

Copiar un fichero

cp origen destino

Usar BLAST en local

Ver la ayuda . Usar una pipe ( |)

blastn -help | more

Ejecutar blast

blastp -query sequence_blast_cmd.txt -db nt -remote -out nuc.out

#Comprueba la ruta desde la que lanzas y en la que está el fichero

Algunos trabajos pueden tardar bastante (por ejemplo este caso). Si la conexión se pierde entre la ejecución de un comando y su final, el comando lanzado se detendrá. Para evitar esto podemos usar el comando nohup.

nohup blastp -query sequence_blast_cmd.txt -db nt -remote -out nuc.out &

Al lanzar el comando de esta manera no se interrumpirá si se pierde la conexión. El resultado del comando no lo veremos por pantalla sino que se guardará en un archivo (por defecto nohup.out).

Subir ficheros al servidor desde el ordenador:

Hasta ahora hemos visto cómo podíamos descargar ficheros de internet pero también es posible subir ficheros desde nuestro ordenador. Aunque existen muchas alternativas, vamos a explicar el uso del programa FileZilla, disponible para los 3 sistemas operativos. Visita la página, descarga la versión oportuna e instálalo https://filezilla-project.org/download.php.

Puedes seguir este tutorial https://wiki.filezilla-project.org/FileZilla_Client_Tutorial_(es). Recuerda los datos que usaste con PuTTY para acceder al servidor:

 Hostname: alu.ugr.es
 Username: [suministrado por el Equipo Docente]
 Password: [suministrado por el Equipo Docente]
 Port: 2212

FileZilla también te permite crear directorios y ficheros en un entorno gráfico (sin usar la línea de comando) y directamente en el servidor.

Tanto PuTTY como FileZilla dependen de una conexión estable a internet. Tanto por fallos de conexión como por inactividad, el servidor puede interrumpir la conexión con nuestro ordenador. En ese caso simplemente vuelve a realizar los pasos anteriores para volver a conectarte. Recomendamos almacenar estos datos en los propios programas para evitar tener que repetirlos cada vez que entremos.

* Ejercicios para practicar:

Sube un fichero desde tu ordenador a tu carpeta personal. Crea una carpeta nueva y mete el fichero dentro. Cambia el nombre de la carpeta.

Haz otra carpeta nueva. Copia la carpeta anterior dentro. Sigue experimentando con los comandos aprendidos.

Cuando acabes usa el comando rm (con cuidado!!) para borrar aquello que ya no consideres útil.