Saltar a contenido

Banner

TP 2. EMBOSS


Materiales

Slides

Software a usar

  • EMBOSS

Terminal online

Objetivos

  • Familiarizarse con el uso de herramientas bioinformáticas por línea de comandos.
  • Familiarizarse con los formatos característicos de datos biológicos.
  • Practicar conceptos aprendidos en el TP 1.

Introduccion al Tema

EMBOSS es una suite bioinformática creada y mantenida por EMBnet que incluye una multitud de herramientas elementales en biología molecular y genética. Algunas ventajas de EMBOSS son:

  • Maneja información biológica en varios formatos para realizar distintos tipos de tareas.
  • Es muy rápida, lo cual significa que es computacionalmente escalable.
  • Si bien cada uno de sus programas individuales podrían ser reemplazados por otros softwares o un script propio, EMBOSS agrupa todos estos programas en un sólo paquete y le provee al usuario una interfaz unificada para todas las aplicaciones.

A continuación se encuentra una lista de 256 programas que contiene EMBOSS y un resumen corto de lo que hace cada uno:

Programas de EMBOSS
Program name Description
aaindexextract Extract amino acid property data from AAINDEX
abiview Display the trace in an ABI sequencer file
acdc Test an application ACD file
acdpretty Correctly reformat an application ACD file
acdtable Generate an HTML table of parameters from an application ACD file
acdtrace Trace processing of an application ACD file (for testing)
acdvalid Validate an application ACD file
aligncopy Read and write alignments
aligncopypair Read and write pairs from alignments
antigenic Find antigenic sites in proteins
assemblyget Get assembly of sequence reads
backtranambig Back-translate a protein sequence to ambiguous nucleotide sequence
backtranseq Back-translate a protein sequence to a nucleotide sequence
banana Plot bending and curvature data for B-DNA
biosed Replace or delete sequence sections
btwisted Calculate the twisting in a B-DNA sequence
cachedas Generate server cache file for DAS servers or for the DAS registry
cachedbfetch Generate server cache file for Dbfetch/WSDbfetch data sources
cacheebeyesearch Generate server cache file for EB-eye search domains
cacheensembl Generate server cache file for an Ensembl server
cai Calculate codon adaptation index
chaos Draw a chaos game representation plot for a nucleotide sequence
charge Draw a protein charge plot
checktrans Report STOP codons and ORF statistics of a protein
chips Calculate Nc codon usage statistic
cirdna Draw circular map of DNA constructs
codcmp Codon usage table comparison
codcopy Copy and reformat a codon usage table
coderet Extract CDS, mRNA and translations from feature tables
compseq Calculate the composition of unique words in sequences
cons Create a consensus sequence from a multiple alignment
consambig Create an ambiguous consensus sequence from a multiple alignment
cpgplot Identify and plot CpG islands in nucleotide sequence(s)
cpgreport Identify and report CpG-rich regions in nucleotide sequence(s)
cusp Create a codon usage table from nucleotide sequence(s)
cutgextract Extract codon usage tables from CUTG database
cutseq Remove a section from a sequence
dan Calculate nucleic acid melting temperature
dbiblast Index a BLAST database
dbifasta Index a fasta file database
dbiflat Index a flat file database
dbigcg Index a GCG formatted database
dbtell Display information about a public database
dbxcompress Compress an uncompressed dbx index
dbxedam Index the EDAM ontology using b+tree indices
dbxfasta Index a fasta file database using b+tree indices
dbxflat Index a flat file database using b+tree indices
dbxgcg Index a GCG formatted database using b+tree indices
dbxobo Index an obo ontology using b+tree indices
dbxreport Validate index and report internals for dbx databases
dbxresource Index a data resource catalogue using b+tree indices
dbxstat Dump statistics for dbx databases
dbxtax Index NCBI taxonomy using b+tree indices
dbxuncompress Uncompress a compressed dbx index
degapseq Remove non-alphabetic (e.g. gap) characters from sequences
density Draw a nucleic acid density plot
descseq Alter the name or description of a sequence
diffseq Compare and report features of two similar sequences
distmat Create a distance matrix from a multiple sequence alignment
dotmatcher Draw a threshold dotplot of two sequences
dotpath Draw a non-overlapping wordmatch dotplot of two sequences
dottup Display a wordmatch dotplot of two sequences
dreg Regular expression search of nucleotide sequence(s)
drfinddata Find public databases by data type
drfindformat Find public databases by format
drfindid Find public databases by identifier
drfindresource Find public databases by resource
drget Get data resource entries
drtext Get data resource entries complete text
edamdef Find EDAM ontology terms by definition
edamhasinput Find EDAM ontology terms by has_input relation
edamhasoutput Find EDAM ontology terms by has_output relation
edamisformat Find EDAM ontology terms by is_format_of relation
edamisid Find EDAM ontology terms by is_identifier_of relation
edamname Find EDAM ontology terms by name
edialign Local multiple alignment of sequences
einverted Find inverted repeats in nucleotide sequences
embossdata Find and retrieve EMBOSS data files
embossupdate Checks for more recent updates to EMBOSS
embossversion Report the current EMBOSS version number
emma Multiple sequence alignment (ClustalW wrapper)
emowse Search protein sequences by digest fragment molecular weight
entret Retrieve sequence entries from flatfile databases and files
epestfind Find PEST motifs as potential proteolytic cleavage sites
eprimer3 Pick PCR primers and hybridization oligos
eprimer32 Pick PCR primers and hybridization oligos
equicktandem Find tandem repeats in nucleotide sequences
est2genome Align EST sequences to genomic DNA sequence
etandem Find tandem repeats in a nucleotide sequence
extractalign Extract regions from a sequence alignment
extractfeat Extract features from sequence(s)
extractseq Extract regions from a sequence
featcopy Read and write a feature table
featmerge Merge two overlapping feature tables
featreport Read and write a feature table
feattext Return a feature table original text
findkm Calculate and plot enzyme reaction data
freak Generate residue/base frequency table or plot
fuzznuc Search for patterns in nucleotide sequences
fuzzpro Search for patterns in protein sequences
fuzztran Search for patterns in protein sequences (translated)
garnier Predict protein secondary structure using GOR method
geecee Calculate fractional GC content of nucleic acid sequences
getorf Find and extract open reading frames (ORFs)
godef Find GO ontology terms by definition
goname Find GO ontology terms by name
helixturnhelix Identify nucleic acid-binding motifs in protein sequences
hmoment Calculate and plot hydrophobic moment for protein sequence(s)
iep Calculate the isoelectric point of proteins
infoalign Display basic information about a multiple sequence alignment
infoassembly Display information about assemblies
infobase Return information on a given nucleotide base
inforesidue Return information on a given amino acid residue
infoseq Display basic information about sequences
isochore Plot isochores in DNA sequences
jaspextract Extract data from JASPAR
jaspscan Scan DNA sequences for transcription factors
lindna Draw linear maps of DNA constructs
listor Write a list file of the logical OR of two sets of sequences
makenucseq Create random nucleotide sequences
makeprotseq Create random protein sequences
marscan Find matrix/scaffold recognition (MRS) signatures in DNA sequences
maskambignuc Mask all ambiguity characters in nucleotide sequences with N
maskambigprot Mask all ambiguity characters in protein sequences with X
maskfeat Write a sequence with masked features
maskseq Write a sequence with masked regions
matcher Waterman-Eggert local alignment of two sequences
megamerger Merge two large overlapping DNA sequences
merger Merge two overlapping sequences
msbar Mutate a sequence
mwcontam Find weights common to multiple molecular weights files
mwfilter Filter noisy data from molecular weights file
needle Needleman-Wunsch global alignment of two sequences
needleall Many-to-many pairwise alignments of two sequence sets
newcpgreport Identify CpG islands in nucleotide sequence(s)
newcpgseek Identify and report CpG-rich regions in nucleotide sequence(s)
newseq Create a sequence file from a typed-in sequence
nohtml Remove mark-up (e.g. HTML tags) from an ASCII text file
noreturn Remove carriage return from ASCII files
nospace Remove whitespace from an ASCII text file
notab Replace tabs with spaces in an ASCII text file
notseq Write to file a subset of an input stream of sequences
nthseq Write to file a single sequence from an input stream of sequences
nthseqset Read and write (return) one set of sequences from many
octanol Draw a White-Wimley protein hydropathy plot
oddcomp Identify proteins with specified sequence word composition
ontocount Count ontology term(s)
ontoget Get ontology term(s)
ontogetcommon Get common ancestor for terms
ontogetdown Get ontology term(s) by parent id
ontogetobsolete Get ontology ontology terms
ontogetroot Get ontology root terms by child identifier
ontogetsibs Get ontology term(s) by id with common parent
ontogetup Get ontology term(s) by id of child
ontoisobsolete Report whether an ontology term id is obsolete
ontotext Get ontology term(s) original full text
palindrome Find inverted repeats in nucleotide sequence(s)
pasteseq Insert one sequence into another
patmatdb Search protein sequences with a sequence motif
patmatmotifs Scan a protein sequence with motifs from the PROSITE database
pepcoil Predict coiled coil regions in protein sequences
pepdigest Report on protein proteolytic enzyme or reagent cleavage sites
pepinfo Plot amino acid properties of a protein sequence in parallel
pepnet Draw a helical net for a protein sequence
pepstats Calculate statistics of protein properties
pepwheel Draw a helical wheel diagram for a protein sequence
pepwindow Draw a hydropathy plot for a protein sequence
pepwindowall Draw Kyte-Doolittle hydropathy plot for a protein alignment
plotcon Plot conservation of a sequence alignment
plotorf Plot potential open reading frames in a nucleotide sequence
polydot Draw dotplots for all-against-all comparison of a sequence set
preg Regular expression search of protein sequence(s)
prettyplot Draw a sequence alignment with pretty formatting
prettyseq Write a nucleotide sequence and its translation to file
primersearch Search DNA sequences for matches with primer pairs
printsextract Extract data from PRINTS database for use by pscan
profit Scan one or more sequences with a simple frequency matrix
prophecy Create frequency matrix or profile from a multiple alignment
prophet Scan one or more sequences with a Gribskov or Henikoff profile
prosextract Process the PROSITE motif database for use by patmatmotifs
pscan Scan protein sequence(s) with fingerprints from the PRINTS database
psiphi Calculates phi and psi torsion angles from protein coordinates
rebaseextract Process the REBASE database for use by restriction enzyme applications
recoder Find restriction sites to remove (mutate) with no translation change
redata Retrieve information from REBASE restriction enzyme database
refseqget Get reference sequence
remap Display restriction enzyme binding sites in a nucleotide sequence
restover Find restriction enzymes producing a specific overhang
restrict Report restriction enzyme cleavage sites in a nucleotide sequence
revseq Reverse and complement a nucleotide sequence
seealso Find programs with similar function to a specified program
seqcount Read and count sequences
seqmatchall All-against-all word comparison of a sequence set
seqret Read and write (return) sequences
seqretsetall Read and write (return) many sets of sequences
seqretsplit Read sequences and write them to individual files
seqxref Retrieve all database cross-references for a sequence entry
seqxrefget Retrieve all cross-referenced data for a sequence entry
servertell Display information about a public server
showalign Display a multiple sequence alignment in pretty format
showdb Display information on configured databases
showfeat Display features of a sequence in pretty format
showorf Display a nucleotide sequence and translation in pretty format
showpep Display protein sequences with features in pretty format
showseq Display sequences with features in pretty format
showserver Display information on configured servers
shuffleseq Shuffle a set of sequences maintaining composition
sigcleave Report on signal cleavage sites in a protein sequence
silent Find restriction sites to insert (mutate) with no translation change
sirna Find siRNA duplexes in mRNA
sixpack Display a DNA sequence with 6-frame translation and ORFs
sizeseq Sort sequences by size
skipredundant Remove redundant sequences from an input set
skipseq Read and write (return) sequences, skipping first few
splitsource Split sequence(s) into original source sequences
splitter Split sequence(s) into smaller sequences
stretcher Needleman-Wunsch rapid global alignment of two sequences
stssearch Search a DNA database for matches with a set of STS primers
supermatcher Calculate approximate local pair-wise alignments of larger sequences
syco Draw synonymous codon usage statistic plot for a nucleotide sequence
taxget Get taxon(s)
taxgetdown Get descendants of taxon(s)
taxgetrank Get parents of taxon(s)
taxgetspecies Get all species under taxon(s)
taxgetup Get parents of taxon(s)
tcode Identify protein-coding regions using Fickett TESTCODE statistic
textget Get text data entries
textsearch Search the textual description of sequence(s)
tfextract Process TRANSFAC transcription factor database for use by tfscan
tfm Display full documentation for an application
tfscan Identify transcription factor binding sites in DNA sequences
tmap Predict and plot transmembrane segments in protein sequences
tranalign Generate an alignment of nucleic coding regions from aligned proteins
transeq Translate nucleic acid sequences
trimest Remove poly-A tails from nucleotide sequences
trimseq Remove unwanted characters from start and end of sequence(s)
trimspace Remove extra whitespace from an ASCII text file
twofeat Find neighbouring pairs of features in sequence(s)
union Concatenate multiple sequences into a single sequence
urlget Get URLs of data resources
variationget Get sequence variations
vectorstrip Remove vectors from the ends of nucleotide sequence(s)
water Smith-Waterman local alignment of sequences
whichdb Search all sequence databases for an entry and retrieve it
wobble Plot third base position variability in a nucleotide sequence
wordcount Count and extract unique words in molecular sequence(s)
wordfinder Match large sequences against one or more other sequences
wordmatch Find regions of identity (exact matches) of two sequences
wossdata Find programs by EDAM data
wossinput Find programs by EDAM input data
wossname Find programs by keywords in their short description
wossoperation Find programs by EDAM operation
wossoutput Find programs by EDAM output data
wossparam Find programs by EDAM parameter
wosstopic Find programs by EDAM topic
yank Add a sequence reference (a full USA) to a list file

Como obviamente es imposible acordarse de todos estos programas, EMBOSS tiene un comando llamado wossname que permite listar comandos que tengan cierta palabra en su descripción (en inglés).

  1. Abran la consola y prueben correr:

    wossname dna
    

    Por otro lado, una vez que encuentran un programa que les interesa pueden leer detalladamente como funciona usando el comando tfm (The Funny? Full? Manual).

  2. Por ejemplo pueden ejecutar:

    tfm jaspscan
    

    El texto que aparece funciona similar al comando less que vimos en el TP 1, donde Space pasa a la próxima página y apretando Q deja de leerlo.

    Como mencionamos antes es posible hacer bioinformática sin usar EMBOSS, ya sea porque:

    • queremos controlar hasta el último detalle que hace nuestro programa,
    • queremos agregar alguna opción que EMBOSS no tiene,
    • o simplemente era una tarea simple y no queríamos aprender a usar un programa de EMBOSS para hacerla.

    Son todas razones válidas. Lo que queremos que se lleven hoy es que EMBOSS existe y que puede hacer algunas tareas que les van a resultar útiles en el día a día de hacer bioinformática.

Aplicaciones en Biotecnología

En el TP de hoy vamos a familiarizarnos con EMBOSS y algunas herramientas del paquete, aplicándolas al diseño de una estrategia de clonado, puntualmente para diseñar/optimizar proteínas para expresión recombinante heteróloga.

En los últimos años se simplificó la ejecución del proceso de clonado/expresión. Esto se debe a la aparición de múltiples herramientas de Ingenieria Genética y a la posibilidad de sintetizar largas secuencias de ácidos nucleicos in vitro, eliminando el peso de levantar un gen de interés y el riesgo de meter errores durante la PCR que ejecutamos para hacerlo.

Una de las industrias biotecnológicas más antigua es la industria alimenticia. Centenares de microorganismos distintos y decenas de enzimas son utilizados en esta industria para distintos procesos. Algunos de estos procesos son muy complejos, como la fermentación de un vino, mientras que otros son simples y puntuales, como la degradación de lactosa en productos lácteos para personas intolerantes a este azúcar. Los procesos enzimáticos simples pueden resolverse fácilmente mediante la producción de la enzima de interés en forma heteróloga.

Con el fin de dar rienda suelta a nuestro emprendedor interior, montaremos las bases de una empresa biotecnológica: vamos a producir enzimas. La primera enzima que queremos producir es la VpVan, la cual es la encargada de convertir el ácido ferúlico en vanillina. El ácido ferúlico se puede recuperar en grandes cantidades de residuos agroindustriales, como el salvado de trigo y arroz. La vainillina es un compuesto de alto interés económico debido a su uso como saborizante (a que no adivinan que sabor tiene).

Vainillina

Archivos FASTA

Esta enzima ha sido aislada (y secuenciada) a partir de Vanilla planifolia. Encontrarán la secuencia correspondiente entre sus materiales de trabajo (VpVAN.fasta) y más información sobre el descubrimiento en este paper.

Por si no lo saben o no lo recuerdan, el formato FASTA es la forma más usada para trabajar secuencias biológicas (ADN, ARN, aminoácidos) en forma digital. Son archivos de texto plano, donde se asume un formato muy sencillo de interpretar para el ojo humano:

FASTA

Un archivo FASTA tiene dos elementos importantes:

  • Header: Está indicado con un > . Es la línea con el nombre o identificador de la secuencia. Puede contener información adicional como alguna descripción extra sobre la secuencia, tal como las condiciones en que fue obtenida u otra descripción opcional.
  • Secuencia: El resto de las líneas que continúan contienen la secuencia propiamente dicha. El largo de cada fila de la secuencia no significa nada; una secuencia de 800 aminoácidos puede ser escrita en una sola línea de 800 aminoácidos o en 10 líneas de 80 aminoácidos cada una. La secuencia sigue hasta el próximo > o hasta el final del archivo, lo que pase primero.

Info

Cuando un FASTA tiene más de una secuencia se lo denomina multiFASTA. En los archivos multiFASTA cada secuencia tiene su header y su secuencia propiamente dicha.

Repaso biológico

Nuestro objetivo en esta guía va a ser diseñar una secuencia de ADN sintético que:

  • Exprese VpVan
  • Tenga sitios de corte para enzimas de restricción para que pueda ser insertado en un plásmido o vector de expresión de un organismo huésped. En este caso, dichos sitios de corte van a pertenecer a diferentes enzimas de restricción para facilitar la inserción del gen en el sentido correcto
  • Marque a VpVan de alguna forma para facilitar su posterior purificación

A continuación vamos a dar una versión super resumida de los conceptos anteriores. Si ya saben como funciona todo lo mencionado pueden ir a la próxima sección (Bases del experimento).

Repaso biológico - Plásmidos

Plásmidos

Los plásmidos son moléculas de ADN de forma circular presentes principalmente en bacterias, arqueas y levaduras. Estas moléculas se encuentran fuera de los cromosomas y se replican de manera autónoma.

Debido a estas características, es posible generar plásmidos artificiales con el objetivo de amplificar (vector de clonación) o de expresar (vector de expresión) un gen de interés. Esto generalmente se realiza cuando la expresión de dicho gen en su organismo original no es factible, ya sea por problemas de volumen, logística o ética.

FASTA

Los principales componentes de vector de expresión son:

  • Origen de la replicación: punto inicial para la replicación del plásmido
  • Gen de resistencia a antibióticos: gen que se expresa y da resistencia al organismo huésped, permite quedarnos solo con los organismos que tienen el plásmido dentro de ellos
  • Promotor: controla la transcripción de una determinada secuencia (en este caso el gen insertado)
  • Sitio de restricción: secuencia que es cortada por una enzima de restricción y donde será insertado el gen de interés (más de esto a continuación)
Repaso biológico - Enzimas de Restricción

Enzimas de Restricción

Las enzimas de restricción son proteínas que reconocen una secuencia específica de nucleótidos dentro de una molécula de ADN y cortan el ADN en ese punto en concreto o en un punto cercano. A esas secuencias de ADN se las denomina sitios de restricción y tienen entre cuatro a seis pares de bases.

Hay dos grandes grupos de enzimas de restricción, aquellas que dejan extremos cohesivos y aquellas que dejan extremos romos:

Enzimas de restricción

Al momento de insertar genes en plásmidos se usan generalmente enzimas de restricción que dejan extremos cohesivos ya que facilitan la inserción del gen debido a su especificidad y a que pueden volverse a unir espontaneamente.

La idea detrás de su uso es colocar un sitio de restricción en el plásmido y colocar el mismo sitio de restricción a cada lado del gen de interés (en el ADN que uno sintetiza). Luego los plásmidos vacios se colocan en una solución con el ADN sintético y se les agrega la enzima de restricción correspondiente que va a cortar el ADN dejando los extremos cohesivos en cada sitio de restricción.

Agregar un gen

Como el sitio de restricción es el mismo en el plástido y en la secuencia de ADN, es posible entonces que el ADN sintético se inserté en el plásmido, ya sea espontaneamente o ayudado por una ligasa. Esta página tiene muy buenos esquemas sobre el proceso.

En el experimento anterior, luego de cortar el sitio de restricción con la enzima, pueden pasar tres cosas:

  • El plásmido se vuelve a cerrar sin ningun inserto
  • Se inserta el gen de interés en la dirección correcta (respecto al promotor en el plásmido)
  • Se inserta el gen de interés en la dirección contraria (respecto al promotor en el plásmido)

Es posible evitar el caso donde el gen se inserta en la dirección contraria combinando 2 enzimas de restricción diferentes, donde ahora va a haber 2 sitios de restricción en el plásmido (uno para cada enzima) y los dos sitios de restricción en el ADN sintético van a ser diferentes (uno para cada enzima, en el mismo orden que en el plásmido). Si bien en esta versión no es posible que el gen sea insertado en la dirección contraria, sí es posible que se vuelva a insertar el fragmento de plásmido entre los sitios de restricción, pero hay formas de controlar estos casos. Cuando usamos 2 enzimas de reestricción en esta forma decimos que estamos "clonando en forma direccional".

Danger

Es importante cuando se usan enzimas de restricción asegurarse que no haya ningún sitio de corte para las enzimas elegidas en el plásmido ni en el ADN sintético fuera de los sitios involucrados en el proceso de inserción (ya que de existir también serán cortados y la inserción fracasará).

Repaso biológico - Purificación y Tags

Purificación y Tags

Una vez que nuestros organismos huésped tienen el vector de expresión con el gen de interés, se los deja crecer, reproducirse y expresar la proteína de interés en grandes cantidades. Una vez hecho esto, es necesario extraer esa proteína de la solución, lo que no es trivial.

Hay varias formas de purificar proteínas y una de ellas es la cromatografía por afinidad, la cual se basa en la unión reversible entre el analito de interés (en nuestro caso la VpVan) y un ligando específico, inmovilizado en un soporte sólido inerte. Cuando la muestra pasa por la columna, sólo son retenidas las moléculas que se unen de manera selectiva al ligando por afinidad y las que no se unen avanzan con la fase móvil. La figura a continuación muestra un ejemplo donde se usan anticuerpos inmovilizados en una columna para purificar a la proteína roja del resto de la solución:

Agregar un gen

Para poder construir estas columnas es necesario conseguir un ligando que reconozca a nuestra proteína de interés. Si bien esto es teóricamente cierto, como nosotros estamos sintetizando el ADN desde cero podemos pensar lateralmente y agregarle a nuestra proteína una secuencía aminoacídica en uno de sus extremos para la cual ya conozcamos ligandos. Estas secuencias pueden ser desde pocos aminoácidos hasta a proteínas pequeñas y son denominadas tags.

Bases del experimento

Volviendo a nuestro experimento, queremos insertar el gen de VpVan en un vector de expresión. Nuestro organismo huésped es:

  • E. coli BL21

Como queremos clonar en forma direccional tenemos que usar dos enzimas de restricción. En el laboratorio están disponibles:

  • BamHI
  • ApoI
  • HindIII

Al momento de purificar necesitamos agregarle un tag a la proteína. Vamos a probar 3 tags diferentes:

  • FLAG-tag
  • His-tag
  • MBP-tag

Por cuestiones de practicidad, todos los tags van a estar en el C-terminal.

En los siguientes ejercicios vamos a:

  • Ejercicio 1: Generar secuencias quiméricas VpVan-Tag agregando diferentes tags de interés a la secuencia proteíca de VpVan
  • Ejercicio 2: Obtener el genoma del organismo huésped E. coli BL21 (necesario para el Ejercicio 3)
  • Ejercicio 3: Generar una tabla de frecuencia de uso de codones del organismo huésped
  • Ejercicio 4: Generar la secuencia nucleotídica VpVan-Tag con los codones optimizados para el organismo huésped
  • Ejercicio 5: Verificar que no hayan quedado sitios de corte para nuestras enzimas de restricción dentro de la secuencia VpVan-Tag optimizada y luego agregar los sitios de restricción en los bordes de la secuencia

Ejercicio 1. Secuencias aminoacídicas VpVan-Tag

Para generar las secuencias de aminoácidos quiméricas VpVan-Tag (donde Tag = FLAG/His/MBP) van a necesitar los siguientes archivos que se encuentras en sus materiales de trabajo:

  • VpVan.fasta
  • FLAG-tag.fasta
  • His-tag.fasta
  • MBP-tag.fasta

Recomendación de organización de archivos

Antes de comenzar a trabajar, es altamente recomendable que creen una carpeta para este ejercicio. Esto les va a permitir organizar mejor sus archivos y evitar problemas al momento de correr los scripts.

Es altamente recomendado que creen diferentes carpetas para los diferentes TPs y en algunos casos para los diferentes ejercicios (especialemente en este). El nombre y la ubicación lo pueden decidir ustedes, pero un ejemplo para este ejercicio sería ~/Documentos/TP_02/EJ_1.

  • Una vez creada la carpeta para este ejercicio, muevan los cuatro archivos anteriores a dicha carpeta.

Tip

Recuerden que es preferible no usar espacios al crear directorios o archivos

Nuestro objetivo ahora es crear 3 nuevos archivos FASTA que contengan las diferentes construcciones (VpVan + cada uno de los tags). Vamos a llamarlos VpVan-FLAG-tag.fasta reemplazando el nombre del tag correspondiente en cada caso.

Ahora bien, como son solo 3 tags esto se podría hacer a mano copiando y pegando, pero es un buen momento para profundizar en dos conceptos que aprendimos la clase pasada: scripts y ciclos.

1) Creen un archivo vacío de texto en esa carpeta y llamenlo agregar_tags.sh. Dentro del archivo pongan lo siguiente:

vpvan_sequence=`cat VpVAN.fasta | grep -v ">"`
lista_de_archivos_tags=`ls *-tag.fasta`

for archivo_tag in $lista_de_archivos_tags
do 
    tag_sequence=`cat $archivo_tag | grep -v ">"`

    new_header=">VpVAN-$archivo_tag"
    combined_sequence="$vpvan_sequence$tag_sequence"

    echo "$new_header" > VpVAN-$archivo_tag
    echo "$combined_sequence" >> VpVAN-$archivo_tag
done
# Aca estamos ejecutando comandos de Linux y guardando su output en una variable
# En estos casos hay que rodear a los comandos con ` (acento grave o comilla invertida)

# Leemos el FASTA de VpVAN y nos quedamos solo con la secuencia
# (estamos removiendo con grep cualquier linea que tenga >, que aca es solo el header)
vpvan_sequence=`cat VpVAN.fasta | grep -v ">"` 

# Creamos una lista que contiene a todos los archivos que terminan con -tag.fasta
# (esto va a mirar solo archivos que estén en la carpeta donde se corre el script)
lista_de_archivos_tags=`ls *-tag.fasta`

# Este es una estructura a la que llamamos *for each* en el TP 1. Es un *for*, pero en vez de tener 
# una cantidad determinada de ciclos, recorre cada uno de los elementos de una lista
for archivo_tag in $lista_de_archivos_tags
do 
    # Leemos el FASTA del tag y nos quedamos solo con la secuencia
    tag_sequence=`cat $archivo_tag | grep -v ">"`

    # Creamos una variable que almacene el nuevo header para la secuencia de VpVAN + tag
    new_header=">VpVAN-$archivo_tag"

    # Calculamos la nueva secuencia VpVAN + tag
    combined_sequence="$vpvan_sequence$tag_sequence"

    # Escribimos el nuevo header y la nueva secuencia en un nuevo archivo
    echo "$new_header" > VpVAN-$archivo_tag
    echo "$combined_sequence" >> VpVAN-$archivo_tag
done

Como recordatorio del TP 1:

  • cat lee archivos de texto y los escribe en la consola
  • | desvia la salida de un programa para que funcione como entrada del siguiente
  • grep filtra texto, quedandosé solo con aquellas líneas que contengan un texto dado (y de usar la opción -v se queda solo con aquellas que no lo contengan)
  • ls lista los archivos y carpetas dentro del directorio actual
  • echo escribe un texto por consola
  • > desvia la salida que íria a consola hacia un archivo de texto, sobrescribiendolo
  • >> desvia la salida que íria a consola hacia un archivo de texto, sin sobreescribirlo (agrega lineas al final)
  • for, in, do y done son todas partes del ciclo for each. El código entre do y done se va a repetir por cada elemento en $lista_de_archivos_tags, donde en cada iteración la variable $archivo_tag toma el valor de uno de esos elementos

Hay dos cosas en este script que no vimos en el TP 1. La primera es que estamos ejecutando comandos de Bash y guardando su salida en variables. En estos casos es necesario rodear el comando con `, llamado acento grave o comilla invertida. Por ejemplo:

variable=`comando -opciones parametro1 parametro2`

La segunda novedad es el uso de * con el comando ls. En todo lo que es Linux el caracter * funciona como comodín, tomando cualquier valor. Esto quiere decir que ls *-tag.fasta va a listar todos los archivos cuyos nombres terminen con "-tag.fasta", sin importar como empiecen (pueden probar correr el comando ls *-tag.fasta a mano en la consola y ver que devuelve).

  • Entienden ahora lo que hace el script?

Lean la pestaña Código con comentarios para aclarar cualquier duda que tengan sobre él (y si todavía no se entiende no duden en preguntar).

2) Ahora abran la consola y corran el script que acabamos de crear, generando así los nuevos 3 archivos.

Tip

Recuerden que los script se corren con bash ARCHIVO_SCRIPT

¡Ya tenemos nuestras secuencias quiméricas!

Tip

Este script va a dar problemas si se lo corre multiples veces. Esto se debe a que al correrlo la primera vez estamos creando más archivos que terminan con "-tag.fasta", que en una segunda corrida van a ser detectados por el ls. Si no quieren tener problemas con esto pueden agregar el siguiente código luego de dicho comando: | grep -v "VpVAN"

Ejercicio 2. Genoma de E. coli

Nosotros queremos expresar el gen de un organismo en otro organismo. Si bien el código genético es prácticamente universal, diferentes organismos pueden tener preferencia para diferentes codones que generan un mismo aminoácido. Por esta razón, al hacer expresión recombinante heteróloga es una buena idea cambiar los codones del gen de interés para que matcheen mejor con la preferencia de codones del organismo huésped (se modifica el ADN pero se sigue produciendo la misma proteína). El primer paso para realizar esta modificación es conocer cuales son los codones preferidos por dicho organismo.

3) Busquen usando el comando wossname que programas de EMBOSS trabajan con codones (recuerden que está en inglés, asi que tienen que buscar "codon"). Lean la descripción de dichos programas, ¿cual les parece que vamos a usar para calcular la tabla de uso de codones?

Respuesta

cusp, cuya descripción es "Create a codon usage table from nucleotide sequence(s)"

Si leen la descripción del programa, verán que pide una secuencia de nucleótidos, es decir, que necesitamos un FASTA del genoma completo de E. coli (ya que éste es nuestro organismo hospedador).

Un buen lugar para obtener información de genomas, genes, y proteínas es RefSeq, que es una colección curada de secuencias nucleotídicas y sus productos. En su FAQ (Frequently Asked Questions, o preguntas frecuentes) hay una pregunta que es básicamente lo que queremos hacer nosotros:

How can I download RefSeq data for all complete bacterial genomes?

Si bien los comandos que ellos sugieren son un poco complejos, vamos a utilizarlos y tratar de explicarlos lo mejor posible.

Tip

Antes de seguir les recomendamos crear una carpeta nueva para este ejercicio, por ejemplo ~/Documentos/TP_02/EJ_2.

RefSeq - Paso 1 - Bajar y filtrar la tabla con los genomas

4) El primer paso indicado en el FAQ es descargar el archivo assembly_summary.txt y ponerlo en la carpeta de este ejercicio. Esto lo pueden hacer desde la página de RefSeq a mano o abriendo la consola en la carpeta de este ejercicio y corriendo:

wget ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/assembly_summary.txt

Question

¿Qué piensan que hace wget? ¿Cómo pueden averiguarlo si no lo saben?

Warning

Si el comando wget tarda mucho o ven que tiene errores bajensé este archivo desde este link

Una vez descargado ese archivo (que pesa bastante) queremos ver sus contenidos. Sabiendo que es un archivo que tiene más de 250.000 líneas:

5) ¿Qué comando usarían para ver que tipo de datos tiene adentro? Pruébenlo.

Dado que es un archivo con muchas columnas, probablemente les cueste entender lo que están viendo aunque hayan usado el comando correcto.

Para entender la estructura de nuestro archivo vamos a crear un archivo temporal que tenga sólo las primeras 20 filas de este archivo:

head -20 assembly_summary.txt > assembly_summary_temporal.tsv

Lo único que les debería llamar la atención del comando anterior es que el nuevo archivo tiene la extensión tsv. Esto lo mencionamos por arriba en el TP 1, pero los archivos TSV o "Tab-Separated Values" son archivos de texto que contienen una tabla donde sus columnas están separadas entre ellas por un Tab, lo cual es exactamente el caso de la tabla actual.

Hagan doble click sobre el archivo assembly_summary_temporal.tsv.

Word Wrapping

Si abren el archivo y ven que todo está en una sola línea, hay que modificar la opción de "Word Wrapping" o "Ajuste de línea" en su editor de texto. Esto debería hacer que cada fila se vea en una línea diferente, permitiéndoles ver la tabla correctamente.

En replit vayan a 'All Tools' (el icono de los cuatro cuadraditos a la izquierda), busquen al final de todo 'User Settings' y por último la opción "Wrappping" y selección 'None'.

  • Identifiquen la columna correspondiente a la especie (son solo las primeras 20 filas, no van a encontrar a E. coli), la cepa y el link a la ubicación del genoma.

6) Ahora que conocen la estructura de la tabla, y sabiendo que tiene muchos mas organismos que E. coli, tenemos que filtrar el archivo y quedarnos solo con nuestro organismo y cepa de interés. Para esto, corran los siguientes comandos uno a la vez:

head -2 assembly_summary.txt > assembly_summary_coli.tsv
grep "Escherichia coli" assembly_summary.txt | grep "BL21" >> assembly_summary_coli.tsv
# Generamos un nuevo archivo con el header de la tabla (que en este caso son 2 filas)
head -2 assembly_summary.txt > assembly_summary_coli.tsv

# Buscamos dentro del archivo las filas que contengan "Escherichia coli" y "BL21" y 
# las agregamos a la nuevo archivo
grep "Escherichia coli" assembly_summary.txt | grep "BL21" >> assembly_summary_coli.tsv

7) Ahora que tenemos y entendemos la tabla con nuestros datos de E. coli la podemos abrir para verla. Van a ver que no hay solo un genoma de E. coli BL21, sino varios, por lo cual nuestro objetivo de crear una tabla de codones acaba de volverse un poco más complicado. Lo que vamos a hacer entonces es bajar todos los genomas de E. coli BL21 que vemos en la tabla.

Sólo para los más curiosos! Si te interesa saber como usamos awk para hacer este paso lean esto:
awk -F "\t" '{if ($12=="Complete Genome" && $11=="latest") {print $20}}' assembly_summary_coli.tsv > ftpdirpaths

Al comando awk lo vimos brevemente al final del TP 1 y sirve para trabajar con tablas en Bash (entre otras cosas). Las diferentes partes de este comando son:

  • -F "\t" indica que el separador de columnas es \t, o sea, Tab
  • $12=="Complete Genome" es una condición que filtra las filas, quedándose solo con aquellas donde la columna 12 (assembly_level) es "Complete Genome"
  • $11=="latest" es una condición que filtra las filas, quedándose solo con aquellas donde la columna 11 (version_status) es "latest"
  • && se denomina and y une ambas condiciones, pidiendo que ambas se cumplan para que la condición total se cumpla
  • {print $20} indica que se va a devolver la columna 20 (ftp_path, contiene el path del genoma, o sea, la carpeta)

Este comando va a crear el archivo ftpdirpaths, que contiene links a las carpetas que contienen los genomas.

  • Investiguen cuantos links quedaron en ftpdirpaths. ¿Entienden por qué? Sino consulten.

Los links que tenemos de momento tienen el formato:

ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/833/145/GCF_000833145.1_ASM83314v1

Sin embargo, estos son links a las carpetas que contienen los genomas. Siguiendo las instrucciones del FAQ de RefSeq podemos crear el link de los genomas, que para el ejemplo anterior sería:

ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/833/145/GCF_000833145.1_ASM83314v1/GCF_000833145.1_ASM83314v1_cds_from_genomic.fna.gz

Donde el nombre del archivo es el nombre de la última carpeta + "_cds_from_genomic.fna.gz"

Los archivos terminados en .fna.gz son secuencias en formato FASTA (f) de nucleótidos (na) comprimidas (gz).

Hay varias formas de crear estos nuevos links. Nosotros lo vamos a hacer de la siguiente manera:

awk -F "/" '{print $0 "/" $10 "_cds_from_genomic.fna.gz"}' ftpdirpaths > ftpfilepaths

Donde:

  • -F "/" indica que el separador de columnas es /. Lo que está haciendo este código es leer nuestros paths como si fueran tablas de varias columnas, haciendo que cada carpeta quede en su propia columna.
  • $0 parecería indicar la columna 0, pero las columnas en awk van de 1 en adelante ($1, $2, etc). El índice $0 es un índice especial que devuelve toda la fila (que en este caso es todo el path a la carpeta del genoma).
  • $10 es la columna 10, la cual contiene el nombre del genoma (es el nombre de la última carpeta en el path).
  • print va a concatenar $0 (el path a la carpeta del genoma), "/" (una barra para separar los directorios), $10 (la primera parte del nombre del archivo a descargar) y "_cds_from_genomic.fna.gz" (la segunda parte del nombre del archivo a descargar). awk va a hacer esto por cada fila del archivo ftpdirpaths.

Una vez que entienden lo que hace este comando abran la terminal y corranló.

Por si se quedaron con curiosidad de el comando que proponía el FAQ de RefSeq

El comando awk que sugeria el FAQ de RefSeq es un poco más complejo, pero llegaba al mismo resultado. Noten que en este comando el archivo tiene la extensión .gbff.gz que hace referencia al formato de GenBank, que no es el con el que vamos a trabajar. Hay que cambiarlo por "cds_from_genomic.fna.gz"

awk 'BEGIN{FS=OFS="/";filesuffix="genomic.gbff.gz"}{ftpdir=$0;asm=$10;file=asm"_"filesuffix;print ftpdir,file}' ftpdirpaths > ftpfilepaths

No es necesario que lo entiendan 100%, pero vamos a aclarar algunas cosas:

  • BEGIN significa que las cosas entre las primeras llaves se van a ejecutar solo una vez, y no una vez por fila (como el resto).
  • FS es una variable interna de awk que indica como se separan las columnas en la tabla a leer (es equivalente a usar -F). La variable OFS indica lo mismo, pero para la salida de awk. Con FS=OFS="/" estamos indicando que ambos serán la barra /. Lo que está haciendo este código es leer nuestros paths como si fueran tablas de varias columnas, haciendo que cada carpeta quede en su propia columna.
  • En filesuffix="cds_from_genomic.fna.gz" está definiendo una variable en la que va a almacenar la cadena de texto que queremos agregar al final de cada link.
  • En ftpdir=$0 está definiendo una variable en la que parece almacenar la columna 0. Ahora bien, las columnas en awk van de 1 en adelante ($1, $2, etc), pero el índice $0 es un índice especial que devuelve toda la fila (que en este caso es todo el path a la carpeta del genoma).
  • En asm=$10 está definiendo una variable en la que va a almacenar la columna 10, la cual contiene el nombre del genoma (es el nombre de la última carpeta en el path).
  • En file=asm"_"filesuffix está definiendo una nueva variable como la concatenación de asm, un guión bajo y filesuffix. Este va a ser el nombre del archivo a descargar (pero todavía le falta el path).
  • print ftpdir,file va a imprimir el valor de ftpdir (el path a la carpeta del genoma) seguido por el valor de file (el nombre del archivo a descargar) por cada fila del archivo ftpdirpaths. La barra entre ambos (/) es agregada automáticamente debido a que declaramos OFS="/" al principio.

RefSeq - Paso 3 - Descargar genomas de E. coli

8) Ya falta poco para tener nuestros genomas, solo hay que descargar todos los links que tenemos adentro del archivo ftpfilepaths.

  • Copiá este archivo a tu carpeta de trabajo (Ej02).

Esto se puede hacer usando el comando wget. Ahora bien, por defecto a wget hay que pasarle un link de descarga como hicimos arriba. Por suerte existe una opción que permite pasarle un archivo de entrada y que descargue todos los links que se encuentran en él.

  • Usen wget -h (mas conciso) o man wget (mas extenso) para ver las diferentes opciones de wget, encuentren la que se usa para pasarle un archivo de entrada (o fichero o input file) con links (o URLs) y usen wget con ftpfilepaths para bajar todos los genomas que seleccionamos.

    Tip

    wget tiene bastantes opciones, asi que para hacerla un poco más fácil sepan que la opción que necesitan es una de las 15 primeras y está en la sección Ficheros de registro y de entrada (o Logging and input file)

Este comando puede tardar un rato en descargar todo y va a bajar 11 archivos con extensión .fna.gz donde .fna es una extensión que hace referencia a que el archivo contiene información de secuencia (similar a FASTA) y .gz es la extensión de los archivos comprimidos de Linux.

Ejercicio 3. Construir tabla de frecuencias de uso de codones

Ahora que tenemos nuestros genomas es momento de usar el comando cusp del que hablamos al principio del ejercicio anterior para transformar nuestros genomas en tablas con frecuencias de uso de codones.

Como tenemos 11 archivos .fna.gz vamos a tener que correr el comando cusp 11 veces, y la mejor forma de hacer esto es creando un script con un ciclo for each que lo haga por nosotros. Este ciclo va a recorrer todos los archivos .fna.gz que acabamos de descargar, los va a descomprimir y va a ejecutar el comando cusp para cada uno.

10) Reemplacen los REEMPLAZAR en el próximo código por lo que sea adecuado para conseguir nuestro objetivo:

REEMPLAZAR

for REEMPLAZAR in REEMPLAZAR
do 
    REEMPLAZAR
done

Sabiendo que un REEMPLAZAR es:

# Creamos una lista que contiene a todos los archivos que empiezan con "GCF" y terminan con ".gz"
lista_de_archivos_genomas=`ls GCF*.gz`

y otro es:

# Descomprimimos el archivo ".gz" y corremos el comando *cusp* para cada $archivo_genoma de la lista
zcat $archivo_genoma | cusp -auto -sequence "stdin" -outfile "${archivo_genoma}.cusp"
  • zcat es un comando que descomprime archivos .gz y devuelve su contenido por consola (similar a cat).
  • -auto hace que cusp use los parámetros por defecto y no nos consulte cuales usar.
  • -sequence "stdin" le esta diciendo a cusp que el genoma se lo estamos dando por la consola (mediante el pipe o |).
  • -outfile "${archivo_genoma}.cusp" define el nombre del archivo de salida de cusp, que en este caso es el nombre del genoma seguido de .cusp. Si bien las llaves no son necesarias en este caso, ayudan a entender donde termina la variable y empieza el string.

    Tip

    Si no les sale pueden ver el for each del Ejercicio 1 para usarlo como base (si bien ese es más complicado)

    Aclaración

    Idealmente habría que sacarle la extensión anterior al archivo (ya que ahora va a quedar .fna.gz.cusp), pero ya tenemos bastante que hacer.

11) Una vez creado el script, córranlo.

Si ven que este script tarda mucho tiempo en correr (varios minutos sin indicar que avanza) lean esto:
  • Cancelen la corrida apretando Ctrl+C en la terminal
  • Usen para la próxima seccion los archivos ecoli_BL21_codon_table_1.cusp y ecoli_BL21_codon_table_2.cusp que se encuentra en sus materiales de trabajo

Comparar tablas de codones

Recordando nuestro objetivo, nosotros queríamos una tabla de codones de E. coli para saber como modificar el ADN de nuestra proteína de interés (VpVan) para que use aquellos codones preferidos por el organismo huésped. En este momento tenemos varias tablas de codones, asi que tenemos que elegir alguna.

Abran uno de los archivos .cusp que acabamos de crear y vean que información tiene:

Ayuda-memoria con aminoácidos y sus abreviaturas
Full Name Abbreviation (3 Letter) Abbreviation (1 Letter)
Alanine Ala A
Arginine Arg R
Asparagine Asn N
Aspartate Asp D
Aspartate or Asparagine Asx B
Cysteine Cys C
Glutamate Glu E
Glutamine Gln Q
Glutamate or Glutamine Glx Z
Glycine Gly G
Histidine His H
Isoleucine Ile I
Leucine Leu L
Lysine Lys K
Methionine Met M
Phenylalanine Phe F
Proline Pro P
Serine Ser S
Threonine Thr T
Tryptophans Trp W
Tyrosine Tyr Y
Valine Val V
  1. ¿Por qué hay más de un codón para cada aminoácido?
  2. ¿Qué indica la columna Fraction?
  3. ¿Qué indica la columna Frequency? (pueden encontrar la respuesta usando tfm cusp, pero está mas claro en la ayuda online)
  4. Ahora abran otro archivo .cusp, ¿notan diferencias entre las frecuencias de uso de codones de los distintos proyectos genoma de E.Coli BL21?

En un principio parecería que ambos archivos .cusp son bastante parecidos, pero queremos estar seguros. EMBOSS tiene un programa llamado codcmp que permite comparar tablas de codones, calculando ciertos estadísticos. El programa se usa así:

codcmp ARCHIVO_CUSP_1 ARCHIVO_CUSP_2 ARCHIVO_SALIDA

12) Usen este comando para comparar los dos archivos .cusp que miraron previamente y guarden la comparación en un archivo llamado cusp_comparison.out.

  • Abran cusp_comparison.out y vean los estadísticos calculados. ¿Son compatibles estos resultados con nuestras observaciones previas de que ambos archivos .cusp son muy parecidos?

Hay entoces una noticia buena y una mala:

Noticia Buena

Todos las tablas de frecuencias de codones son casi idénticas, asi que podemos usar cualquiera de ellas y va a funcionar bien.

  • Aclaración 1: Los resultados de codcmp no alcanzan para decir que las diferencias no son "estadisticamente signficativas" (aunque en este caso es bastante obvio). En el manual de codcmp dan algunas ideas para calcular esto.

  • Aclaración 2: Otra forma de resolver el "problema" de tener muchas tablas de codones podría haber sido calcular una nueva tabla de frecuencias de codones que sea un promedio de todas las anteriores, pero esto es un trabajo complejo y no se amerita hacerlo para este caso debido a los similar que son las diferentes tablas entre sí.

Noticia Mala

Todos las tablas de frecuencias de codones son casi idénticas, asi que podríamos haber bajado solo una de ellas y ahorrarnos bastante trabajo (aunque no teníamos forma de saber esto previamente).

Ejercicio 4. Optimizar secuencia a insertar en base a la tabla de codones

Ya casi estamos. En este momento tenemos la tabla de frecuencia de uso de codones para E. coli BL21 y queremos aplicar dichos codones a las 3 secuencias quiméricas que creamos en el Ejercicio 1, es decir, codificar una secuencia amionacídica de planta en la forma más óptima para su traducción en E. coli.

Para organizar un poco los archivos volvemos a recomendar crear una carpeta para este ejercicio, por ejemplo ~/Documentos/TP_02/EJ_4. Dentro de la carpeta copien los siguientes archivos:

  • VpVAN-FLAG-tag.fasta (creado en el Ejercicio 1)
  • VpVAN-His-tag.fasta (creado en el Ejercicio 1)
  • VpVAN-MBP-tag.fasta (creado en el Ejercicio 1)
  • Elijan alguno de los archivos .cusp creados en el Ejercicio 3, copienlo a la nueva carpeta y cambienlé el nombre a ecoli_BL21_codon_table.cusp.

Ahora bien, para hacer esta optimización de secuencias podemos usar otro de los programas de EMBOSS llamado backtranseq. Este programa toma una secuencia de aminoácidos correspondiente a una proteína de interés y una tabla de frecuencia de uso de codones y usa ambos para hacer una traducción inversa desde la secuencia proteíca hacia la secuencia de ADN que, con mayor probabilidad, le dio origen. Es decir, backtranseq devuelve una secuencia de ADN a partir de una secuencia de aminoácidos. Este comando se usa:

backtranseq -auto -sequence ARCHIVO_PROTEINA_FASTA -cfile ARCHIVO_CUSP -outfile ARCHIVO_SALIDA_ADN_FASTA

13) Corran este comando 3 veces pasándole los archivos correctos y creen los siguientes archivos (si quieren pueden hacer script con un for each, pero no hace falta):

  • Ecoli-DNA-VpVAN-FLAG-tag.fasta
  • Ecoli-DNA-VpVAN-His-tag.fasta
  • Ecoli-DNA-VpVAN-MBP-tag.fasta

Tip

De hacerlo a mano, aca van a tener que ejecutar tres comandos muy similares. Recuerden que pueden usar Up y Down en su terminal para navegar por los ultimos comandos utilizados y modificar lo necesario, así como Tab para autocompletar nombres de archivos. También puede serles útiles la tecla Home (Inicio) y End (Fin) para moverse al principio o al final del comando que están editando.

Ejercicio 5. Agregar enzimas de restricción

El último paso es agregar los sitios de corte de enzimas de restricción a los costados de mi secuencia quimérica, pero antes de eso tengo que asegurarme que dichas enzimas no tengan sitios de corte dentro de mi secuencia. Existe un programa de EMBOSS para hacer esto llamado remap; sin embargo, dicho programa necesita que previamente le hayamos pasado a EMBOSS una base de datos de enzimas de restricción.

14) En los materiales de trabajo van a encontrar dos archivos llamados proto.207 y withrefm.207 que contienen la información para crear la base de datos de enzimas de restricción. Copienlos a la carpeta donde están trabajando y corran el comando:

rebaseextract -infile withrefm.207 -protofile proto.207
En replit: Si les da error...

En replit, tienen que indicarle mediante una variable de entorno donde van a estar ubicados los archivos con los datos de enzimas de restricción. Para esto, ubicados en la carpeta del ejercicio 5, en la consola de replit corran:

mkdir -p EMBOSS_data/REBASE
export EMBOSS_DATA="$(pwd)/EMBOSS_data/REBASE"

Luego, corran el comando del ejercicio.

Info

Solo para que sepan, los archivos proto.207 y withrefm.207 se pueden descargar de aca o aca usando wget (con los links anteriores van a bajar un índice general y luego tienen que pasarle a wget el link de los archivos que quieran). Dependiendo de cuando vayan a esa página puede ser que encuentren versiones incluso mas recientes.

15) Ahora que ya tenemos la base de datos configurada podemos usar remap, pero antes veamos un poco mas información sobre nuestras enzimas de restricción. Usando grep busquen dentro del archivo proto.207 a nuestras enzimas de restricción de interés (BamHI, ApoI y HindIII).

  1. ¿Qué longitud tienen los sitios de restricción de ApoI, BamHI y HindIII?
  2. ¿Qué piensan que significa el símbolo ^ en el sitio de restricción? (pueden buscar información sobre dichas enzimas online y se van a dar cuenta enseguida)
  3. Observe la secuencia de ApoI, ¿nota algo raro? ¿Qué le parece que indica?

Ahora que sabemos un poco más sobre nuestras enzimas vamos a usar el comando remap con las siguientes opciones:

remap -auto -sequence ARCHIVO_ADN_FASTA -width 80 -commercial -sitelen 6 -frame 1 -enzymes all -outfile ARCHIVO_SALIDA_REMAP

Donde:

  • -auto hace que remap use los parámetros por defecto y no nos consulte cuales usar.
  • -width indica el ancho de secuencia a mostrar en el archivo de salida.
  • -commercial analiza solo las enzimas de restricción de uso comercial (entre las que se encuentran nuestras enzimas de interés).
  • -sitelen indica el mínimo de longitud del sitio de restricción (como sabemos que los sitios de restricción de nuestras enzimas de interés tienen 6 aminoácidos ponemos ese número).
  • frame indica el marco de lectura a traducir (ya que el output también va a dar información a nivel proteína). En nuestro caso el frame es 1 (estamos en la hebra codificante y hay que traducir a partir del primer nucleótido).
  • enzymes indica los nombres de las enzimas a probar. Si bien podríamos haber puesto nuestras enzimas de interés, ponemos all para ver más información del output.

Corran este comando 3 veces pasándole los archivos correctos y creen los siguientes archivos:

  • enzimas_FLAG.out
  • enzimas_His.out
  • enzimas_MBP.out

  • ¿Qué le falta a las secuencias?

Respuesta

Le falta la secuencia del codón de STOP después del TAG!

16) Agregá la secuencia faltante después del TAG.

17) Una vez creados, abran los archivos con el Editor de Texto.

  1. ¿Entienden lo que simboliza el archivo?
  2. Busquen nuestras enzimas de restricción de interés.
    • ¿Las encuentran? ¿En que categoría está cada una?
    • ¿Se pueden usar entonces cualquiera de nuestras enzimas de restricción para insertar nuestra secuencia en un plásmido?
  3. ¿Hay algún tag de los tres que estábamos considerando que no se pueda usar debido a las enzimas de restricción que elegimos?
  4. Elijan el tag que quieren usar, copien su construcción Ecoli-DNA-VpVAN-???-tag.fasta a un nuevo archivo y luego cambien el nombre a secuencia_final.fasta.
  5. Abran secuencia_final.fasta en el Editor de Texto y agreguen a mano el sitio de restricción de las enzimas seleccionadas.

¡Felicitaciones, tenemos nuestra secuencia lista para mandar a secuenciar!

Bibliografía

Online