from
Genomic signature using FCGR
by Jesús P. Mena-Chalco
Genomic signature using Chaos game representation of frequencies.
|
| fcgr2(fastaFile, wordLen) |
function M = fcgr2(fastaFile, wordLen)
% Genomic signature using Chaos game representation of frequencies (pseudo optimized version)
%
% Author: Jesus Mena
MatrixOfWords = makeMatrixOfWords(wordLen);
% Leemos la sequencia. Cada archivo FASTA solamente muestra un lado (strand)
% de las 2 cintas del ADN. FCGR es dependiente del strand, de esa forma
% en los calculos consideraremos ambos strands.
sequenceA = readFastaFile(fastaFile);
% Las frecuencias que deben ser considerados en los calculos deben de
% corresponder a ambas cintas de ADN, por ello calculamos la secuencia
% complementar. Eso quiere decir:
% si sequence = ATCGCTTA, su secuencia complementar sera TAAGCGAT
% Como fue obtenido eso?
% Recordemos que:
% - A es complemento de T, y viceversa
% - C es complemento de G, y viceversa
%
% Para nuestro ejemplo:
% ATCGCTTA (sentido ->) right strand o 5'
% TAGCGAAT (sentido <-) left strand o 3'
sequenceB = buildComplementarDNA(sequenceA);
% concatemos las 2 cintas en una sola
% sequence = [sequenceA sequenceB];
sequence = [sequenceA];
% inicializamos matriz para el calculo de las frecuencias
MatrixOfFrecuencies = zeros(size(MatrixOfWords));
% inicializacin del pseudo-arbol
for i=1:size(MatrixOfWords,1)
for j=1:size(MatrixOfWords,1)
pathOfTree = 'root';
word = char(MatrixOfWords(i,j));
for a=1:wordLen
pathOfTree = [pathOfTree '.' word(a) ];
end;
eval([pathOfTree '=1;']);
end;
end;
% calculo de las frecuencias para cada palabra en la secuencia dada
n = length(sequence);
possibilities = n-wordLen+1;
for i=1:possibilities
pathOfTree = 'root';
for j=i:i+wordLen-1
pathOfTree = [pathOfTree '.' sequence(j) ];
end;
eval([pathOfTree '=' pathOfTree '+1;']);
end;
% copiamos las frecuencias del rbol para la matriz de Frecuencias
for i=1:size(MatrixOfWords,1)
for j=1:size(MatrixOfWords,1)
pathOfTree = 'root';
word = char(MatrixOfWords(i,j));
for a=1:wordLen
pathOfTree = [pathOfTree '.' word(a) ];
end;
MatrixOfFrecuencies(i,j) = eval(pathOfTree)/possibilities;
end;
end;
M = MatrixOfFrecuencies;
% Mostramos la figura... para posterior analisis...
%figure;
%imagesc(M)
%axis square;
%axis off;
%title(wordLen);
%colorbar;
end
|
|
Contact us at files@mathworks.com