Bienvenido al Renacimiento

Bienvenidos al nuevo Renacimiento, espero que os ayude

martes, 21 de febrero de 2012

Fin

El cuatrimestre ya se acabó para todos, han sido unas semanas de agobio intenso. Exámenes con mucho tiempo para ir más relajado, otros al cual no llegaba sin abandonar por el camino temas y temas todo para poder memorizar la mayor cantidad de texto en el tiempo que tenias.

La asignatura de informática ya se ha acabado (por ahora), y este blog a cumplido su objetivo con muy buen resultado. A partir de ahora este tendrá cambios, nuevos temas, nuevos puntos de vista, incluso me atrevería a decir que una nueva imagen.

Gracias a todos los que nos leyeron y solo decir que volveremos pronto con más noticias y temas de actualidad que nunca. Recordad que este será siempre vuestro Rincón.

martes, 24 de enero de 2012

Aquí tenéis resuelto los ejercicios de la práctica 7:



%1.Realice una función (codon2aa) que reciba como parámetro una cadena de tres nucleótidos(un codón), y lo transforme al aminoácido correspondiente. Dicho aminoácido será el valor devuelto por la función
function aa=codon2aa(codon)
if codon== 'GAT'|codon== 'GAC'
aa='D'
end
if codon== 'CGT'|codon== 'CGC'|codon== 'CGA'|codon== 'CGG'|codon== 'AGA'|codon== 'AGG'
aa= 'R'
end
if codon== 'GGT'|codon== 'GGC' |codon== 'GGA'|codon== 'GGG'
aa='G'
end
if codon== 'GCT'|codon== 'GCC'|codon== 'GCA'|codon== 'GCG'
aa= 'A'
end
if codon== 'TGT'|codon== 'TGC'
aa='C'
end
if codon== 'CAA'|codon== 'CAG'
aa='Q'
end
if codon== 'AAT'|codon== 'AAC'
aa='N'
end
if codon== 'GAA'|codon== 'GAG'
aa='E'
end
if codon== 'CAT'|codon== 'CAC'
aa='H'
end
if codon== 'ATT'|codon== 'ATC'|codon== 'ATA'
aa='I'
end
if codon== 'TTA'|codon== 'TTG'|codon== 'CTT'|codon== 'CTC'|codon== 'CTA'|codon== 'CTG'
aa='L'
end
if codon== 'AAA'|codon== 'AAG'
aa='K'
end
if codon== 'ATG'
aa='M'
end
if codon== 'TTT'|codon== 'TTC'
aa='F'
end
if codon== 'CCT'|codon== 'CCC'|codon== 'CCA'|codon== 'CCG'
aa='P'
end
if codon== 'TCT'|codon== 'TCC'|codon== 'TCA'|codon== 'TCG'|codon== 'AGT'|codon== 'AGC'
aa='S'
end
if codon== 'GTT'|codon== 'GTC'|codon== 'GTA'|codon== 'GTG'
aa='V'
end
if codon== 'TGG'
aa='W'
end
if codon== 'TAT'|codon== 'TAC'
aa='Y'
end
if codon== 'ACT'|codon== 'ACC'|codon== 'ACA'|codon== 'ACG'
aa='T'
end
end

%2.Realice un programa que transforme la cadena de nucleótidos de la parte codificante del gen correspondiente en una cadena aminoácidos (AASEQ).
AASEQ=[]
for i=1:3:length(CDS)
codon(1)=CDS(i)
codon (2)= CDS(i+1)
codon(3)=CDS(i+2)
AASEQ= [AASEQ,codon2aa(codon)]
End


%3.Haga un histograma de los aminoácidos que componen la secuencia AASEQ.
function vect=aacounter(n)
vect=[]
for c=1:20
vect=[vect,0]
end
for c=1:length(n)
if n(c)=='M'
vect(1)=vect(1)+1
end
if n(c)=='L'
vect(2)=vect(2)+1
end
if n(c)=='P'
vect(3)=vect(3)+1
end
if n(c)=='Y'
vect(4)=vect(4)+1
end
if n(c)=='V'
vect(5)=vect(5)+1
end
if n(c)=='S'
vect(6)=vect(6)+1
end
if n(c)=='K'
vect(7)=vect(7)+1
end
if n(c)=='D'
vect(8)=vect(8)+1
end
if n(c)=='L'
vect(9)=vect(9)+1
end
if n(c)=='W'
vect(10)=vect(10)+1
end
if n(c)=='T'
vect(11)=vect(11)+1
end
if n(c)=='N'
vect(12)=vect(12)+1
end
if n(c)=='G'
vect(13)=vect(13)+1
end
if n(c)=='H'
vect(14)=vect(14)+1
end
if n(c)=='E'
vect(15)=vect(15)+1
end
if n(c)=='F'
vect(16)=vect(16)+1
end
if n(c)=='Q'
vect(17)=vect(17)+1
end
if n(c)=='R'
vect(18)=vect(18)+1
end
if n(c)=='I'
vect(19)=vect(19)+1
end
if n(c)=='C'
vect(20)=vect(20)+1
end
end
end
bar(aacounter(AASEQ))



%4. Realice una función (aa2form) que reciba un aminoácido y devuelva su fórmula molecular. Es decir, si por ejemplo realizamos la siguiente llamada aa2form('R'); debe devolver 'C6H14N4O2'
function formula=aa2form(aa)
if aa=='A'
formula=('C3H7N1O2')
end
if aa=='S'
formula=('C3H7N1O3')
end
if aa=='Y'
formula=('C9H11N1O3')
end
if aa=='C'
formula=('C3H7N1O2S')
end
if aa=='W'
formula=('C11H12N2O2')
end
if aa=='G'
formula=('C2H5N1O2')
end
if aa=='P'
formula=('C5H9N1O2')
end
if aa=='M'
formula=('C5H11N1O2S')
end
if aa=='R'
formula=('C6H14N4O2')
end
if aa=='H'
formula=('C6H9N3O2')
end
if aa=='L'
formula=('C6H13N1O2')
end
if aa=='Q'
formula=('C5H10N2O3')
end
if aa=='D'
formula=('C4H7N1O4')
end
if aa=='K'
formula=('C6H14N2O2')
end
if aa=='T'
formula=('C4H9N1O3')
end
if aa=='E'
formula=('C5H9N1O4')
end
if aa=='N'
formula=('C4H8N2O3')
end
if aa=='V'
formula=('C5H11N1O2')
end
if aa=='I'
formula=('C6H13N1O2')
end
end


% 5.Utilizando la función disponible en la plataforma numatoms, calcule el peso molecular de la proteína que forma la secuencia AASEQ
weight=0;
for i=1:length(AASEQ)
formula=aa2form(AASEQ(i))
weightC=numatoms(formula,'C')*12;
weightH=numatoms(formula,'H')*1;
weightO=numatoms(formula,'O')*16;
weightS=numatoms(formula,'S')*32;
weightN=numatoms(formula,'N')*14;
weight=weight+weightC+weightO+weightS+weightN+weightH;
end
disp(weight);

%6.Busque en las bases de datos disponibles en la red, la secuencia de aminoácidos de la proteína homóloga a la que codifica AASEQ en al menos otra especie al homo sapiens y cárguela en la variable AASEQNHS.
%Canis lupus
AASEQNHS='MSVELEEALPLTTAEGAAKKAAKAGGSAALSPSKKKKNNKKKNQPGKYSQLVVETIRRLGERNGSSLAKIYTEAKKVAWFDQQNGRTYLKYSIKALVQNDTLLQVKGTGANGSFKLNRKKLEGGSERRGATAAATAPAPAAHKAKKAAPGPPGPRRADKKPPKGPKAEKRSHKKGAASKKDKGSKAKKAAAAAGKKVKKAAKPSVPKVPKGRK'
%Gallus gallus
AASEQNHS2='MSVDLEEADLPLTEAEEAPLAAEKKGASKKAKAGGSSLSPSKKRKNNKKKNQPGKYSQLVVETIRKLGERNGSSLAKIYNEAKKVAWFDQQNGRTYLKYSIKALVQNDTLLQVKGTGANGSFKLNRKKLEGGGDGAAGG'
%Mus musculus
AASEQNHS3='MSVELEEALPPTSADGTARKTAKAGGSAAPTQPKRRKNRKKNQPGKYSQLVVETIRKLGERGGSSLARIYAEARKVAWFDQQNGRTYLKYSIRALVQNDTLLQVKGTGANGSFKLNRKKLEGGAERRGASAASSPAPKARTAAADRTPARPQPERRAHKSKKAAAAASAKKVKKAAKPSVPKVPKGRK'
% Bos taurus
AASEQNHS4='MSVELEEALPLTTAEGAAKKAAKAGGSAALSPSKKRKNSKKKNQPGKYSQLVVETIRRLGERNGSSLAKIYAEAKKVAWFDQQNGRTYLKYSIKALVQNDTLLQVKGTGANGSFKLNRKKLEGGGGERRGAPAPASAPAPAAHKAKKAAPGAAAPRRADKKPAKGPQPEKRSHKKGAASKKDKGSKAKKAAAAGGKKVKKAAKPSVPKVPKGRK'
%Macaca fascicularis
AASEQNHS5='MSVELEEALPVTTAEGMAKKVTKAGGSAALSPSKKRKNSKKKNQPGKYSQLVVETIRRLGERNGSSLAKIYTEAKKVPWFDQQNGRTYLKYSIKALVQNDTLLQVKGTGANGSFKLNRKKLEGGGERRGAPAAATAPAPTAHKAKKAAPGAAGSRRADKKPARGQKPEQRSHKKGAAAKKDKGGKTKKTAAAGGKKVKKAAKPSVPKVPKGRK'


%7.Realice una función (dotplot) que reciba dos secuencias de aminoácidos y muestre una gráfica de puntos en la que se compare ambas proteínas.
function grafica=dotplot(r,s)
x=[ ];
y=[ ];
for i=1:length(r)
for j=1:length(s)
if r(i)==s(j)
x=[x,i];
y=[y,j];
end
end
end
plot(x,y,'.');
end

lunes, 23 de enero de 2012

Lentillas diabéticas

A pesar de que parezca que empresas enormes como IBM o Microsoft sólo se dedican al negocio de los ordenadores y dispositivos móviles, lo cierto es que gran parte de estas empresas tiene proyectos de investigación que van mucho más allá, tanto relacionados con el medio ambiente como incluso con la salud.
En este último campo, Microsoft parece haber dado un paso adelante para mejorar la vida de los diabéticos con el desarrollo de unas lentillas especiales que funcionan como un glucómetro continuo.
Dentro de su programa Natural User Interface (NUI), Microsoft está buscando como poder conseguir introducir la tecnología en nuestra vida diaria de manera natural y casi sin darnos cuenta.
No es que estén buscando ponernos publicidad , aunque quién sabe, pero de momento se están centrando en el desarrollo de lentillas que permitan crear una experiencia de realidad aumentada continua.
Como consecuencia del desarrollo para mejorar la biocompatibilidad de las mismas, dándoles además energía y conectividad inalámbrica, han desarrollado un glucómetro con un proceso electroquímico basado en una encima sensible a la glucosa embebida en un lentilla con electrodos y radio biocompatibles.
Se conecta con el móvil y permite un registro continuo e indoloro, lo cual es una ventaja increíble con respecto a los métodos actuales

domingo, 8 de enero de 2012

Ejercicio obligatorio resuelto

Aquí tenéis resuelto el ejercicio obligatorio:


Ejercicio 1:

%Apartado a
Matriz1 =[500 503 507 510 515 518 522 525 528 530 533 536 540 543 545 548 550; 0.578 0.650 0.688 0.676 0.697 0.765 0.872 0.907 0.875 0.829 0.769 0.755 0.808 0.852 0.871 0.836 0.776]
abs= Matriz1(2,:) %Obtenemos el vector absorbancia
maximabs=0
for i=1:length(abs)
if abs(i)>maximabs
maximabs=abs(i)
longitud=Matriz1(1,i)
end
end
maximabs %Valor de máxima absorbancia
longitud %Longitud de onda de la max absorbancia
%Apartado b
longonda=Matriz1(1,:) %Vector longitud de onda
plot(longonda,abs) %Gráfica absorbancia frente longitud de onda
hold on
plot(longitud,maximabs,'*r') %Adición de máximo global
%Apartado c
maximolocal=0
for i=2:(length(abs)-1)
if abs(i)>abs(i-1) && abs(i)>abs(i+1)
maximolocal=abs(i)% Máximo local
longlocal=Matriz1(1,i)%Longitud del maximo local
plot(longonda,abs)
hold on %Gráfica de absorbancia
plot(longitud,maximabs,'*r')
hold on % Adición de los máximos locales a la gráfica
plot(longlocal,maximolocal,'*r')
end
end
%Apartado d
minimoabs=maximabs
%Cálculo de minimos de absorbancia con respectiva longitud de onda
for i=1:length(abs)
if abs(i)<minimoabs
minimoabs=abs(i)
longitudmin=Matriz1(1,i)
end
end
minimoabs
longitudmin

Ejercicio 2
%Apartado a
RojoCongo= [400 430 460 490 520 550 580 610 640 670;0.130 0.174 0.242 0.304 0.291 0.151 0.044 0.010 0.005 0.003]
Azulbromotinol=[400 430 460 490 520 550 580 610 640 670; 0.178 0.132 0.091 0.100 0.139 0.220 0.356 0.498 0.372 0.102]
Mezcla= [400 430 460 490 520 550 580 610 640 670; 0.409 0.034 0.025 0.045 0.077 0.117 0.030 0.014 0.006 0.012]
%Máxima y mínima absorbancia y longitud respectiva Rojo Congo
absRC=RojoCongo(2,:) %Vector absorbancia
mxabsRC=0 %Máximo de partida
for i=1:length(absRC)
if mxabsRC<absRC(i)
mxabsRC=absRC(i) %Valor maximo RojoCongo
mxlongRC=RojoCongo(1,i) %Longitud
end
minabsRC=mxabsRC
if minabsRC>absRC(i)
minabsRC=absRC(i) %Valor minimo RojoCongo
minlongRC=RojoCongo(1,i) %Longitud
end
end
%Devolución de resultados
mxabsRC
mxlongRC
minabsRC
minlongRC
%Máxima y mínima absorbancia y longitud respectiva Azul de Bromotinol.
absAB=Azulbromotinol(2,:)%Vector absorbancia
mxabsAB=0%Máximo de partida
for i=1:length(absAB)
if mxabsAB<absAB(i)
mxabsAB=absAB(i)%Valor maximo Azulbromotinol
mxlongAB=Azulbromotinol(1,i)%Longitud
end
minabsAB=mxabsAB
if minabsAB>absAB(i)
minabsAB=absAB(i)%Valor minimo Azubromotinol
minlongAB=Azulbromotinol(1,i)%Longitud
end
end
%Devolución de resultados
mxabsAB
mxlongAB
minabsAB
minlongAB
%Máxima y mínima absorbancia y longitud respectiva Mezcla
absM=Mezcla(2,:)%Vector absorbancia
mxabsM=0
for i=1:length(absM)
if mxabsM<absM(i)
mxabsM=absM(i)%Valor máximo de la mezcla
mxlongM=Mezcla(1,i)%Longitud
end
minabsM=mxabsM
if minabsM>absM(i)
minabsM=absM(i)%Valor minimo de la mezcla
minlongM=Mezcla(1,i)%Longitud
end
end
%Devolución de resultados
mxabsM
mxlongM
minabsM
minlongM
%Apartado b y c
%Máximos y minimos locales de Rojo Congo.
absRC=RojoCongo(2,:)
longRC=RojoCongo(1,:)
maxlocalRC=0%Máximo y minimo de partida
minlocalRC=max(absRC)
for i=2:(length(absRC)-1)
if absRC(i)>absRC(i-1) && absRC(i)>absRC(i+1) %Condicion de máximo local
maxlocalRC=absRC(i)
mxlonglocalRC=RojoCongo(1,i)
plot(longRC,absRC,'-xr')%Gráfica Rojo Congo
xlabel('Longitud de onda')
ylabel('Absorbancia')
grid

end
if absRC(i)<absRC(i-1) && absRC(i)<absRC(i+1)%Condición de minimo local
minlocalRC=absRC(i)
milonglocalRC=RojoCongo(1,i)
end

end

%Máximos y minimos locales de Azul de bromotileno.
absAB=Azulbromotinol(2,:)%Abs Azulbromotinol
longAB=Azulbromotinol(1,:)%Longitud del Azulbromotinol
maxlocalAB=0
minlocalAB=max(absAB)
for i=2:(length(absAB)-1)
if absAB(i)>absAB(i-1) && absAB(i)>absAB(i+1)
maxlocalAB=absAB(i)
mxlonglocalAB=Azulbromotinol(1,i)
hold on
plot(longAB,absAB,'-+b')%Gráfica Azulbromotinol

end
if absAB(i)<absAB(i-1) && absAB(i)<absAB(i+1)
minlocalAB=absAB(i)%Mínimo local
milonglocalAB=Azulbromotinol(1,i)%Longitud

end
end


%Máximo y minimos locales de la mezcla.
absM=Mezcla(2,:)
longM=Mezcla(1,:)
maxlocalM=0
minlocalM=max(absM)
for i=2:(length(absM)-1)
if absM(i)>absM(i-1) && absM(i)>absM(i+1)
maxlocalM=absM(i)
mxlonglocalM=Mezcla(1,i)
hold on
plot(longM,absM,'k')%Gráfica Mezcla

end
if absM(i)<absM(i-1) && absM(i)<absM(i+1)
minlocalM=absM(i) %Mínimo local
milonglocalM=Mezcla(1,i)%Longitud
end
end
legend('RojoCongo','Azulbromotinol','Mezcla') %Leyenda de la gráfica
%Apartado d
hold on
plot(mxlonglocalRC,maxlocalRC,'*r')%Adicion del maximo a la gráfica
hold on
plot(mxlonglocalAB,maxlocalAB,'*b')%Adicion del maximo a la gráfica
hold on
plot(mxlonglocalM,maxlocalM,'*k')%Adicion del maximo a la gráfica