Code covered by the BSD License  

Highlights from
Genomic signature using FCGR

image thumbnail
from Genomic signature using FCGR by Jesús P. Mena-Chalco
Genomic signature using Chaos game representation of frequencies.

fcgr(fastaFile, wordLen)
function M = fcgr(fastaFile, wordLen)
% Genomic signature using Chaos game representation of frequencies
% 
%   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];
    
    % calculamos las frecuencias para cada palabra
    MatrixOfFrecuencies = zeros(size(MatrixOfWords));
    
    for i=1:size(MatrixOfWords,1)
        for j=1:size(MatrixOfWords,1)
            % calculando la frecuencia para la palabra MatrixOfWords(i,j)
            % en la secuencia 'sequence'            
            MatrixOfFrecuencies(i,j) = calculateFrecuencies(sequence, char(MatrixOfWords(i,j)) );
        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