0
Introducción a LinuxTranscriptómica y Modelización de Proteínasempleando supercomputación León, 2 de Noviembre de 2011albe...
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  puede...
putty downloadhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
winscp downloadhttp://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...
Shells• La shell se ejecuta dentro de una terminal emitiendo un  "prompt“ y esperando a que le digan qué hacer.• Luego, el...
Para empezarAlgunos comandos para ir jugando:whoami – muestra el nombre del usuarioid – muestra la información sobre el us...
Manejo de ficheros
Listado del contenido de un              directorio con ls • Desde una shell los usuarios pueden utilizar el comando   pwd...
Nombres de directorios           especialesSimbolo   Significado   .      El actual directorio de trabajo  ..      El dire...
Caracteres ComodinesCaracter       Efecto               coincide con cero o más caracteres (a excepción      *            ...
Ejemplo de ComodinesPatrón        Genera la Lista*             todos los archivos en la lista*.html        page1.html page...
Listado de árboles de               directorios• El comando ls, cuando se da un directorio como  argumento, éste lista el ...
Cambio de sitio- El comando cd• Los Procesos pueden cambiar sus cwd cuando sea  necesario.• Esto incluye la shell de coman...
Creación de directorios         (nuevos, vacíos): mkdir• El comando para hacer un directorio nuevo es el  comando mkdir (d...
Borrar directorios (vacíos): rmdir• El comando para borrar un directorio es rmdir. (remover  directorio).• Uso:   – rmdir ...
Ver el contenido de un archivo             con cat• Aunque hay varios comandos disponibles para ver los  archivos, el coma...
El comando head• head [OPCIONES] [ARCHIVO...]• Algunas veces todo lo que se necesita al examinar un  archivo es ver las pr...
El comando tail• tail [OPCIONES] [ARCHIVO...]• Para complementar head, el comando tail muestra las  últimas 10 líneas de c...
Copiar archivos• Puede copiar archivos de un directorio a otro o de un  nombre a otro (renombrarlos) con el comando cp (co...
Permisos de usuario
Cambio de permisos de         archivos: chmod• El comando chmod se utiliza para modificar los permisos  de archivo• El pri...
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 comand...
Borrar archivos• Se pueden suprimir (eliminar, borrar) archivos con el  comando rm (remove).• Uso:   – rm [OPCIONES] {ARCH...
Copiar árboles de directorios• El comando cp puede ser usado para copiar arboles de  directorios completos con la opción: ...
Borrar árboles de directorios• Con la opción correcta, el comando rm puede borrar o  eliminar arboles de directorios compl...
Entrada estándar (stdin), salida estándar      (stdout), error standard (stderror)• Los programas de terminal suelen leer ...
Descriptores de Archivos • Como protocolo de Linux (y Unix), cada proceso hereda tres archivos   abiertos tras el inicio. ...
Redirección de stdin, stdout y       stderr en bash      sintaxis                          efecto cmd < file        Rediri...
Ejemploalabarga@genome2:~$ ls *.zzls: cannot access *.zz: No such file or directoryalabarga@genome2:~$ ls *.zz > zz.txtls:...
Búsquedas• find   – find -name "*pattern*" # searches for *pattern* in and below current     directory   – find /usr/local...
Búsquedas• locate   – locate "*.dat" –q   – -i, in case you wanted to perform a case insensitive search   – -c, instead of...
wget• Descarga recursos de modo recursivo, en ambiente no  interactivo de los protocolos HTTP, HTTPS y FTP.• Cuando se lla...
Tamaño• df      # disk space• free -g # memory info in Megabytes• du -sh     # disk space usage of current directory• du -...
Procesos
The ps command• El comando ps se utiliza comúnmente para enumerar los  procesos ejecutándose en un sistema.• El comando ps...
The ps command• ps        # Shows processes running by user  ps -e     # Shows all processes on system  ps ax –tree # Show...
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_filenam...
Vim: moving around• :# go to specified line number• $ # moves cursor to end of line• A # same as $, but switches to insert...
Vim: more commands• d$ # deletes from cursor to the end of the line• dd # deletes entire line• :s/old_pat/new_pat/ # repla...
Utilitarios de Compresión           Standard de Linux• zip/unzip (.zip)• gzip (.gz)   – el más versatil y más común utilit...
Archivadores de Archivos• El archivo contiene el directorio y sus archivos y  subdirectorios subyacentes, empaquetados com...
Comandos Básicos TarOpción           Efecto-c, --create     Crea un empaquetador de archivos-x, --extract    Extraer un em...
Opciones del comando tarOpción                     Efecto-C, --directory=DIR        Cambia al directorio DIR-P, --absolute...
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...
Tuberías• El flujo de stdout desde un proceso puede estar  conectado al flujo de stdin de otro proceso mediante lo  que Un...
Ordenando todo: sort• Conceptos clave  –   El comando sort clasifica datos en orden alfabético.  –   sort -n ordena numéri...
sort• # sort by 2nd field (lexicographic sort)• sort -k 2 arrayDat.txt• # sort by 2nd field (numeric sort)• sort -n -k 2 a...
El comando uniq• El programa uniq se utiliza para identificar, contar o  suprimir registros duplicados en la información  ...
El comando uniq# count how many unique rowsuniq arrayAnnot.txt | wc –l# count unique rows without considering the probe ID...
cut• cut imprime determinados campos de una tabla   # -d specifies column separator (tab is default),   # -f specifies col...
paste• Este comando “pega” las columnas de dos ficheros• # put each column in a separate tmp files cut -f 1  arrayAnnot.tx...
join• # join two files (use 1st field as key)• join arrayDat.txt arrayAnnot.txt• # probeID is the second field in the file...
Búsqueda de Texto: grep• Acrónimo de “general regular expression print”, grep es  un comando que imprime en pantalla línea...
grep: algunas opciones• grep -v imprime líneas NO coincidentes con una cadena  o patrón de texto.• grep –w busca el patrón...
grep• # print lines that match “chr”• grep chr arrayAnnot.txt• # print lines that match “chr” as a whole word• grep -w chr...
grep• # print how many lines match the pattern "orf"• grep -c orf arrayAnnot.txt• # preceed the matching line with the lin...
grep• # make a list with 5 gene symbols• cut -f 3 arrayAnnot.txt | head -n 5 > tmp• # use list "tmp" to match lines in arr...
sed: string replacement• Reemplazar:              sed –e „s/regex/replacement/‟• # substitute “chr” with “chromosome”• hea...
trTambié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 dato...
awk• Las formas alternativas incluyen:  BEGIN { acción }  Ejecuta las órdenes acción al comienzo de la ejecución, antes de...
awk• FILENAME es el fichero de entrada• record variable: $0 se refiere a la línea entera• field variables: $1 se refiere a...
awk$ awk –F”:” „{print $1 “ “ $3}‟ /etc/passwd     Awk  executable             Field           Separator                  ...
awk• # print 1st field only• awk {print $1} arrayDat.txt• # rearrange the fields, separated by a tab• awk {print $1, "t", ...
awk• # print first 5 records, excluding headers• awk NR > 1 && NR < 7 arrayDat.txt• # print the total number of records• a...
awk• # print the lines that match the string "orf"• awk /orf/ arrayAnnot.txt• # print the probe IDs whose annotation conta...
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• # pr...
sed/awksed /^>/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 read...
Ejercicio: archivos SAM• How many alignments are in the file?•   wc -l myfile.sam•   How many distinct sequences are in th...
Ejercicio: archivos SAM• How many reads have multiple hits?• cut -f 1 myfile.sam | sort | uniq -d | wc –l•   What chromoso...
Ejercicio: archivos SAM• Which are the most and least represented  chromosomes?• cut -f 3 myfile.sam | sort | uniq -c | so...
Ejercicio: archivos SAM• Put the first 10 identifier and reads into single, distinct  tab files.• cut -f 1,10 myfile.sam |...
Ejercicio: datos en tablas• En un experimento con microarrays, para cada gen  queremos la mayor intensidad media• Los arch...
Ejercicio: datos en tablas# compute the average intensity for each probeIDawk NR > 1 {s=0; n=NF-1; for (i=2; i<=NF; i++) s...
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 blast...
Parsing• grep -E (SP:|TR:) blast.output |      cut -f1 -d" " |      cut -d: -f2 |      xargs -I _PROT_      wget -O -     ...
Shell scripts
Shell ScriptsA shell script is a text file with a list of commandsinside. Shell scripts are good for automating tasksyou u...
More Shell ScriptsA more advanced shell script utilizing a loop:for num in 1 2 3do   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...
Introduction to linux for bioinformatics
Introduction to linux for bioinformatics
Introduction to linux for bioinformatics
Introduction to linux for bioinformatics
Upcoming SlideShare
Loading in...5
×

Introduction to linux for bioinformatics

1,546

Published on

Introduction to linux for bioinformatics

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,546
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Introduction to linux for bioinformatics"

  1. 1. Introducción a LinuxTranscriptómica y Modelización de Proteínasempleando supercomputación León, 2 de Noviembre de 2011alberto.labarga@scientifik.info
  2. 2. http://www.linkedin.com/in/albertolabarga
  3. 3. http://www.slideshare.net/alabarga
  4. 4. http://www.scientifik.info/ngs
  5. 5. GNU + Linux
  6. 6. 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.
  7. 7. putty downloadhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  8. 8. winscp downloadhttp://winscp.net/eng/docs/lang:es
  9. 9. Acceso a calendula
  10. 10. Acceso a calendula
  11. 11. Acceso a calendula
  12. 12. Acceso a calendula$ ssh -X <nombre_usuario>@calendula.fcsc.es -p 2222
  13. 13. 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
  14. 14. 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.
  15. 15. Para empezarAlgunos comandos para ir jugando:whoami – muestra el nombre del usuarioid – muestra la información sobre el usuariowho – muestra otros usuarios logueadosdate – fecha/hora del servidorcal – muestra el calendariohistory – muestra el historial de comandos
  16. 16. Manejo de ficheros
  17. 17. 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 -alalabarga@genome2:~$ pwd/home/alabargaalabarga@genome2:~$ ls101x GenomeStudio-Docs.zip4store GenomeStudio-Software-2009.2.exealignment.html gpuanalisisMicroarrays.tar igv papersTesisapache-solr-1.4.0.zip igv.log pmids.txtapache-tomcat-6.0.20 IGVTools pubby-0.3
  18. 18. Nombres de directorios especialesSimbolo Significado . El actual directorio de trabajo .. El directorio padre ~ El directorio home del usuario - El anterior directorio de trabajo / El directorio raíz
  19. 19. Caracteres ComodinesCaracter 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
  20. 20. Ejemplo de ComodinesPatrón Genera la Lista* todos los archivos en la lista*.html page1.html page2.htmlpage*.htm* page1.html page2.html page3.htm page40.htmimage?.* image1.jpeg image2.jpeg[ps]* page1.html page2.html page3.htm page40.htm script1.pl[^ps]* image1.jpeg image2.jpeg image10.jpeg image11.jpeg
  21. 21. 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.
  22. 22. 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.
  23. 23. 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.
  24. 24. 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.
  25. 25. 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
  26. 26. 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.
  27. 27. 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.
  28. 28. 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
  29. 29. Permisos de usuario
  30. 30. 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
  31. 31. Permisos• 000 = 0• 001 = 1• 010 = 2• 011 = 3• 100 = 4• 101 = 5• 110 = 6• 111 = 7
  32. 32. 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
  33. 33. Borrar archivos• Se pueden suprimir (eliminar, borrar) archivos con el comando rm (remove).• Uso: – rm [OPCIONES] {ARCHIVO...}• Examples: – rm /tmp/borrar.txt
  34. 34. 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
  35. 35. Borrar árboles de directorios• Con la opción correcta, el comando rm puede borrar o eliminar arboles de directorios completos. rm –R backup
  36. 36. 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).
  37. 37. 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ónStandard In 0 stdinStandard Out 1 stdoutStandard Error 2 stderr
  38. 38. 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
  39. 39. Ejemploalabarga@genome2:~$ ls *.zzls: cannot access *.zz: No such file or directoryalabarga@genome2:~$ ls *.zz > zz.txtls: cannot access *.zz: No such file or directoryalabarga@genome2:~$ cat zz.txtalabarga@genome2:~$ ls *.zz >& zz.txtalabarga@genome2:~$ cat zz.txtls: cannot access *.zz: No such file or directory
  40. 40. 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>
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. Procesos
  45. 45. 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
  46. 46. 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
  47. 47. top
  48. 48. Edición de ficheros de texto
  49. 49. Vim: control• vi my_file• i # INSERT MODE• R # replace MODE• ESC # NORMAL (NON-EDITING) MODE
  50. 50. 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, dont save• :q! # exits WITHOUT saving any changes you have made• :wq # save and quit
  51. 51. 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 (isnt displayed) then SHIFT-G # brings you to specified line#
  52. 52. 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
  53. 53. 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
  54. 54. 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.
  55. 55. Comandos Básicos TarOpció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
  56. 56. Opciones del comando tarOpció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
  57. 57. Manipulación de ficheros de texto
  58. 58. 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…]
  59. 59. 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.
  60. 60. 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
  61. 61. sort• # sort by 2nd field (lexicographic sort)• sort -k 2 arrayDat.txt• # sort by 2nd field (numeric sort)• sort -n -k 2 arrayDat.txt
  62. 62. 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
  63. 63. El comando uniq# count how many unique rowsuniq arrayAnnot.txt | wc –l# count unique rows without considering the probe IDuniq -f 1 arrayAnnot.txt | wc –l# report genes and count number of occurrencesuniq -f 1 -c arrayAnnot.txt# report list of unique genesuniq -f 1 -u arrayAnnot.txt
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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
  70. 70. 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
  71. 71. 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
  72. 72. 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„
  73. 73. trTambién podemos utilizar tr• echo HELLO | tr A-Z a-z
  74. 74. 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".
  75. 75. 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.
  76. 76. 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
  77. 77. 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
  78. 78. 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
  79. 79. 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
  80. 80. 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
  81. 81. 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
  82. 82. sed/awksed /^>/d F5R3.fasta | sort | uniq | awk {print ">SEQ"NR"n"$0 }
  83. 83. csplit# splits fasta batch file into many files# at >„ csplit -f out F5R3.fasta "%^>%" "/^>/" "{*}"
  84. 84. 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?
  85. 85. 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
  86. 86. 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
  87. 87. 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
  88. 88. 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
  89. 89. 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.
  90. 90. Ejercicio: datos en tablas# compute the average intensity for each probeIDawk 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 fieldsawk NR > 1 {print $1, "t", $NF} arrayAnnot.txt | sort > tmp2# annotate the average intensity values of each probeID with thegene symboljoin tmp1 tmp2 > tmp3# neglect probeID, then sort in reverse order with gene symbol askey, and finally grab unique rows ignoring the values.awk {print $2, "t", $3} tmp3 | sort -r -k 2 | uniq -f 1
  91. 91. Web Services
  92. 92. Webservices• wget http://www.uniprot.org/uniprot/P03973.fasta
  93. 93. 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
  94. 94. 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
  95. 95. Shell scripts
  96. 96. Shell ScriptsA shell script is a text file with a list of commandsinside. Shell scripts are good for automating tasksyou use often, or running batch jobs.Enter the following in a new file, script.sh:echo “Date and time is:”dateecho “Your current directory is:”pwdRun the script like this: sh script.sh
  97. 97. More Shell ScriptsA more advanced shell script utilizing a loop:for num in 1 2 3do echo “We are on $num…”done
  98. 98. Paso de parámetros#!/bin/sh# split fasta file into separate sequence files#if [ $# -gt 1 ] then seqfile="$1" destdir="$2“elseecho "Use: fsplit SEQFILE DESTDIR"echo "Splits fasta file SEQFILE into separate files in DESTDIR folder"exitfimkdir $2csplit -f $destdir/sequence $seqfile "%^>%" "/^>/" "{*}" -s
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×