⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caculatei.m

📁 bayes树的针对生物数据剪接位点识别的实现算法
💻 M
字号:
function[h,num_t,num_f]=caculatei(trt,trf,train_t,train_f,l,i,j)

%train_t为正例训练集
%train_f为反例训练集
%l为窗口长度

num_t=zeros(5,5);   %num_t保存的是正例中i,j两个属性之间的转移关系

for m=1:trt
    if     train_t(m,i)=='A'&&train_t(m,j)=='A'
        num_t(1,1)=num_t(1,1)+1;
    elseif train_t(m,i)=='A'&&train_t(m,j)=='C'
        num_t(1,2)=num_t(1,2)+1;
    elseif train_t(m,i)=='A'&&train_t(m,j)=='G'
        num_t(1,3)=num_t(1,3)+1;
    elseif train_t(m,i)=='A'&&train_t(m,j)=='T'
        num_t(1,4)=num_t(1,4)+1;
       
    elseif train_t(m,i)=='C'&&train_t(m,j)=='A'
        num_t(2,1)=num_t(2,1)+1;
    elseif train_t(m,i)=='C'&&train_t(m,j)=='C'
        num_t(2,2)=num_t(2,2)+1;
    elseif train_t(m,i)=='C'&&train_t(m,j)=='G'
        num_t(2,3)=num_t(2,3)+1;
    elseif train_t(m,i)=='C'&&train_t(m,j)=='T'
        num_t(2,4)=num_t(2,4)+1;
        
    elseif train_t(m,i)=='G'&&train_t(m,j)=='A'
        num_t(3,1)=num_t(3,1)+1;
    elseif train_t(m,i)=='G'&&train_t(m,j)=='C'
        num_t(3,2)=num_t(3,2)+1;
    elseif train_t(m,i)=='G'&&train_t(m,j)=='G'
        num_t(3,3)=num_t(3,3)+1;
    elseif train_t(m,i)=='G'&&train_t(m,j)=='T'
        num_t(3,4)=num_t(3,4)+1;

    elseif train_t(m,i)=='T'&&train_t(m,j)=='A'
        num_t(4,1)=num_t(4,1)+1;
    elseif train_t(m,i)=='T'&&train_t(m,j)=='C'
        num_t(4,2)=num_t(4,2)+1;
    elseif train_t(m,i)=='T'&&train_t(m,j)=='G'
        num_t(4,3)=num_t(4,3)+1;
    elseif train_t(m,i)=='T'&&train_t(m,j)=='T'
        num_t(4,4)=num_t(4,4)+1;   
    end
end

for n=1:4
    for m=1:4
        num_t(n,5)=num_t(n,5)+num_t(n,m);
        num_t(5,n)=num_t(5,n)+num_t(m,n);
    end
end

num_f=zeros(5,5);   %num_f保存的是反例中i,j两个属性之间的转移关系

for m=1:trt
    if     train_f(m,i)=='A'&&train_f(m,j)=='A'
        num_f(1,1)=num_f(1,1)+1;
    elseif train_f(m,i)=='A'&&train_f(m,j)=='C'
        num_f(1,2)=num_f(1,2)+1;
    elseif train_f(m,i)=='A'&&train_f(m,j)=='G'
        num_f(1,3)=num_f(1,3)+1;
    elseif train_f(m,i)=='A'&&train_f(m,j)=='T'
        num_f(1,4)=num_f(1,4)+1;
        
    elseif train_f(m,i)=='C'&&train_f(m,j)=='A'
        num_f(2,1)=num_f(2,1)+1;
    elseif train_f(m,i)=='C'&&train_f(m,j)=='C'
        num_f(2,2)=num_f(2,2)+1;
    elseif train_f(m,i)=='C'&&train_f(m,j)=='G'
        num_f(2,3)=num_f(2,3)+1;
    elseif train_f(m,i)=='C'&&train_f(m,j)=='T'
        num_f(2,4)=num_f(2,4)+1;
        
    elseif train_f(m,i)=='G'&&train_f(m,j)=='A'
        num_f(3,1)=num_f(3,1)+1;
    elseif train_f(m,i)=='G'&&train_f(m,j)=='C'
        num_f(3,2)=num_f(3,2)+1;
    elseif train_f(m,i)=='G'&&train_f(m,j)=='G'
        num_f(3,3)=num_f(3,3)+1;
    elseif train_f(m,i)=='G'&&train_f(m,j)=='T'
        num_f(3,4)=num_f(3,4)+1;

    elseif train_f(m,i)=='T'&&train_f(m,j)=='A'
        num_f(4,1)=num_f(4,1)+1;
    elseif train_f(m,i)=='T'&&train_f(m,j)=='C'
        num_f(4,2)=num_f(4,2)+1;
    elseif train_f(m,i)=='T'&&train_f(m,j)=='G'
        num_f(4,3)=num_f(4,3)+1;
    elseif train_f(m,i)=='T'&&train_f(m,j)=='T'
        num_f(4,4)=num_f(4,4)+1;   
    end
end
for n=1:4
    for m=1:4
        num_f(n,5)=num_f(n,5)+num_f(n,m);
        num_f(5,n)=num_f(5,n)+num_f(m,n);
    end
end

for n=1:4
    for m=1:4
        a=num_t(n,m)/trt+trf;
        b=num_t(n,m)/trt;
        c=num_t(n,5)/trt;
        d=num_t(5,m)/trt;
        if(a*b*c*d)==0
            i_t_ij(n,m)=0;
        else
            i_t_ij(n,m)=a*log(b/(c*d));
        end
        a=num_f(n,m)/trt+trf;
        b=num_f(n,m)/trf;
        c=num_f(n,5)/trf;
        d=num_f(5,m)/trf;
        if(a*b*c*d)==0
            i_f_ij(n,m)=0;
        else
            i_f_ij(n,m)=a*log(b/(c*d));
        end
    end
end

h=0;
for n=1:4
    for m=1:4
        h=h+i_t_ij(n,m)+i_f_ij(n,m);
    end
end
h=0-h;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -