% Identifiant de la séquence

ID = 1122283;

 

% URL de la page

urlRoot = ['http://www.ncbi.nlm.nih.gov/entrez/','query.fcgi?cmd=Retrieve&db=nucleotide','&list_uids=%d&dopt=GenBank'];

 

% Utilisation de sprintf pour insérer le numéro ID dans le string url

url = sprintf(urlRoot,ID);

 

% Affichage de la page web

% web(url);

 

% Séquence d'indices des gênes

CDS = '5584..5695,11954..12250,14239..14407,15875..16040,17595..17834,20117..20227';

 

% On place le texte dans Matlab avec la fonction urlread

text = urlread(url);

 

% Utilisation de regexprep pour extraire tout ce qui est après origin et

% jusqu'au symbole de fin //

seq = regexprep(text,'.*?ORIGIN(.*?//).*', '$1','tokenize');

 

% On retire les nombres, les espaces et tous les caractères non désirés

seq = regexprep(seq,'[0-9|\W]','');

 

% seq est maintenant un tablean de caractère de la séquence entière

 

% On transforme les indices ADN en indices Matlab

%geneChunk = regexprep(text,'.*?join\((.*?)\).*','$1', 'tokenize');

%geneChunk = regexprep(geneChunk,'\s','');

geneIndices = str2num(strrep(CDS,'..',':'));

 

% On extrait les gênes

gene = seq(geneIndices);

 

% On remplace les lettres des bases par des chiffres

numseq = (seq=='a') + 2*(seq=='c') + 3*(seq=='g') + 4*(seq =='t');

 

% On établit la matrice des transitions ( 4x4 )

transitions = full(sparse(numseq(1:end-1),numseq(2:end),1));

 

% On passe au taux de transitions

proportions = transitions/(length(seq)-1);

 

% On affiche le taux de transitions C->G

proportions(2,3)

 

% On réalise la même chose pour le gêne seul

numgene = numseq(geneIndices);

geneTransitions = full(sparse(numgene (1:end-1),numgene (2:end),1));

genelen = length(numgene)- 1;

geneProportions = geneTransitions /(genelen);

geneProportions(2,3)

 

% Si on se place 70 nucléotides avant un gêne et qu'on

% réitère l'opération, on voit l'augmentation du taux

% de transitions C->G

upstream = numseq(geneIndices(1)-70:geneIndices(1)-1);

utransitions = full(sparse(upstream(1:end-1),upstream(2:end),1));

utransitions(2,3)/length(upstream)