Team:Alberta/Project/Modeling/FindEssentialGenes

From 2009.igem.org

%Any single gene knockout resulting in a growth rate less than CutOffCoeff*InitialGrowthRate will be put into a list

function [Essentials,grRatio,grRateKO,grRateWT,hasEffect,fluxSolution] = FindEssentialGenes(Model,CutOffCoeff)

Essentials=cell(1);
b=1;
solution1 = optimizeCbModel(Model, 'max', 'false', 'false');
InitialGrowthRate = solution1.f
CutOffGrowthRate=CutOffCoeff*InitialGrowthRate;
[grRatio,grRateKO,grRateWT,hasEffect,fluxSolution]=singleGeneDeletion(Model);

%This part uses the results of singleGeneDeletion to make a list
%containing all of the genes whose deletion caused a growth rate less than
%CutOffGrowthRate

for a=(1:length(grRateKO))
    if grRateKO(a)<CutOffGrowthRate
        Essentials(b) = Model.genes(a);
        b=b+1;
    end
end

NumberOfEssentialGenes = length(Essentials)
Essentials = Essentials';