hpclogo

LogoBlanco2

Scripts

A continuación, se muestra un ejemplo de la ejecución en línea de comandos para los programas con mayor frecuencia de uso en el clúster y los parámetros necesarios para su ejecución. Adicionalmente, se demuestra cómo ejecutar el programa en un bash script. Un script es una colección de instrucciones organizadas (comandos) escrito en un lenguaje especifico (Python, Perl, Java, Ruby, R, etc) para desarrollar una tarea particular. Los scripts que usualmente se usan en clustergate son los que se someten al servidor con el comando qsub.

Estos programas se encuentran separados en Bioinformática, Desarrollo de Estadísticas, Manipulación de Texto.

Bioinformática

blast linea de comandos

Modulo a cargar: blast/2.2.30

Requisitos:

-query: secuencia a la que se le quiere hacer blast.(FASTA)

-db:base de datos de blast.

-out: archivo de salida. (FASTA)

blast submit

#!/bin/bash 

###### Opciones para el usuario ######
# La opcion -M permite especificar un correo donde el estado del job sea enviado
#PBS -M mc.martinez297@uniandes.edu.co

# La opcion -m abe permitira saber si el job fue (a) abort, 
# (b) begin, (e) exit al correo especifico antes
#PBS -m abe

# La opcion -N permite nombrar el job, esto es aconsejable para saber de que se trata el job
#PBS -N Test1_blast

##### Opciones de nodos, procesadores y memoria ######
# La opcion -l nodes:ppn permite especificar el numero de nodos y procesadores por nodo
#PBS -l nodes=1:ppn=3

# La opcion -l mem permite establecer una memoria de uso
#PBS -l mem=2gb

########### Loading Program ########
# Subiendo el programa blast con el comando module load
module load blast/2.2.30


########## Putting variables, this depends on the program ########
# IN es la variable que tiene la secuencia de entrada
IN="/lustre/home/ciencias/biologia/mc.martinez297/PARA_BLAST/BAK64065.fasta"

# OUT es la variable con la que se escribe el nombre de la salida de blast
OUT="/lustre/home/ciencias/biologia/mc.martinez297/PARA_BLAST/BAK64065.tbl"

# Realizando un blastp
blastp -task blastp -query $IN  -db nr -out $OUT -evalue 1e-5 -matrix BLOSUM62 -outfmt 7 -max_target_seqs 5

emboss linea de comandos

Modulo a cargar: emboss/6.6.0

Requisitos:

-asequence: secuencia a la que se le quiere hacer needle.

-bsequence: segunda secuencia a la que se le quiere hacer needle.

-gapopen: costo de abrir un gap (10 normalmente)

-gapextend: costo de extender un gap (0.5 normalmente)

-outfile: archivo de salida (needle)

emboss submit

 

#!/bin/bash

#PBS -M kamynz16@gmail.com
#PBS -m ae

#PBS -N bowtie_test
#PBS -l walltime=00:20:00
#PBS -l nodes=1:ppn=4

# Loading emboss
module load emboss/2.6

 

 

 

bowtie linea de comandos

bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r>} [-S <sam>]

  <bt2-idx>  Index filename prefix (minus trailing .X.bt2).
             NOTE: Bowtie 1 and Bowtie 2 indexes are not compatible.
  <m1>       Files with #1 mates, paired with files in <m2>.
             Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
  <m2>       Files with #2 mates, paired with files in <m1>.
             Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
  <r>        Files with unpaired reads.
             Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
  <sam>      File for SAM output (default: stdout)

  <m1>, <m2>, <r> can be comma-separated lists (no whitespace) and can be
  specified many times.  E.g. '-U file1.fq,file2.fq -U file3.fq'.

Options (defaults in parentheses):

 Input:
  -q                 query input files are FASTQ .fq/.fastq (default)
  --qseq             query input files are in Illumina's qseq format
  -f                 query input files are (multi-)FASTA .fa/.mfa
  -r                 query input files are raw one-sequence-per-line
  -c                 <m1>, <m2>, <r> are sequences themselves, not files
  -s/--skip <int>    skip the first <int> reads/pairs in the input (none)
  -u/--upto <int>    stop after first <int> reads/pairs (no limit)
  -5/--trim5 <int>   trim <int> bases from 5'/left end of reads (0)
  -3/--trim3 <int>   trim <int> bases from 3'/right end of reads (0)
  --phred33          qualities are Phred+33 (default)
  --phred64          qualities are Phred+64
  --int-quals        qualities encoded as space-delimited integers

bowtie submit

#!/bin/bash

#PBS -M kamynz16@gmail.com
#PBS -m ae

#PBS -N bowtie_test
#PBS -l walltime=00:20:00
#PBS -l nodes=1:ppn=4

# Loading bowtie
module load bowtie/2-2.2.4 

# Changing to current directory
cd $PWD

# Using bowtie2-build to create index for the genome reference
bowtie2-build /lustre/apps/bowtie/2-2.2.4/example/reference/lambda_virus.fa lambda_virus

# If you want to make an alignments to reads using bowtie2
bowtie2 -x lambda_virus -U /lustre/apps/bowtie/2-2.2.4/example/reads/reads_1.fq -S eg1.sam

# If you want to make a Paired-end alignment
bowtie2 -x lambda_virus -1 /lustre/apps/bowtie/2-2.2.4/example/reads/reads_1.fq -2 /lustre/apps/bowtie/2-2.2.4/example/reads/reads_2.fq -S eg2.sam

# If you want to make a local alignment 
bowtie2 --local -x lambda_virus -U /lustre/apps/bowtie/2-2.2.4/example/reads/longreads.fq -S eg3.sam

fastqc linea de comandos

Modulo a cargar: fastqc/0.11.2

Requisitos:

-o: archivo de salida.(ZIP)

Acepta múltiples secuencias de entrada (FASTA)

RECOMENDACIÓN:

--noextract: no abre el archivo de salida

fastqc submit

FALTA

fastx_toolkit linea de comandos

Modulo a cargar: fastx_toolkit/0.0.14

Requisitos:

-i: secuencia de entrada.

-o: archivo de salida.

Dependiendo de lo que se quiera hacer se necesitan requisitos extra:

fastx_nucleotide_distribution_graph.sh / fastq_quality_boxplot_graph.sh

–p: genera una gráfica (PNG).

–t: título de la gráfica.

fastx_clipper

–a: adaptador

Fastx_trimmer

–f: primera base que se va a mantener

–l: última base que se va a mantener.

fastx_toolkit submit

FALTA

 

muscle linea de comandos

Modulo a cargar: muscle/3.81

Requisitos:

-in: secuencia de entrada (FASTA)

-out: archivo de salida alineado (FASTA)

muscle submit

spades linea de comandos

Modulo a cargar: spades/3.5.0

Requisitos:

--iontorrent: si se tienen datos de IonTorrent.

-o: directorio de salida.

spades submit

Your text...

trimmomatic linea de comandos

Modulo a cargar: trimmomatic/0.36

Requisitos:

Secuencia de entrada

Secuencia de salida

-phred33/-phred64: dependiendo del formato en que estén los datos.

-ILLUMINACLIP: adaptadores (FASTA)

-LEADING: remueve las bases de menor calidad

-TRAILING: remueve las bases por debajo de la calidad ingresada.

-SLIDINGMINDOW: primer número es el tamaño de la ventana y el segundo es la calidad mínima que debe tener el promedio de la ventana para no ser eliminada.

-MINLEN: tamaño mínimo para que toda la secuencia no sea descartada.

trimmomatic submit

FALTA

velvet linea de comandos

Modulo a cargar: velvet/v.1.2.10

Requisitos:

Secuencia de salida

Secuencia de entrada.

Velveth:

K-mero: de qué tamaño se quiere dividir la secuencia.

velvet submit

FALTA

 

Estadística

Python

#!/bin/bash 
# Forma 1
#########
# Se puede correr un script de Python, los cuales terminan en .py
python ./pythonScript.py

#########
# Forma 2
#########
# Se puede correr un script de Python, los cuales terminan en .py

# Cambiando permisos
chmod 7555 pythonScript.py
# Corriendo el script
./pythonScript.py

#########
# Forma 3
#########

# Si se quiere subir un python en especifico existen:

#1
module load anaconda/python2 
#2
module load anaconda/python3

R

#!/bin/bash 

#PBS -M kamynz16@gmail.com
#PBS -m ae

#PBS -N bowtie_test
#PBS -l walltime=00:20:00
#PBS -l nodes=1:ppn=4

# El script de R debe terminar en .R
R CMD BATCH Rscript.R

Manipulación de Texto

awks

# Awks sirve para procesar archivos por linea

# En este caso se esta cambiando el nombre de las filas que empiezan con el signo > por >Frag_# 

# Este se esta haciendo para todos los archivos terminados en .fasta

# For loop with awk
for f in *.fasta; do awk '/^>/{print ">Frag_" ++i;next}{print}' < $f > $f.fastaN;done