Hola,
el pasado 8 de febrero se publicó
en la revista
Nature Chemical Biology (
http://dx.doi.org/10.1038/nchembio.2019)
un artículo donde se describen las bases moleculares de la
reacción de O-fucosilación. Ésta es una modificación postraduccional poco frecuente,
que realizan las enzimas O-fucosiltransferasas, como nos explica la investigadora de nuestro grupo Inmaculada Yruela, una de las autoras del trabajo [reseña completa en
www.eead.csic.es]:
"Esta reacción resulta esencial
en algunas rutas metabólicas de los organismos eucariotas, incluidas las
plantas, para mantener las funciones básicas de las células. El
artículo describe el mecanismo por el cual la enzima O-fucosiltransferasa 2
(POFUT2) reconoce sin errores una secuencia de aminoácidos (TSR) de la proteína
receptora y le transfiere una molécula de azúcar tipo fucosa –así resulta
fucosilada–. Hasta la fecha no se conocía cómo estas enzimas reconocen y se
unen a sus sustratos proteicos. La O-fucosilación es esencial para el correcto
plegamiento y estabilidad del dominio TSR y el reconocimiento molecular de
POFUT2."
Como se ve en el alineamiento, el dominio TSR contiene tres
puentes disulfuro y una secuencia consenso en torno a los dos primeras cisteínas CX{2,3}[S|T]CX{2}G , lo que se llama un motivo, como los del repositorio
Prosite:
Tras alinear algunas secuencias de ejemplo y perfeccionar la expresión regular, ésta se empleó para
identificar todas las secuencias con dominios TSR en los proteomas de Homo sapiens y Caenorhabditis
elegans. Más generalmente, el siguiente trozo de código permite localizar dentro de un fichero FASTA todas las secuencias reconocidas por una expresión regular:
#!/usr/bin/perl
use strict;
# script that takes a FASTA file(s) and scans all protein sequences
# looking for matches of a chosen motif expressed as a regular expression
# 11042015: edited following comments by JF
# constant as indices to access read_FASTA_file arrays
use constant NAME => 0;
use constant SEQ => 1;
#my $motifRE = '.*C[^C]{0,21}.C[^C]{2,6}[S|T].C[^C]{4,75}C[^C]C[^C]{4,15}C.*';
my $motifRE = 'C[^C]{0,21}.C[^C]{2,6}[ST].C[^C]{4,75}C[^C]C[^C]{4,15}C';
if(!@ARGV){ die "# usage: $0 ... \n"; }
else{ print "# motif: $motifRE\n"; }
my ($n_of_matches,@matches) = (0);
foreach my $infile (@ARGV)
{
next if($infile !~ /.fa/);
my (@FASTA,$start,$end,$l);
my $n_of_sequences = -1;
open(FASTA,"<$infile") || die "# cannot read $infile $!:\n";
while()
{
next if(/^$/);
if(/^\>(.*?)[\n\r]/)
{
$n_of_sequences++;
$FASTA[$n_of_sequences][NAME] = $1;
}
else
{
s/[-\s\n.]//g; #s/[\s|\n|\-|\.]//g;
$FASTA[$n_of_sequences][SEQ] .= $_;
}
}
close(FASTA);
foreach my $seq ( 0 .. $n_of_sequences )
{
while($FASTA[$seq][SEQ] =~ m/($motifRE)/gi)
{
#$start=length($`);
#$l=length($1);
#$end=$start+$l;
$start = $-[1];
$end = $+[1];
$l = $end - $start + 1;
print ">$FASTA[$seq][NAME] match=($start,$end,$l)\n$1\n";
}
}
}
Un saludo,
Inma y Bruno