UNIX es una familia de sistemas operativos (OS) desarrollado en 1960. Tal vez los OSs mas famosos son Ubuntu, Linux y MacOS. En bioinformatica, bash (i.e., "bourne Again Shell") o la shell (i.e., terminal, o el traductor entre las operaciones que el computador hace y las instrucciones en lenguaje "humano") de UNIX es un lenguaje bastante usado ya que contiene una serie de programas basicos pero poderosos para manejar archivos de texto (e.g., secuencias fasta, fastq, genomas, etc). Adicionalmente, muchos programas en bioinformatica estan mas disponibles para ambientes UNIX que otras plataformas (e.g. DOS de Microsoft... urgh!).
La sintaxis de UNIX en la terminal es muy facil. En cualquier momento que en la terminal aparezca "$" o "%", es porque la terminal esta lista para recibir instrucciones. Basicamente:
$programa opcion1 opcion2 input > output
Las opciones en UNIX son usualmente parametros (en ingles flags) que permiten modificar el comportamiento usual/default de un programa. Estas usualmente se especifican con un "-", Por ejemplo:
ls
vs ls -lrt
- Cual es la diferencia entre ambos comandos?
Aquí una breve lista de programas basicos de UNIX que utilizaremos con mucha frequencia:
"Change directory" se usa para cambiar de una carpeta/directorio a otro. Por ejemplo:
cd
Para subir una carpeta arriba, usar. Adicionalmente, cd acpeta una direccion de directorio completa, p.ej /home/usr/etc:
cd ..
cd /home/usr/etc
Crea nuevas carpetas.
mkdir carpetanueva
Varias carpetas se pueden crear de manera simultanea, p.ej.:
mkdir carpeta1 carpeta2 carpeta3
Directorios completos se pueden crear con la opcion -p, así:
mkdir -p /home/usr/foo/bla/
Carpetas se pueden tambien crear en subdirectorios ya existentes, usando una direccion ya existente. Por ejemplo, crear 'bioinf' en '/home/usr/foo/bla/':
mkdir /home/usr/foo/bla/bioinf
Muestra el directorio en el que uno se encuentra
pwd
Hace un listado de los archivos o carpetas presentes en un directorio. ls
tiene muchas opciones... Por ejemplo, la opcion -l
presenta una lista detallada de los archivos/carpetas, mostrando info como tamaño exacto de los archivos, propietario, acceso, y fecha de modificacion.
ls
ls -l
Se usa para visualizar archivos "no binarios", e.g.:
- Ver archivos de texto en la terminal
- Combinar archivos de texto
cat archivo.txt
cat archivo1.txt archivo2.txt
cat archivo1.txt archivo2.txt > archivocombinado.txt
cat < archivo1.txt > archivo2.txt
Se usa para navigar archivos "no binarios", e.g.:
less input.txt
Por ejempo, less
puede ser utilizado para dar una mirada rapida a un archivo fastq, asi (archivo disponible en el tutorial, primero descomprimir usando gunzip
):
cat /directorio/personal/Taller-Oxford-Nanopore-Dec-2022/NGSdat/Cinchona_PAD61320_sizeSelect_1Kseq_99.fastq
Este programa busca patrones de texto, incluyendo expresiones regulares.
grep opcion1 opcion2 input
Por ejemplo, podemos buscar el nombre de una secuencia ("@7318713f-55b4-4e19-8fb1-4bd89b35568e") en especifico en un archivo fastq asi:
grep "^@7318713f-55b4-4e19-8fb1-4bd89b35568e" /directorio/personal/Taller-Oxford-Nanopore-Dec-2022/NGSdat/NGSdat/Cinchona_PAD61320_sizeSelect_1Kseq_99.fastq
... hay muchos otros programas mas que nos permiten visualizar datos que recomendamos aprender. Algunos ejemplos están disponibles aqui.
Este programa provee información detallada sobre programas basicos de UNIX.
man programa
man ls