SlideShare una empresa de Scribd logo
1 de 102
Descargar para leer sin conexión
Introducción a Linux
Transcriptómica y Modelización de Proteínas
empleando supercomputación León, 2 de Noviembre de 2011

alberto.labarga@scientifik.info
http://www.linkedin.com/in/albertolabarga
http://www.slideshare.net/alabarga
http://www.scientifik.info/ngs
GNU + Linux
Inicio de sesión en una máquina
        a través de la red
• Al utilizar la opción ssh ("secure shell"), los usuarios
  pueden iniciar una sesión fácilmente en máquinas
  remotas ya sea en el mismo lugar o al otro lado del
  mundo.
putty download

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
winscp download

http://winscp.net/eng/docs/lang:es
Acceso a calendula
Acceso a calendula
Acceso a calendula
Acceso a calendula
$ ssh -X <nombre_usuario>@calendula.fcsc.es -p 2222
Shells
• Los usuarios de Linux con frecuencia utilizan un tipo
  especial de programa llamado shell para interactuar con
  el kernel.
• Sistemas UNIX disponen de diferentes Shell: Bourne
  shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh),
  Bourne Again shell (bash).
• La más popular es la “bash” shell.
   – echo $SHELL
Shells
• La shell se ejecuta dentro de una terminal emitiendo un
  "prompt“ y esperando a que le digan qué hacer.
• Luego, el usuario le pide a la shell que ejecute un
  programa escribiendo el nombre del programa.
• La shell bash se puede utilizar de modo interactivo o
  como un lenguaje de escritura de gran alcance.
• La shell bash guarda el historial de las líneas de
  comando ejecutadas. La líneas de comando se pueden
  recuperar desde el historial.
Para empezar
Algunos comandos para ir jugando:

whoami – muestra el nombre del usuario
id – muestra la información sobre el usuario
who – muestra otros usuarios logueados
date – fecha/hora del servidor
cal – muestra el calendario
history – muestra el historial de comandos
Manejo de ficheros
Listado del contenido de un
              directorio con ls
 • Desde una shell los usuarios pueden utilizar el comando
   pwd para conocer donde se encuentran y ls para hacer
   un listado del contenido del directorio..ls -al

alabarga@genome2:~$ pwd
/home/alabarga
alabarga@genome2:~$ ls
101x                      GenomeStudio-Docs.zip
4store                    GenomeStudio-Software-2009.2.exe
alignment.html            gpu
analisisMicroarrays.tar   igv                                papersTesis
apache-solr-1.4.0.zip     igv.log                            pmids.txt
apache-tomcat-6.0.20      IGVTools                           pubby-0.3
Nombres de directorios
           especiales
Simbolo   Significado

   .      El actual directorio de trabajo

  ..      El directorio padre

  ~       El directorio home del usuario

   -      El anterior directorio de trabajo

   /      El directorio raíz
Caracteres Comodines

Caracter       Efecto
               coincide con cero o más caracteres (a excepción
      *
               del punto inicial)
               coincide exactamente con un caracter (a
      ?
               excepción del punto inicial)
               coincide exactamente con un caracter de la lista
    [...]
               o rango
               coincide exactamente con un caracter no incluido
    [^...]
               en la lista o rango
Ejemplo de Comodines
Patrón        Genera la Lista

*             todos los archivos en la lista

*.html        page1.html page2.html

page*.htm*    page1.html page2.html page3.htm page40.htm

image?.*      image1.jpeg image2.jpeg

[ps]*         page1.html page2.html page3.htm page40.htm script1.pl

[^ps]*        image1.jpeg image2.jpeg image10.jpeg image11.jpeg
Listado de árboles de
               directorios
• El comando ls, cuando se da un directorio como
  argumento, éste lista el contenido del directorio.
• Por defecto, el comando ls sólo mostrará el contenido
  del directorio del nivel más alto.
• Para que el comando ls liste los subdirectorios, puede
  añadir la opción -R.
Cambio de sitio- El comando cd
• Los Procesos pueden cambiar sus cwd cuando sea
  necesario.
• Esto incluye la shell de comando bash, la cual
  proporciona el comando cd (del ingleś change directory)
  para cambiar el directorio actual desde el intérprete de
  comandos.
Creación de directorios
         (nuevos, vacíos): mkdir
• El comando para hacer un directorio nuevo es el
  comando mkdir (del inglés make directory).
• Uso:
   – mkdir [OPCIONES] {DIRECTORIO...}
   – Crea el(los) DIRECTORIO(s) si no existe(n). Falla y emite un mensaje
     de error si uno o más de los DIRECTORIO(s) existen, pero los nuevos
     directorios restantes son aún creados.
Borrar directorios (vacíos): rmdir
• El comando para borrar un directorio es rmdir. (remover
  directorio).
• Uso:
   – rmdir [OPCIONES] {DIRECTORIO...}
   – Suprime el (los) DIRECTORIO(s) si están vacíos. Emite un mensaje de
     error si uno o más del (los) DIRECTORIO(s) no está(n) vacío(s), pero
     los directorios que quedan (vacíos) se borran. Tenga en cuenta que un
     directorio que contiene sólo un subdirectorio no se considera como
     vacío.
Ver el contenido de un archivo
             con cat
• Aunque hay varios comandos disponibles para ver los
  archivos, el comando más sencillo es cat.
• Cuando se le da una lista de archivos al comando cat
  este concatena los archivos a la salida del terminal.
• También podemos usar more y less
El comando head
• head [OPCIONES] [ARCHIVO...]
• Algunas veces todo lo que se necesita al examinar un
  archivo es ver las primeras líneas del archivo. El
  comando head nos permite hacer esto.
El comando tail
• tail [OPCIONES] [ARCHIVO...]
• Para complementar head, el comando tail muestra las
  últimas 10 líneas de cada FILE a la salida estándar.
• El comando tail tiene otra opción bastante útil: la opción
  -f (follow). Con esta opción tail mostrará las últimas
  líneas del archivo y luego "espera" y continua
  presentando cualquier nueva línea al ser añadida al
  archivo.
Copiar archivos
• Puede copiar archivos de un directorio a otro o de un
  nombre a otro (renombrarlos) con el comando cp (copy).

• Uso:
   – cp [OPCIONES] {FUENTE} {DESTINO}
   – cp [OPCIONES] {FUENTE...} {DIRECTORIO}
• Ejemplos:
   – cp saludo.txt hola.txt
   – cp hola.txt /tmp
Permisos de usuario
Cambio de permisos de
         archivos: chmod
• El comando chmod se utiliza para modificar los permisos
  de archivo
• El primer argumento para chmod usa una sintaxis
  [ugoa]+/-[rwx] para describir cómo deberían cambiarse
  los permisos.

   chmod a+w filename

• También puede ser una representación numérica

  chmod 775 filename
Permisos
•   000 = 0
•   001 = 1
•   010 = 2
•   011 = 3
•   100 = 4
•   101 = 5
•   110 = 6
•   111 = 7
Mover/renombrar archivos
• Puede mover archivos de un directorio a otro o de un
  nombre a otro (renombrarlos) con el comando mv
  (mover).
• Uso:
   – mv [OPCION...] {FUENTE} {DESTINO}
   – mv [OPCION...] {FUENTE...} {DIRECTORIO}
• Ejemplos:
   – mv saludo.txt borrar.txt
   – mv borrar.txt /tmp
Borrar archivos
• Se pueden suprimir (eliminar, borrar) archivos con el
  comando rm (remove).
• Uso:
   – rm [OPCIONES] {ARCHIVO...}
• Examples:
   – rm /tmp/borrar.txt
Copiar árboles de directorios
• El comando cp puede ser usado para copiar arboles de
  directorios completos con la opción: -r (recursivo).

  cp –R seq2011 backup
Borrar árboles de directorios
• Con la opción correcta, el comando rm puede borrar o
  eliminar arboles de directorios completos.

  rm –R backup
Entrada estándar (stdin), salida estándar
      (stdout), error standard (stderror)
• Los programas de terminal suelen leer información como
  un flujo desde una sola fuente tal como el teclado de
  una terminal (stdin)
• Generalmente, escriben información como un flujo a un
  solo destino como por ejemplo una pantalla (stdout)
• Generalmente, stdin y stdout están conectadas a la
  terminal que ejecuta el comando.
• Se considera conveniente redirigir (stdin) desde (stdout)
  hacia los archivos.
• Los programas Unix reportan condiciones de error a un
  destino llamado error estándar (stderr).
Descriptores de Archivos
 • Como protocolo de Linux (y Unix), cada proceso hereda tres archivos
   abiertos tras el inicio.
        – Primero, descriptor de archivo 0, es la entrada estándar.
        – Segundo, descriptor de archivo 1, es la salida estándar.
        – Tercero, descriptor de archivo 2, es el error estándar.


Flujo                               Descriptor               Abreviación


Standard In                              0                       stdin


Standard Out                             1                      stdout


Standard Error                           2                      stderr
Redirección de stdin, stdout y
       stderr en bash
      sintaxis                          efecto
 cmd < file        Redirigir stdin desde file
 cmd > file        Redirigir stdout a file. Reescribir si existe
 cmd >> file       Redirigir stdout a file. Agregar si existe
 cmd 2> file       Redirigir stderr a file. Reescribir si existe
 cmd 2>> file      Redirigir stderr a file. Agregar si existe
 cmd > file 2>&1   Combinar stdout y stderr a file
 cmd >& file       Combinar stdout y stderr a file
Ejemplo
alabarga@genome2:~$ ls *.zz
ls: cannot access *.zz: No such file or directory
alabarga@genome2:~$ ls *.zz > zz.txt
ls: cannot access *.zz: No such file or directory
alabarga@genome2:~$ cat zz.txt
alabarga@genome2:~$ ls *.zz >& zz.txt
alabarga@genome2:~$ cat zz.txt
ls: cannot access *.zz: No such file or directory
Búsquedas
• find
   – find -name "*pattern*" # searches for *pattern* in and below current
     directory
   – find /usr/local -name "*blast*" # finds file names *blast* in directory
   – find /usr/local -iname "*blast*" # same as above, but case insensitive
   – find . -mtime -1
   – find . -mtime -1 –ls
   – find / -size +10000k
• additional useful arguments: -user <user name>, -group
  <group name>, -ctime <number of days ago changed>
Búsquedas
• locate
   – locate "*.dat" –q
   – -i, in case you wanted to perform a case insensitive search
   – -c, instead of writing file names on standard output, write the number of
   matching entries only.



• which <application_name> # location of application
• whereis <application_name> # searches for executables
wget
• Descarga recursos de modo recursivo, en ambiente no
  interactivo de los protocolos HTTP, HTTPS y FTP.
• Cuando se llama con una URL como su argumento, el
  comando wget recupera el contenido de la URL y lo
  almacena en un archivo local en el directorio actual de
  trabajo del mismo nombre.



• wget -O -
  http://www.ebi.ac.uk/Tools/dbfetch/dbfetch
  /uniprot/P01174/fasta
Tamaño
• df      # disk space
• free -g # memory info in Megabytes

• du -sh     # disk space usage of current directory
• du -sh * # disk space usage of files/directories
• du -s * | sort -nr # shows disk space used by different
  directories/files sorted by size
Procesos
The ps command
• El comando ps se utiliza comúnmente para enumerar los
  procesos ejecutándose en un sistema.
• El comando ps, sin ningún argumento, muestra todos los
  procesos que se iniciaron desde una sola terminal.

          alabarga@genome2:~$ ps
           PID TTY     TIME CMD
          22047 pts/0 00:00:00 bash
          22472 pts/0 00:00:00 ps
The ps command
• ps        # Shows processes running by user
  ps -e     # Shows all processes on system
  ps ax –tree # Shows the child-parent hierarchy of all processes
  ps -o %t -p <pid> # Shows how long a particular process was
  running.



• ps <pid> | cat
• ps aux | grep <user_name> # Shows all processes of one user
top
Edición de ficheros
      de texto
Vim: control
• vi my_file

• i # INSERT MODE
• R # replace MODE
• ESC # NORMAL (NON-EDITING) MODE
vim
• : # commands start with ':'
• :w # save command; if you are in editing mode you have
  to hit ESC first!!
• :w new_filename # saves into new file
• :#,#w new_filename # saves specific lines (#,#) to new
  file
• :q # quit file, don't save
• :q! # exits WITHOUT saving any changes you have
  made
• :wq # save and quit
Vim: moving around
• :# go to specified line number
• $ # moves cursor to end of line
• A # same as $, but switches to insert mode
• 0 (zero) # moves cursor to beginning of line
• CTRL-g # shows at status line filename and the line you
  are on
• SHIFT-G # brings you to bottom of file, type line number
  (isn't displayed) then SHIFT-G # brings you to specified
  line#
Vim: more commands
• d$ # deletes from cursor to the end of the line
• dd # deletes entire line

• :s/old_pat/new_pat/ # replaces first occurrence in a line
• :s/old_pat/new_pat/g # replaces all occurrence in a line
• :%s/old_pat/new_pat/g # replaces all occurrence in file

• u # undo last command
Utilitarios de Compresión
           Standard de Linux
• zip/unzip (.zip)
• gzip (.gz)
   – el más versatil y más común utilitario de descompresión usado
• bzip2 (.bz)
   – produce la mas compacta compresión de archivos
   – más uso intesivo de CPU
• compress/uncompress (.Z)
   – No es usualmente instalado por defecto
Archivadores de Archivos
• El archivo contiene el directorio y sus archivos y
  subdirectorios subyacentes, empaquetados como un
  solo archivo.
• En Linux (y Unix), el comando más común para crear y
  extraer archivos es el comando tar.
• El archivo contiene el directorio y sus archivos y
  subdirectorios subyacentes, empaquetados como un
  solo archivo.
• A estos paquetes de archivos suele dárseles la
  extensión del nombre de archivo .tar.
Comandos Básicos Tar
Opción           Efecto


-c, --create     Crea un empaquetador de archivos


-x, --extract    Extraer un empaquetador de archivos


                 List el contenido de un empaquetador de
-t, --list
                 archivos
Opciones del comando tar
Opción                     Efecto

-C, --directory=DIR        Cambia al directorio DIR

-P, --absolute-reference   sin / inicial desde los nombres de archivos

-v, --verbose              Lista los archivos procesados

-Z, --compress             internally compress archive

-z, --gzip                 internamente gzip el archivo

-j, --bzip2                internamente bzip2 el archivo
Manipulación de ficheros
       de texto
Comando Word Count (wc)
  • El comando wc cuenta el numero de caracteres,
    palabras y lineas.
  • Tomará su entrada ya sea de archivos llamados en su
    línea de comandos o desde su entrada estándar.

wc [-c] [-l] [-w] [filename…]
Tuberías
• El flujo de stdout desde un proceso puede estar
  conectado al flujo de stdin de otro proceso mediante lo
  que Unix llama una "tubería".
• Varios de los comandos en Unix están diseñados para
  operar como un filtro, leer la entrada desde stdin y
  enviar la salida a stdout.
• bash usa "|" para crear una tubería entre dos
  comandos.
Ordenando todo: sort
• Conceptos clave
  –   El comando sort clasifica datos en orden alfabético.
  –   sort -n ordena numéricamente.
  –   sort -u clasifica y suprime duplicados.
  –   sort -k y -t clasifica en un campo específico.
  –   sort –r ordena a la inversa



   ls -s | sort -n
sort
• # sort by 2nd field (lexicographic sort)
• sort -k 2 arrayDat.txt

• # sort by 2nd field (numeric sort)
• sort -n -k 2 arrayDat.txt
El comando uniq
• El programa uniq se utiliza para identificar, contar o
  suprimir registros duplicados en la información
  clasificada.

   -c , número de ocurrencias
   -u sólo líneas únicas
   -d, solo aquellos duplicados
   -f n , evita los n primeros campos
   -s n, evita n caracteres
   -i, gnora mayúsculas o minúsculas
El comando uniq
# count how many unique rows
uniq arrayAnnot.txt | wc –l

# count unique rows without considering the probe ID
uniq -f 1 arrayAnnot.txt | wc –l

# report genes and count number of occurrences
uniq -f 1 -c arrayAnnot.txt

# report list of unique genes
uniq -f 1 -u arrayAnnot.txt
cut
• cut imprime determinados campos de una tabla
   # -d specifies column separator (tab is default),
   # -f specifies column numbers.


• cut -d: -f1,5 /etc/passwd
• cut -f 1 arrayDat.txt
paste
• Este comando “pega” las columnas de dos ficheros

• # put each column in a separate tmp files cut -f 1
  arrayAnnot.txt > tmp1
• cut -f 2 arrayAnnot.txt > tmp2
• cut -f 3 arrayAnnot.txt > tmp3

• # merge lines in a new column order
• paste tmp3 tmp1 tmp2 > arrayAnnotOrdered.txt
join
• # join two files (use 1st field as key)
• join arrayDat.txt arrayAnnot.txt

• # probeID is the second field in the file
• join -1 2 -2 1 arrayAnnotOrdered.txt arrayDat.txt

• # specify which field to output for each file
• join -1 2 -o '1.1 2.2 2.3 2.4 2.5' arrayAnnotOrdered.txt
  arrayDat.txt
Búsqueda de Texto: grep
• Acrónimo de “general regular expression print”, grep es
  un comando que imprime en pantalla líneas coincidentes
  con un patrón de una cadena de texto especificado.
• grep suele utilizarse como filtro para reducir salida a
  sólo lo deseado.
• Permite buscar múltiples patrones
grep: algunas opciones
• grep -v imprime líneas NO coincidentes con una cadena
  o patrón de texto.
• grep –w busca el patrón como palabra completa
• grep –i no distingue mayúsculas y minúsculas
• grep –c cuenta las líneas coincidentes
• grep –n añade el número de línea
• grep –f toma los patrones de un fichero
grep
• # print lines that match “chr”
• grep chr arrayAnnot.txt

• # print lines that match “chr” as a whole word
• grep -w chr arrayAnnot.txt

• # print lines that match “chromosome” as a whole word
• grep -w chromosome arrayAnnot.txt
grep
• # print how many lines match the pattern "orf"
• grep -c orf arrayAnnot.txt

• # preceed the matching line with the line number
• grep -n orf arrayAnnot.txt
grep
• # make a list with 5 gene symbols
• cut -f 3 arrayAnnot.txt | head -n 5 > tmp

• # use list "tmp" to match lines in arrayAnnot.txt
• grep -f tmp arrayAnnot.txt
sed: string replacement
• Reemplazar:              sed –e „s/regex/replacement/‟

• # substitute “chr” with “chromosome”
• head myfile.sam | sed s/chr/chromosome/g

• Borrar lineas 1-10:      sed -e '1,10d„
• Borrar comentarios:      sed -e '/^#/d„
• Borrar lineas en blanco: sed -e '/^$/d„
tr
También podemos utilizar tr

• echo HELLO | tr 'A-Z' 'a-z'
awk
• AWK es un lenguaje de programación diseñado
  para procesar datos basados en texto, ya sean
  ficheros o flujos de datos
• awk /patrón/ {acción} AWK mira a lo largo del
  fichero de entrada; cuando encuentra una línea
  que coincide con el "patrón", ejecuta la (s)
  órdenes (s) indicadas en "acción".
awk
• Las formas alternativas incluyen:
  BEGIN { acción }
  Ejecuta las órdenes acción al comienzo de la ejecución, antes de que los
  datos comiencen a ser procesados.
  END { acción }
  Similar a la forma previa pero ejecuta las órdenes acción después de que
  todos los datos sean procesados.
awk
• FILENAME es el fichero de entrada
• record variable: $0 se refiere a la línea entera
• field variables: $1 se refiere al primer campo, $2 al
  segundo, etc.
• NR es el número de línea
• NF es el número de campos de la línea
• FS es el separador de campos
awk
$ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd

     Awk
  executable


             Field
           Separator                    Action to
                                     perform on line
                                   If pattern matches


                        pattern
                       to search                          The file
                                                        to operate
                                                           upon
awk
• # print 1st field only
• awk '{print $1}' arrayDat.txt

• # rearrange the fields, separated by a tab
• awk '{print $1, "t", $3, "t", $2}' arrayDat.txt

• # print the number of fields for each record
• awk '{print NF}' arrayDat.txt

• # print the last field of each record
• awk '{print $NF}' arrayDat.txt
awk
• # print first 5 records, excluding headers
• awk 'NR > 1 && NR < 7' arrayDat.txt

• # print the total number of records
• awk 'END {print NR}' arrayDat.txt
awk
• # print the lines that match the string "orf"
• awk '/orf/' arrayAnnot.txt

• # print the probe IDs whose annotation contains "orf"
• awk '/orf/ {print $1}' arrayAnnot.txt
awk
• # print sum of values for each probe
• awk 'NR > 1 {s=0; for (i=2; i<=NF; i++) s=s+$i; print $1,
  s}' arrayDat.txt

• # print mean of values for each probe
• awk 'NR > 1 {s=0; n=NF-1; for (i=2; i<=NF; i ++) s=s+$i;
  s=s/n; print s}' arrayDat.txt
sed/awk
sed '/^>/d' F5R3.fasta | sort | uniq | awk '{print ">SEQ"NR"n"$0 }'
csplit
# splits fasta batch file into many files
# at '>„

       csplit -f out F5R3.fasta "%^>%" "/^>/" "{*}"
Ejercicio: archivos SAM
• How many alignments are in the file?
• How many distinct sequences are in the file?
• How many reads have multiple hits?
• What chromosomes are represented?
• How many reads map to each chromosome?
• Which are the most and least represented
  chromosomes?
• Do the reads have variable length?
Ejercicio: archivos SAM
• How many alignments are in the file?
•   wc -l myfile.sam


•   How many distinct sequences are in the file?
•   # which column has the sequence
•   head myfile.sam |cut -f10
•   # sort, uniq and count the sequence
•   cut -f 10 myfile.sam | sort | uniq | wc -l
Ejercicio: archivos SAM
• How many reads have multiple hits?
• cut -f 1 myfile.sam | sort | uniq -d | wc –l

•   What chromosomes are represented?
•   cut -f 3 myfile.sam | sort | uniq
•
•   How many reads map to each chromosome?
•   cut -f 3 myfile.sam | sort | uniq -c
Ejercicio: archivos SAM
• Which are the most and least represented
  chromosomes?
• cut -f 3 myfile.sam | sort | uniq -c | sort -n | tail -n 1
• cut -f 3 myfile.sam | sort | uniq -c | sort -n | head -n 1

• Do the reads have variable length?
• awk '{print length($10)}' myfile.sam | sort | uniq -c
• wc -l myfile.sam
Ejercicio: archivos SAM
• Put the first 10 identifier and reads into single, distinct
  tab files.
• cut -f 1,10 myfile.sam | head | split -l 1
• Remove the tab files created above
• rm xa?
• Verify that all reads have same length.
• awk '{print length($10)}' myfile.sam | sort | uniq
• Find how many reads are mapping to the negative
  strand.
• cut -f2 myfile.sam | grep -c 16
• cut -f2 myfile.sam | sort | uniq -c
Ejercicio: datos en tablas
• En un experimento con microarrays, para cada gen
  queremos la mayor intensidad media
• Los archivos que tenemos son:
   – arrayDat.txt: probeID and four sample intensity values.
   – arrayAnnot.txt: probeID, gene descriptions, gene symbols.
Ejercicio: datos en tablas
# compute the average intensity for each probeID
awk 'NR > 1 {s=0; n=NF-1; for (i=2; i<=NF; i++) s=s+$i; s = s/n;
print $1,"t",s}' arrayDat.txt | sort > tmp1

# select only probeID and geneSymbol fields
awk 'NR > 1 {print $1, "t", $NF}' arrayAnnot.txt | sort > tmp2

# annotate the average intensity values of each probeID with the
gene symbol
join tmp1 tmp2 > tmp3

# neglect probeID, then sort in reverse order with gene symbol as
key, and finally grab unique rows ignoring the values.
awk '{print $2, "t", $3}' tmp3 | sort -r -k 2 | uniq -f 1
Web Services
Webservices
• wget http://www.uniprot.org/uniprot/P03973.fasta
EBI Web Services
• http://www.ebi.ac.uk/Tools/webservices/

• java -Djava.ext.dirs=lib -jar NCBIBlast_JAXWS.jar
      -p blastp -D uniprotkb_swissprot --stype protein
      --email alberto.labarga@gmail.com
      --outformat out --outfile - P03973.fasta
Parsing
• grep -E '(SP:|TR:)' blast.output |
      cut -f1 -d" " |
      cut -d: -f2 |
      xargs -I _PROT_
      wget -O -
      http://www.uniprot.org/uniprot/_PROT_.fasta
      >> secuencias_recuperadas.txt
Shell scripts
Shell Scripts
A shell script is a text file with a list of commands
inside. Shell scripts are good for automating tasks
you use often, or running batch jobs.

Enter the following in a new file, script.sh:

echo “Date and time is:”
date
echo “Your current directory is:”
pwd

Run the script like this: sh script.sh
More Shell Scripts
A more advanced shell script utilizing a loop:

for num in 1 2 3
do
   echo “We are on $num…”
done
Paso de parámetros
#!/bin/sh
# split fasta file into separate sequence files
#
if [ $# -gt 1 ] then
  seqfile="$1"
  destdir="$2“
else
echo "Use: fsplit SEQFILE DESTDIR"
echo "Splits fasta file SEQFILE into separate files in DESTDIR
    folder"
exit
fi
mkdir $2
csplit -f $destdir/sequence $seqfile "%^>%" "/^>/" "{*}" -s

Más contenido relacionado

La actualidad más candente

SQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredSQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredDanish Mehraj
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Julicamargo
 
Unix And Shell Scripting
Unix And Shell ScriptingUnix And Shell Scripting
Unix And Shell ScriptingJaibeer Malik
 
Paradigmas de Bases de Datos
Paradigmas de Bases de DatosParadigmas de Bases de Datos
Paradigmas de Bases de Datosjazzme
 
Introduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLIntroduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLHarmony Kwawu
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVAinnovalabcun
 
Cisco router command configuration overview
Cisco router command configuration overviewCisco router command configuration overview
Cisco router command configuration overview3Anetwork com
 
Cisco CCNA v5 Lab
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Labant09_sain
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del routeryoes1053
 
Cisco 2960 basic configuration – vlan configuration
Cisco 2960 basic configuration – vlan configurationCisco 2960 basic configuration – vlan configuration
Cisco 2960 basic configuration – vlan configuration3Anetwork com
 
Using Custom Post Types and Advanced Custom Fields with Elementor
 Using Custom Post Types and Advanced Custom Fields with Elementor Using Custom Post Types and Advanced Custom Fields with Elementor
Using Custom Post Types and Advanced Custom Fields with ElementorAngela Bowman
 

La actualidad más candente (20)

SQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics CoveredSQL Complete Tutorial. All Topics Covered
SQL Complete Tutorial. All Topics Covered
 
DNS
DNSDNS
DNS
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
Unix And Shell Scripting
Unix And Shell ScriptingUnix And Shell Scripting
Unix And Shell Scripting
 
Paradigmas de Bases de Datos
Paradigmas de Bases de DatosParadigmas de Bases de Datos
Paradigmas de Bases de Datos
 
Introduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLIntroduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQL
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
SQL Constraints
SQL ConstraintsSQL Constraints
SQL Constraints
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Comandos fedora
Comandos fedoraComandos fedora
Comandos fedora
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Cisco router command configuration overview
Cisco router command configuration overviewCisco router command configuration overview
Cisco router command configuration overview
 
Cisco CCNA v5 Lab
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Lab
 
Codigo html
Codigo htmlCodigo html
Codigo html
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del router
 
SQL for ETL Testing
SQL for ETL TestingSQL for ETL Testing
SQL for ETL Testing
 
Cisco 2960 basic configuration – vlan configuration
Cisco 2960 basic configuration – vlan configurationCisco 2960 basic configuration – vlan configuration
Cisco 2960 basic configuration – vlan configuration
 
Using Custom Post Types and Advanced Custom Fields with Elementor
 Using Custom Post Types and Advanced Custom Fields with Elementor Using Custom Post Types and Advanced Custom Fields with Elementor
Using Custom Post Types and Advanced Custom Fields with Elementor
 
SQL report
SQL reportSQL report
SQL report
 

Destacado

Retos de la Bioinformatica
Retos de la BioinformaticaRetos de la Bioinformatica
Retos de la BioinformaticaAlberto Labarga
 
Linkatu presentation at Souther Europe Tech Tour 2011
Linkatu presentation at Souther Europe Tech Tour 2011Linkatu presentation at Souther Europe Tech Tour 2011
Linkatu presentation at Souther Europe Tech Tour 2011Alberto Labarga
 
Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Alberto Labarga
 
Genome visualization challenges
Genome visualization challengesGenome visualization challenges
Genome visualization challengesAlberto Labarga
 
Textmining activities at BioHackathon 2010
Textmining activities at BioHackathon 2010Textmining activities at BioHackathon 2010
Textmining activities at BioHackathon 2010Alberto Labarga
 
Introducción a la web semántica - Linkatu - irekia 2012
Introducción a la web semántica - Linkatu - irekia 2012Introducción a la web semántica - Linkatu - irekia 2012
Introducción a la web semántica - Linkatu - irekia 2012Alberto Labarga
 
Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Alberto Labarga
 
Entrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoEntrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoAlberto Labarga
 
Arduino: Control de motores
Arduino: Control de motoresArduino: Control de motores
Arduino: Control de motoresAlberto Labarga
 
SocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaSocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaAlberto Labarga
 
Hacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetHacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetAlberto Labarga
 
hacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligentehacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligenteAlberto Labarga
 
Acto Central Same 2009 En Granada
Acto Central Same 2009 En GranadaActo Central Same 2009 En Granada
Acto Central Same 2009 En GranadaAlberto Labarga
 
Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Alberto Labarga
 
My presentation at BioHackathon 2010
My presentation at BioHackathon  2010My presentation at BioHackathon  2010
My presentation at BioHackathon 2010Alberto Labarga
 
Genotype by environment interactions gx e and climate change
Genotype by environment interactions gx e and climate changeGenotype by environment interactions gx e and climate change
Genotype by environment interactions gx e and climate changeAlberto Labarga
 

Destacado (20)

myHealthHackmedicine
myHealthHackmedicinemyHealthHackmedicine
myHealthHackmedicine
 
Retos de la Bioinformatica
Retos de la BioinformaticaRetos de la Bioinformatica
Retos de la Bioinformatica
 
Linkatu presentation at Souther Europe Tech Tour 2011
Linkatu presentation at Souther Europe Tech Tour 2011Linkatu presentation at Souther Europe Tech Tour 2011
Linkatu presentation at Souther Europe Tech Tour 2011
 
Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015Vidas Contadas :: Visualizar 2015
Vidas Contadas :: Visualizar 2015
 
jpd5 big data
jpd5 big datajpd5 big data
jpd5 big data
 
Genome visualization challenges
Genome visualization challengesGenome visualization challenges
Genome visualization challenges
 
Textmining activities at BioHackathon 2010
Textmining activities at BioHackathon 2010Textmining activities at BioHackathon 2010
Textmining activities at BioHackathon 2010
 
Introducción a la web semántica - Linkatu - irekia 2012
Introducción a la web semántica - Linkatu - irekia 2012Introducción a la web semántica - Linkatu - irekia 2012
Introducción a la web semántica - Linkatu - irekia 2012
 
Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014Presentación Laboratorio de Fabricación Digital UPNA 2014
Presentación Laboratorio de Fabricación Digital UPNA 2014
 
Entrada/salida analógica con Arduino
Entrada/salida analógica con ArduinoEntrada/salida analógica con Arduino
Entrada/salida analógica con Arduino
 
Arduino: Control de motores
Arduino: Control de motoresArduino: Control de motores
Arduino: Control de motores
 
SocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativaSocialLearning: descubriendo contenidos educativos de manera colaborativa
SocialLearning: descubriendo contenidos educativos de manera colaborativa
 
Hacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin StreetHacksanfermin 2015 :: Dropcoin Street
Hacksanfermin 2015 :: Dropcoin Street
 
hacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligentehacksanfermin 2015 :: Parking inteligente
hacksanfermin 2015 :: Parking inteligente
 
Acto Central Same 2009 En Granada
Acto Central Same 2009 En GranadaActo Central Same 2009 En Granada
Acto Central Same 2009 En Granada
 
Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9Periodismo de datos y visualización de datos abiertos #siglibre9
Periodismo de datos y visualización de datos abiertos #siglibre9
 
My presentation at BioHackathon 2010
My presentation at BioHackathon  2010My presentation at BioHackathon  2010
My presentation at BioHackathon 2010
 
Linked data in industry
Linked data in industryLinked data in industry
Linked data in industry
 
Genotype by environment interactions gx e and climate change
Genotype by environment interactions gx e and climate changeGenotype by environment interactions gx e and climate change
Genotype by environment interactions gx e and climate change
 
Big Data y Salud
Big Data y SaludBig Data y Salud
Big Data y Salud
 

Similar a Introduction to linux for bioinformatics

Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformaticscursoNGS
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubunturobertoiglesias
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonEmerson Gonzalez IF04 T I
 
Curso GNU/Linux
Curso GNU/LinuxCurso GNU/Linux
Curso GNU/Linuxcorchero83
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXJose Pla
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De LinuxUsa
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberiasJavier Muñoz
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhatmmartinv
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Enrique Villafuerte
 

Similar a Introduction to linux for bioinformatics (20)

Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformatics
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Unix 1314 test
Unix 1314 testUnix 1314 test
Unix 1314 test
 
Intro comandos unix
Intro comandos   unixIntro comandos   unix
Intro comandos unix
 
Mis comandos favoritos en linux parte 2
Mis comandos favoritos en linux parte 2Mis comandos favoritos en linux parte 2
Mis comandos favoritos en linux parte 2
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emerson
 
Curso GNU/Linux
Curso GNU/LinuxCurso GNU/Linux
Curso GNU/Linux
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUX
 
Comandos Basicos De Linux
Comandos Basicos De LinuxComandos Basicos De Linux
Comandos Basicos De Linux
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberias
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhat
 
Investigcxion
InvestigcxionInvestigcxion
Investigcxion
 
Comandos basicos en linux
Comandos basicos en linuxComandos basicos en linux
Comandos basicos en linux
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Cli unix2
Cli unix2Cli unix2
Cli unix2
 

Más de Alberto Labarga

El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017Alberto Labarga
 
Shokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanShokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanAlberto Labarga
 
Práctica con Arduino: Simon Dice
Práctica con Arduino: Simon DicePráctica con Arduino: Simon Dice
Práctica con Arduino: Simon DiceAlberto Labarga
 
Entrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoEntrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoAlberto Labarga
 
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Alberto Labarga
 
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...Alberto Labarga
 
Introducción a la impresión 3D
Introducción a la impresión 3DIntroducción a la impresión 3D
Introducción a la impresión 3DAlberto Labarga
 
La vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiLa vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiAlberto Labarga
 
Arduino: Programando el Simon dice
Arduino: Programando el Simon diceArduino: Programando el Simon dice
Arduino: Programando el Simon diceAlberto Labarga
 
Arduino: entrada/salida analógica
Arduino: entrada/salida analógicaArduino: entrada/salida analógica
Arduino: entrada/salida analógicaAlberto Labarga
 
Arduino: Entrada/Salida digital
Arduino: Entrada/Salida digitalArduino: Entrada/Salida digital
Arduino: Entrada/Salida digitalAlberto Labarga
 
Circuitos básicos con Arduino
Circuitos básicos con ArduinoCircuitos básicos con Arduino
Circuitos básicos con ArduinoAlberto Labarga
 
Programacion basica en Arduino
Programacion basica en ArduinoProgramacion basica en Arduino
Programacion basica en ArduinoAlberto Labarga
 
Dnow :: Live blogging project at #editorslab Madrid
Dnow :: Live blogging project at #editorslab MadridDnow :: Live blogging project at #editorslab Madrid
Dnow :: Live blogging project at #editorslab MadridAlberto Labarga
 

Más de Alberto Labarga (18)

El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017El Salto Communities - EditorsLab 2017
El Salto Communities - EditorsLab 2017
 
Shokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob DylanShokesu - Premio Nobel de Literatura a Bob Dylan
Shokesu - Premio Nobel de Literatura a Bob Dylan
 
Práctica con Arduino: Simon Dice
Práctica con Arduino: Simon DicePráctica con Arduino: Simon Dice
Práctica con Arduino: Simon Dice
 
Entrada/Salida digital con Arduino
Entrada/Salida digital con ArduinoEntrada/Salida digital con Arduino
Entrada/Salida digital con Arduino
 
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
Conceptos de electrónica - Laboratorio de Fabricación Digital UPNA 2014
 
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
Introducción a la plataforma Arduino - Laboratorio de Fabricación Digital UPN...
 
Introducción a la impresión 3D
Introducción a la impresión 3DIntroducción a la impresión 3D
Introducción a la impresión 3D
 
Vidas Contadas
Vidas ContadasVidas Contadas
Vidas Contadas
 
La vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi SuzukiLa vida y trabajo de Shinichi Suzuki
La vida y trabajo de Shinichi Suzuki
 
Arduino: Programando el Simon dice
Arduino: Programando el Simon diceArduino: Programando el Simon dice
Arduino: Programando el Simon dice
 
Arduino: entrada/salida analógica
Arduino: entrada/salida analógicaArduino: entrada/salida analógica
Arduino: entrada/salida analógica
 
Arduino: Entrada/Salida digital
Arduino: Entrada/Salida digitalArduino: Entrada/Salida digital
Arduino: Entrada/Salida digital
 
1 arduino
1 arduino1 arduino
1 arduino
 
0 makers
0 makers0 makers
0 makers
 
Circuitos básicos con Arduino
Circuitos básicos con ArduinoCircuitos básicos con Arduino
Circuitos básicos con Arduino
 
Ohmios y voltios
Ohmios y voltiosOhmios y voltios
Ohmios y voltios
 
Programacion basica en Arduino
Programacion basica en ArduinoProgramacion basica en Arduino
Programacion basica en Arduino
 
Dnow :: Live blogging project at #editorslab Madrid
Dnow :: Live blogging project at #editorslab MadridDnow :: Live blogging project at #editorslab Madrid
Dnow :: Live blogging project at #editorslab Madrid
 

Último

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Último (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Introduction to linux for bioinformatics

  • 1. Introducción a Linux Transcriptómica y Modelización de Proteínas empleando supercomputación León, 2 de Noviembre de 2011 alberto.labarga@scientifik.info
  • 6.
  • 7.
  • 8. Inicio de sesión en una máquina a través de la red • Al utilizar la opción ssh ("secure shell"), los usuarios pueden iniciar una sesión fácilmente en máquinas remotas ya sea en el mismo lugar o al otro lado del mundo.
  • 10.
  • 12.
  • 16. Acceso a calendula $ ssh -X <nombre_usuario>@calendula.fcsc.es -p 2222
  • 17. Shells • Los usuarios de Linux con frecuencia utilizan un tipo especial de programa llamado shell para interactuar con el kernel. • Sistemas UNIX disponen de diferentes Shell: Bourne shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh), Bourne Again shell (bash). • La más popular es la “bash” shell. – echo $SHELL
  • 18. Shells • La shell se ejecuta dentro de una terminal emitiendo un "prompt“ y esperando a que le digan qué hacer. • Luego, el usuario le pide a la shell que ejecute un programa escribiendo el nombre del programa. • La shell bash se puede utilizar de modo interactivo o como un lenguaje de escritura de gran alcance. • La shell bash guarda el historial de las líneas de comando ejecutadas. La líneas de comando se pueden recuperar desde el historial.
  • 19. Para empezar Algunos comandos para ir jugando: whoami – muestra el nombre del usuario id – muestra la información sobre el usuario who – muestra otros usuarios logueados date – fecha/hora del servidor cal – muestra el calendario history – muestra el historial de comandos
  • 21. Listado del contenido de un directorio con ls • Desde una shell los usuarios pueden utilizar el comando pwd para conocer donde se encuentran y ls para hacer un listado del contenido del directorio..ls -al alabarga@genome2:~$ pwd /home/alabarga alabarga@genome2:~$ ls 101x GenomeStudio-Docs.zip 4store GenomeStudio-Software-2009.2.exe alignment.html gpu analisisMicroarrays.tar igv papersTesis apache-solr-1.4.0.zip igv.log pmids.txt apache-tomcat-6.0.20 IGVTools pubby-0.3
  • 22. Nombres de directorios especiales Simbolo Significado . El actual directorio de trabajo .. El directorio padre ~ El directorio home del usuario - El anterior directorio de trabajo / El directorio raíz
  • 23. Caracteres Comodines Caracter Efecto coincide con cero o más caracteres (a excepción * del punto inicial) coincide exactamente con un caracter (a ? excepción del punto inicial) coincide exactamente con un caracter de la lista [...] o rango coincide exactamente con un caracter no incluido [^...] en la lista o rango
  • 24. Ejemplo de Comodines Patrón Genera la Lista * todos los archivos en la lista *.html page1.html page2.html page*.htm* page1.html page2.html page3.htm page40.htm image?.* image1.jpeg image2.jpeg [ps]* page1.html page2.html page3.htm page40.htm script1.pl [^ps]* image1.jpeg image2.jpeg image10.jpeg image11.jpeg
  • 25. Listado de árboles de directorios • El comando ls, cuando se da un directorio como argumento, éste lista el contenido del directorio. • Por defecto, el comando ls sólo mostrará el contenido del directorio del nivel más alto. • Para que el comando ls liste los subdirectorios, puede añadir la opción -R.
  • 26. Cambio de sitio- El comando cd • Los Procesos pueden cambiar sus cwd cuando sea necesario. • Esto incluye la shell de comando bash, la cual proporciona el comando cd (del ingleś change directory) para cambiar el directorio actual desde el intérprete de comandos.
  • 27. Creación de directorios (nuevos, vacíos): mkdir • El comando para hacer un directorio nuevo es el comando mkdir (del inglés make directory). • Uso: – mkdir [OPCIONES] {DIRECTORIO...} – Crea el(los) DIRECTORIO(s) si no existe(n). Falla y emite un mensaje de error si uno o más de los DIRECTORIO(s) existen, pero los nuevos directorios restantes son aún creados.
  • 28. Borrar directorios (vacíos): rmdir • El comando para borrar un directorio es rmdir. (remover directorio). • Uso: – rmdir [OPCIONES] {DIRECTORIO...} – Suprime el (los) DIRECTORIO(s) si están vacíos. Emite un mensaje de error si uno o más del (los) DIRECTORIO(s) no está(n) vacío(s), pero los directorios que quedan (vacíos) se borran. Tenga en cuenta que un directorio que contiene sólo un subdirectorio no se considera como vacío.
  • 29. Ver el contenido de un archivo con cat • Aunque hay varios comandos disponibles para ver los archivos, el comando más sencillo es cat. • Cuando se le da una lista de archivos al comando cat este concatena los archivos a la salida del terminal. • También podemos usar more y less
  • 30. El comando head • head [OPCIONES] [ARCHIVO...] • Algunas veces todo lo que se necesita al examinar un archivo es ver las primeras líneas del archivo. El comando head nos permite hacer esto.
  • 31. El comando tail • tail [OPCIONES] [ARCHIVO...] • Para complementar head, el comando tail muestra las últimas 10 líneas de cada FILE a la salida estándar. • El comando tail tiene otra opción bastante útil: la opción -f (follow). Con esta opción tail mostrará las últimas líneas del archivo y luego "espera" y continua presentando cualquier nueva línea al ser añadida al archivo.
  • 32. Copiar archivos • Puede copiar archivos de un directorio a otro o de un nombre a otro (renombrarlos) con el comando cp (copy). • Uso: – cp [OPCIONES] {FUENTE} {DESTINO} – cp [OPCIONES] {FUENTE...} {DIRECTORIO} • Ejemplos: – cp saludo.txt hola.txt – cp hola.txt /tmp
  • 34. Cambio de permisos de archivos: chmod • El comando chmod se utiliza para modificar los permisos de archivo • El primer argumento para chmod usa una sintaxis [ugoa]+/-[rwx] para describir cómo deberían cambiarse los permisos. chmod a+w filename • También puede ser una representación numérica chmod 775 filename
  • 35. Permisos • 000 = 0 • 001 = 1 • 010 = 2 • 011 = 3 • 100 = 4 • 101 = 5 • 110 = 6 • 111 = 7
  • 36. Mover/renombrar archivos • Puede mover archivos de un directorio a otro o de un nombre a otro (renombrarlos) con el comando mv (mover). • Uso: – mv [OPCION...] {FUENTE} {DESTINO} – mv [OPCION...] {FUENTE...} {DIRECTORIO} • Ejemplos: – mv saludo.txt borrar.txt – mv borrar.txt /tmp
  • 37. Borrar archivos • Se pueden suprimir (eliminar, borrar) archivos con el comando rm (remove). • Uso: – rm [OPCIONES] {ARCHIVO...} • Examples: – rm /tmp/borrar.txt
  • 38. Copiar árboles de directorios • El comando cp puede ser usado para copiar arboles de directorios completos con la opción: -r (recursivo). cp –R seq2011 backup
  • 39. Borrar árboles de directorios • Con la opción correcta, el comando rm puede borrar o eliminar arboles de directorios completos. rm –R backup
  • 40. Entrada estándar (stdin), salida estándar (stdout), error standard (stderror) • Los programas de terminal suelen leer información como un flujo desde una sola fuente tal como el teclado de una terminal (stdin) • Generalmente, escriben información como un flujo a un solo destino como por ejemplo una pantalla (stdout) • Generalmente, stdin y stdout están conectadas a la terminal que ejecuta el comando. • Se considera conveniente redirigir (stdin) desde (stdout) hacia los archivos. • Los programas Unix reportan condiciones de error a un destino llamado error estándar (stderr).
  • 41. Descriptores de Archivos • Como protocolo de Linux (y Unix), cada proceso hereda tres archivos abiertos tras el inicio. – Primero, descriptor de archivo 0, es la entrada estándar. – Segundo, descriptor de archivo 1, es la salida estándar. – Tercero, descriptor de archivo 2, es el error estándar. Flujo Descriptor Abreviación Standard In 0 stdin Standard Out 1 stdout Standard Error 2 stderr
  • 42. Redirección de stdin, stdout y stderr en bash sintaxis efecto cmd < file Redirigir stdin desde file cmd > file Redirigir stdout a file. Reescribir si existe cmd >> file Redirigir stdout a file. Agregar si existe cmd 2> file Redirigir stderr a file. Reescribir si existe cmd 2>> file Redirigir stderr a file. Agregar si existe cmd > file 2>&1 Combinar stdout y stderr a file cmd >& file Combinar stdout y stderr a file
  • 43. Ejemplo alabarga@genome2:~$ ls *.zz ls: cannot access *.zz: No such file or directory alabarga@genome2:~$ ls *.zz > zz.txt ls: cannot access *.zz: No such file or directory alabarga@genome2:~$ cat zz.txt alabarga@genome2:~$ ls *.zz >& zz.txt alabarga@genome2:~$ cat zz.txt ls: cannot access *.zz: No such file or directory
  • 44. Búsquedas • find – find -name "*pattern*" # searches for *pattern* in and below current directory – find /usr/local -name "*blast*" # finds file names *blast* in directory – find /usr/local -iname "*blast*" # same as above, but case insensitive – find . -mtime -1 – find . -mtime -1 –ls – find / -size +10000k • additional useful arguments: -user <user name>, -group <group name>, -ctime <number of days ago changed>
  • 45. Búsquedas • locate – locate "*.dat" –q – -i, in case you wanted to perform a case insensitive search – -c, instead of writing file names on standard output, write the number of matching entries only. • which <application_name> # location of application • whereis <application_name> # searches for executables
  • 46. wget • Descarga recursos de modo recursivo, en ambiente no interactivo de los protocolos HTTP, HTTPS y FTP. • Cuando se llama con una URL como su argumento, el comando wget recupera el contenido de la URL y lo almacena en un archivo local en el directorio actual de trabajo del mismo nombre. • wget -O - http://www.ebi.ac.uk/Tools/dbfetch/dbfetch /uniprot/P01174/fasta
  • 47. Tamaño • df # disk space • free -g # memory info in Megabytes • du -sh # disk space usage of current directory • du -sh * # disk space usage of files/directories • du -s * | sort -nr # shows disk space used by different directories/files sorted by size
  • 49. The ps command • El comando ps se utiliza comúnmente para enumerar los procesos ejecutándose en un sistema. • El comando ps, sin ningún argumento, muestra todos los procesos que se iniciaron desde una sola terminal. alabarga@genome2:~$ ps PID TTY TIME CMD 22047 pts/0 00:00:00 bash 22472 pts/0 00:00:00 ps
  • 50. The ps command • ps # Shows processes running by user ps -e # Shows all processes on system ps ax –tree # Shows the child-parent hierarchy of all processes ps -o %t -p <pid> # Shows how long a particular process was running. • ps <pid> | cat • ps aux | grep <user_name> # Shows all processes of one user
  • 51. top
  • 53. Vim: control • vi my_file • i # INSERT MODE • R # replace MODE • ESC # NORMAL (NON-EDITING) MODE
  • 54. vim • : # commands start with ':' • :w # save command; if you are in editing mode you have to hit ESC first!! • :w new_filename # saves into new file • :#,#w new_filename # saves specific lines (#,#) to new file • :q # quit file, don't save • :q! # exits WITHOUT saving any changes you have made • :wq # save and quit
  • 55. Vim: moving around • :# go to specified line number • $ # moves cursor to end of line • A # same as $, but switches to insert mode • 0 (zero) # moves cursor to beginning of line • CTRL-g # shows at status line filename and the line you are on • SHIFT-G # brings you to bottom of file, type line number (isn't displayed) then SHIFT-G # brings you to specified line#
  • 56. Vim: more commands • d$ # deletes from cursor to the end of the line • dd # deletes entire line • :s/old_pat/new_pat/ # replaces first occurrence in a line • :s/old_pat/new_pat/g # replaces all occurrence in a line • :%s/old_pat/new_pat/g # replaces all occurrence in file • u # undo last command
  • 57. Utilitarios de Compresión Standard de Linux • zip/unzip (.zip) • gzip (.gz) – el más versatil y más común utilitario de descompresión usado • bzip2 (.bz) – produce la mas compacta compresión de archivos – más uso intesivo de CPU • compress/uncompress (.Z) – No es usualmente instalado por defecto
  • 58. Archivadores de Archivos • El archivo contiene el directorio y sus archivos y subdirectorios subyacentes, empaquetados como un solo archivo. • En Linux (y Unix), el comando más común para crear y extraer archivos es el comando tar. • El archivo contiene el directorio y sus archivos y subdirectorios subyacentes, empaquetados como un solo archivo. • A estos paquetes de archivos suele dárseles la extensión del nombre de archivo .tar.
  • 59. Comandos Básicos Tar Opción Efecto -c, --create Crea un empaquetador de archivos -x, --extract Extraer un empaquetador de archivos List el contenido de un empaquetador de -t, --list archivos
  • 60. Opciones del comando tar Opción Efecto -C, --directory=DIR Cambia al directorio DIR -P, --absolute-reference sin / inicial desde los nombres de archivos -v, --verbose Lista los archivos procesados -Z, --compress internally compress archive -z, --gzip internamente gzip el archivo -j, --bzip2 internamente bzip2 el archivo
  • 62. Comando Word Count (wc) • El comando wc cuenta el numero de caracteres, palabras y lineas. • Tomará su entrada ya sea de archivos llamados en su línea de comandos o desde su entrada estándar. wc [-c] [-l] [-w] [filename…]
  • 63. Tuberías • El flujo de stdout desde un proceso puede estar conectado al flujo de stdin de otro proceso mediante lo que Unix llama una "tubería". • Varios de los comandos en Unix están diseñados para operar como un filtro, leer la entrada desde stdin y enviar la salida a stdout. • bash usa "|" para crear una tubería entre dos comandos.
  • 64. Ordenando todo: sort • Conceptos clave – El comando sort clasifica datos en orden alfabético. – sort -n ordena numéricamente. – sort -u clasifica y suprime duplicados. – sort -k y -t clasifica en un campo específico. – sort –r ordena a la inversa ls -s | sort -n
  • 65. sort • # sort by 2nd field (lexicographic sort) • sort -k 2 arrayDat.txt • # sort by 2nd field (numeric sort) • sort -n -k 2 arrayDat.txt
  • 66. El comando uniq • El programa uniq se utiliza para identificar, contar o suprimir registros duplicados en la información clasificada. -c , número de ocurrencias -u sólo líneas únicas -d, solo aquellos duplicados -f n , evita los n primeros campos -s n, evita n caracteres -i, gnora mayúsculas o minúsculas
  • 67. El comando uniq # count how many unique rows uniq arrayAnnot.txt | wc –l # count unique rows without considering the probe ID uniq -f 1 arrayAnnot.txt | wc –l # report genes and count number of occurrences uniq -f 1 -c arrayAnnot.txt # report list of unique genes uniq -f 1 -u arrayAnnot.txt
  • 68. cut • cut imprime determinados campos de una tabla # -d specifies column separator (tab is default), # -f specifies column numbers. • cut -d: -f1,5 /etc/passwd • cut -f 1 arrayDat.txt
  • 69. paste • Este comando “pega” las columnas de dos ficheros • # put each column in a separate tmp files cut -f 1 arrayAnnot.txt > tmp1 • cut -f 2 arrayAnnot.txt > tmp2 • cut -f 3 arrayAnnot.txt > tmp3 • # merge lines in a new column order • paste tmp3 tmp1 tmp2 > arrayAnnotOrdered.txt
  • 70. join • # join two files (use 1st field as key) • join arrayDat.txt arrayAnnot.txt • # probeID is the second field in the file • join -1 2 -2 1 arrayAnnotOrdered.txt arrayDat.txt • # specify which field to output for each file • join -1 2 -o '1.1 2.2 2.3 2.4 2.5' arrayAnnotOrdered.txt arrayDat.txt
  • 71. Búsqueda de Texto: grep • Acrónimo de “general regular expression print”, grep es un comando que imprime en pantalla líneas coincidentes con un patrón de una cadena de texto especificado. • grep suele utilizarse como filtro para reducir salida a sólo lo deseado. • Permite buscar múltiples patrones
  • 72. grep: algunas opciones • grep -v imprime líneas NO coincidentes con una cadena o patrón de texto. • grep –w busca el patrón como palabra completa • grep –i no distingue mayúsculas y minúsculas • grep –c cuenta las líneas coincidentes • grep –n añade el número de línea • grep –f toma los patrones de un fichero
  • 73. grep • # print lines that match “chr” • grep chr arrayAnnot.txt • # print lines that match “chr” as a whole word • grep -w chr arrayAnnot.txt • # print lines that match “chromosome” as a whole word • grep -w chromosome arrayAnnot.txt
  • 74. grep • # print how many lines match the pattern "orf" • grep -c orf arrayAnnot.txt • # preceed the matching line with the line number • grep -n orf arrayAnnot.txt
  • 75. grep • # make a list with 5 gene symbols • cut -f 3 arrayAnnot.txt | head -n 5 > tmp • # use list "tmp" to match lines in arrayAnnot.txt • grep -f tmp arrayAnnot.txt
  • 76. sed: string replacement • Reemplazar: sed –e „s/regex/replacement/‟ • # substitute “chr” with “chromosome” • head myfile.sam | sed s/chr/chromosome/g • Borrar lineas 1-10: sed -e '1,10d„ • Borrar comentarios: sed -e '/^#/d„ • Borrar lineas en blanco: sed -e '/^$/d„
  • 77. tr También podemos utilizar tr • echo HELLO | tr 'A-Z' 'a-z'
  • 78. awk • AWK es un lenguaje de programación diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos • awk /patrón/ {acción} AWK mira a lo largo del fichero de entrada; cuando encuentra una línea que coincide con el "patrón", ejecuta la (s) órdenes (s) indicadas en "acción".
  • 79. awk • Las formas alternativas incluyen: BEGIN { acción } Ejecuta las órdenes acción al comienzo de la ejecución, antes de que los datos comiencen a ser procesados. END { acción } Similar a la forma previa pero ejecuta las órdenes acción después de que todos los datos sean procesados.
  • 80. awk • FILENAME es el fichero de entrada • record variable: $0 se refiere a la línea entera • field variables: $1 se refiere al primer campo, $2 al segundo, etc. • NR es el número de línea • NF es el número de campos de la línea • FS es el separador de campos
  • 81. awk $ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd Awk executable Field Separator Action to perform on line If pattern matches pattern to search The file to operate upon
  • 82. awk • # print 1st field only • awk '{print $1}' arrayDat.txt • # rearrange the fields, separated by a tab • awk '{print $1, "t", $3, "t", $2}' arrayDat.txt • # print the number of fields for each record • awk '{print NF}' arrayDat.txt • # print the last field of each record • awk '{print $NF}' arrayDat.txt
  • 83. awk • # print first 5 records, excluding headers • awk 'NR > 1 && NR < 7' arrayDat.txt • # print the total number of records • awk 'END {print NR}' arrayDat.txt
  • 84. awk • # print the lines that match the string "orf" • awk '/orf/' arrayAnnot.txt • # print the probe IDs whose annotation contains "orf" • awk '/orf/ {print $1}' arrayAnnot.txt
  • 85. awk • # print sum of values for each probe • awk 'NR > 1 {s=0; for (i=2; i<=NF; i++) s=s+$i; print $1, s}' arrayDat.txt • # print mean of values for each probe • awk 'NR > 1 {s=0; n=NF-1; for (i=2; i<=NF; i ++) s=s+$i; s=s/n; print s}' arrayDat.txt
  • 86. sed/awk sed '/^>/d' F5R3.fasta | sort | uniq | awk '{print ">SEQ"NR"n"$0 }'
  • 87. csplit # splits fasta batch file into many files # at '>„ csplit -f out F5R3.fasta "%^>%" "/^>/" "{*}"
  • 88. Ejercicio: archivos SAM • How many alignments are in the file? • How many distinct sequences are in the file? • How many reads have multiple hits? • What chromosomes are represented? • How many reads map to each chromosome? • Which are the most and least represented chromosomes? • Do the reads have variable length?
  • 89. Ejercicio: archivos SAM • How many alignments are in the file? • wc -l myfile.sam • How many distinct sequences are in the file? • # which column has the sequence • head myfile.sam |cut -f10 • # sort, uniq and count the sequence • cut -f 10 myfile.sam | sort | uniq | wc -l
  • 90. Ejercicio: archivos SAM • How many reads have multiple hits? • cut -f 1 myfile.sam | sort | uniq -d | wc –l • What chromosomes are represented? • cut -f 3 myfile.sam | sort | uniq • • How many reads map to each chromosome? • cut -f 3 myfile.sam | sort | uniq -c
  • 91. Ejercicio: archivos SAM • Which are the most and least represented chromosomes? • cut -f 3 myfile.sam | sort | uniq -c | sort -n | tail -n 1 • cut -f 3 myfile.sam | sort | uniq -c | sort -n | head -n 1 • Do the reads have variable length? • awk '{print length($10)}' myfile.sam | sort | uniq -c • wc -l myfile.sam
  • 92. Ejercicio: archivos SAM • Put the first 10 identifier and reads into single, distinct tab files. • cut -f 1,10 myfile.sam | head | split -l 1 • Remove the tab files created above • rm xa? • Verify that all reads have same length. • awk '{print length($10)}' myfile.sam | sort | uniq • Find how many reads are mapping to the negative strand. • cut -f2 myfile.sam | grep -c 16 • cut -f2 myfile.sam | sort | uniq -c
  • 93. Ejercicio: datos en tablas • En un experimento con microarrays, para cada gen queremos la mayor intensidad media • Los archivos que tenemos son: – arrayDat.txt: probeID and four sample intensity values. – arrayAnnot.txt: probeID, gene descriptions, gene symbols.
  • 94. Ejercicio: datos en tablas # compute the average intensity for each probeID awk 'NR > 1 {s=0; n=NF-1; for (i=2; i<=NF; i++) s=s+$i; s = s/n; print $1,"t",s}' arrayDat.txt | sort > tmp1 # select only probeID and geneSymbol fields awk 'NR > 1 {print $1, "t", $NF}' arrayAnnot.txt | sort > tmp2 # annotate the average intensity values of each probeID with the gene symbol join tmp1 tmp2 > tmp3 # neglect probeID, then sort in reverse order with gene symbol as key, and finally grab unique rows ignoring the values. awk '{print $2, "t", $3}' tmp3 | sort -r -k 2 | uniq -f 1
  • 97. EBI Web Services • http://www.ebi.ac.uk/Tools/webservices/ • java -Djava.ext.dirs=lib -jar NCBIBlast_JAXWS.jar -p blastp -D uniprotkb_swissprot --stype protein --email alberto.labarga@gmail.com --outformat out --outfile - P03973.fasta
  • 98. Parsing • grep -E '(SP:|TR:)' blast.output | cut -f1 -d" " | cut -d: -f2 | xargs -I _PROT_ wget -O - http://www.uniprot.org/uniprot/_PROT_.fasta >> secuencias_recuperadas.txt
  • 100. Shell Scripts A shell script is a text file with a list of commands inside. Shell scripts are good for automating tasks you use often, or running batch jobs. Enter the following in a new file, script.sh: echo “Date and time is:” date echo “Your current directory is:” pwd Run the script like this: sh script.sh
  • 101. More Shell Scripts A more advanced shell script utilizing a loop: for num in 1 2 3 do echo “We are on $num…” done
  • 102. Paso de parámetros #!/bin/sh # split fasta file into separate sequence files # if [ $# -gt 1 ] then seqfile="$1" destdir="$2“ else echo "Use: fsplit SEQFILE DESTDIR" echo "Splits fasta file SEQFILE into separate files in DESTDIR folder" exit fi mkdir $2 csplit -f $destdir/sequence $seqfile "%^>%" "/^>/" "{*}" -s