Commit b2f42397 authored by Jean-Benoist Leger's avatar Jean-Benoist Leger

Initial commit

parents
This diff is collapsed.
This directory contains all the necessary code to simulate networks
This is designed for GNU Octave. Most file are in m-code. Some file are C++ code
for GNU Octave, these files must be compiled for GNU Octave whith mkoctfile
provided by Octave. Most of C++ file need to be linked with the igraph library.
Example:
- mkoctfile kmeansBoucle.cc
- mkoctfile -ligraph guimera.cc
How to use:
To generate parameters:
- write_cst_parameters.m
- write_parameters.m
To generate networks:
- generate_networks.m
To compute all clusterings:
- calc.m
- blind.m
- cst_calc.m
- cst_blind.m
Methods compute clustering:
- eb.m
- guimera.cc
- mcl.m
- mod2.m
- sbmP.m
- sc.m
To compute score:
- score.m
Tools:
- ari.m
- cumtime.m
- doallres.m
- ebC.cc
- generate1network.m
- kmeansA.m
- kmeansBoucle.cc
- loghist.m
- modularity.cc
- uniformiserclassif.m
- write_spm.m
% This function is a GNU Octave function to compute Adjsted Rand-index
% from to classification provided as arguments.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
function r=ari(c1,c2)
c1=uniformiserclassif(c1);
c2=uniformiserclassif(c2);
N1=max(c1);
N2=max(c1);
n= @(i,j) sum((c1==i).*(c2==j));
a= @(i) sum(c1==i);
b= @(i) sum(c2==i);
c2pn = @(k) k*(k-1)/2;
[I,J]=meshgrid(1:N1,1:N2);
tn=sum(arrayfun(@(i,j) c2pn(n(i,j)),I,J)(:));
ta=sum(arrayfun(@(i) c2pn(a(i)),1:N1));
tb=sum(arrayfun(@(i) c2pn(b(i)),1:N2));
K=c2pn(length(c1));
numerateur = (tn-(ta*tb)/K);
denominateur = (.5*(ta+tb)-(ta*tb)/K);
if numerateur==0 && denominateur==0
r=1;
else
r=numerateur/denominateur;
end
end
% This script run clustering method for a unkonown number of groups
% (blind). The results are merged with previous result.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
allres = calc_blind_init(parameters);
% sc
allres{1}.Bw=parcellfun(np,@(n) sc(n.A,0,1,1),networks,'UniformOutput',false);
allres{2}.Bw=parcellfun(np,@(n) sc(n.A,0,2,0),networks,'UniformOutput',false);
allres{1}.Bb=parcellfun(np,@(n) sc(1*(n.A>0),0,1,1),networks,'UniformOutput',false);
allres{2}.Bb=parcellfun(np,@(n) sc(1*(n.A>0),0,2,0),networks,'UniformOutput',false);
% mcl
allres{3}.Bw=parcellfun(np,@(n) mcl(n.A,1,0),networks,'UniformOutput',false);
allres{4}.Bw=parcellfun(np,@(n) mcl(n.A,.1,0),networks,'UniformOutput',false);
allres{3}.Bb=parcellfun(np,@(n) mcl(1*(n.A>0),1,0),networks,'UniformOutput',false);
allres{4}.Bb=parcellfun(np,@(n) mcl(1*(n.A>0),.1,0),networks,'UniformOutput',false);
% eb
allres{5}.Bb=parcellfun(np,@(n) eb(n,1,0),networks,'UniformOutput',false);
allres{5}.Bw=parcellfun(np,@(n) eb(n,0,0),networks,'UniformOutput',false);
% mod
allres{6}.Bw=parcellfun(np,@(n) mod2(n.A,0),networks,'UniformOutput',false);
allres{6}.Bb=parcellfun(np,@(n) mod2(1*(n.A>0),0),networks,'UniformOutput',false);
% sbm
allres{7}.Bw=parcellfun(np,@(n) sbmP(n,0,0),networks,'UniformOutput',false);
allres{7}.Bb=parcellfun(np,@(n) sbmP(n,1,0),networks,'UniformOutput',false);
save -z netdir/blind_results
% This script run clustering method for a unkonown number of groups. The results
% are merged with previous result.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
allres = calc_blind_init(parameters);
% sc
allres{1}.Bw=parcellfun(np,@(n) sc(n.A,n.parameters.g,1,1),networks,'UniformOutput',false);
allres{2}.Bw=parcellfun(np,@(n) sc(n.A,2*n.parameters.g,2,0),networks,'UniformOutput',false);
allres{1}.Bb=parcellfun(np,@(n) sc(1*(n.A>0),n.parameters.g,1,1),networks,'UniformOutput',false);
allres{2}.Bb=parcellfun(np,@(n) sc(1*(n.A>0),2*n.parameters.g,2,0),networks,'UniformOutput',false);
% mcl
allres{3}.Bw=parcellfun(np,@(n) mcl(n.A,1,n.parameters.g),networks,'UniformOutput',false);
allres{4}.Bw=parcellfun(np,@(n) mcl(n.A,.1,2*n.parameters.g),networks,'UniformOutput',false);
allres{3}.Bb=parcellfun(np,@(n) mcl(1*(n.A>0),1,n.parameters.g),networks,'UniformOutput',false);
allres{4}.Bb=parcellfun(np,@(n) mcl(1*(n.A>0),.1,2*n.parameters.g),networks,'UniformOutput',false);
% eb
allres{5}.Bb=parcellfun(np,@(n) eb(n,1,n.parameters.g),networks,'UniformOutput',false);
allres{5}.Bw=parcellfun(np,@(n) eb(n,0,n.parameters.g),networks,'UniformOutput',false);
% mod
allres{6}.Bw=parcellfun(np,@(n) mod2(n.A,n.parameters.g),networks,'UniformOutput',false);
allres{6}.Bb=parcellfun(np,@(n) mod2(1*(n.A>0),n.parameters.g),networks,'UniformOutput',false);
% sbm
allres{7}.Bw=parcellfun(np,@(n) sbmP(n,0,2*n.parameters.g),networks,'UniformOutput',false);
allres{7}.Bb=parcellfun(np,@(n) sbmP(n,1,2*n.parameters.g),networks,'UniformOutput',false);
save -z netdir/calc_results allres
% This function provide a initialized structure for storing results for calc and
% blind function.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
function allres=calc_blind_init(parameters)
allres=cell(7);
for i=1:7
allres{i}.Bb=cell(size(parameters));
allres{i}.Bw=cell(size(parameters));
allres{i}.fb=cell(size(parameters));
allres{i}.fw=cell(size(parameters));
end
end
% This script apply the guimera-like method for all networks in the central point.
%
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
load netdir/cst_networks
t=-cumtime();
res_guimera = parcellfun(4,@(n)uniformiserclassif(guimera(n.A,.99995)),cst_networks,'UniformOutput',false);
t+=cumtime()
save -z netdir/res_guimera res_guimera t
% This script launch all clustering methods on graphs of the central point. For
% a unknown number of groups (blind).
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
allres=cell(7,1);;
% sc
t=cumtime();
allres{1}.cBw=parcellfun(np,@(n) sc(n.A,0,1,1),cst_networks,'UniformOutput',false);
allres{1}.cBwt=cumtime()-t;
t=cumtime();
allres{2}.cBw=parcellfun(np,@(n) sc(n.A,0,2,0),cst_networks,'UniformOutput',false);
allres{2}.cBwt=cumtime()-t;
t=cumtime();
allres{1}.cBb=parcellfun(np,@(n) sc(1*(n.A>0),0,1,1),cst_networks,'UniformOutput',false);
allres{1}.cBbt=cumtime()-t;
t=cumtime();
allres{2}.cBb=parcellfun(np,@(n) sc(1*(n.A>0),0,2,0),cst_networks,'UniformOutput',false);
allres{2}.cBbt=cumtime()-t;
% mcl
t=cumtime();
allres{3}.cBw=parcellfun(np,@(n) mcl(n.A,1,0),cst_networks,'UniformOutput',false);
allres{3}.cBwt=cumtime()-t;
t=cumtime();
allres{4}.cBw=parcellfun(np,@(n) mcl(n.A,.1,0),cst_networks,'UniformOutput',false);
allres{4}.cBwt=cumtime()-t;
t=cumtime();
allres{3}.cBb=parcellfun(np,@(n) mcl(1*(n.A>0),1,0),cst_networks,'UniformOutput',false);
allres{3}.cBbt=cumtime()-t;
t=cumtime();
allres{4}.cBb=parcellfun(np,@(n) mcl(1*(n.A>0),.1,0),cst_networks,'UniformOutput',false);
allres{4}.cBbt=cumtime()-t;
% eb
t=cumtime();
allres{5}.cBb=parcellfun(np,@(n) eb(n,1,0),cst_networks,'UniformOutput',false);
allres{5}.cBbt=cumtime()-t;
t=cumtime();
allres{5}.cBw=parcellfun(np,@(n) eb(n,0,0),cst_networks,'UniformOutput',false);
allres{5}.cBwt=cumtime()-t;
% mod
t=cumtime();
allres{6}.cBw=parcellfun(np,@(n) mod2(n.A,0),cst_networks,'UniformOutput',false);
allres{6}.cBwt=cumtime()-t;
t=cumtime();
allres{6}.cBb=parcellfun(np,@(n) mod2(1*(n.A>0),0),cst_networks,'UniformOutput',false);
allres{6}.cBbt=cumtime()-t;
% sbm
t=cumtime();
allres{7}.cBb=parcellfun(np,@(n) sbmP(n,1,0),cst_networks,'UniformOutput',false);
allres{7}.cBbt=cumtime()-t;
t=cumtime();
allres{7}.cBw=parcellfun(np,@(n) sbmP(n,0,0),cst_networks,'UniformOutput',false);
allres{7}.cBwt=cumtime()-t;
save -z netdir/cst_blind_results
% This script launch all clustering methods on graphs of the central point. For
% a known number of groups.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
allres=cell(7,1);
% sc
t=cumtime();
allres{1}.cfw=parcellfun(np,@(n) sc(n.A,n.parameters.g,1,1),cst_networks,'UniformOutput',false);
allres{1}.cfwt=cumtime()-t;
t=cumtime();
allres{2}.cfw=parcellfun(np,@(n) sc(n.A,2*n.parameters.g,2,0),cst_networks,'UniformOutput',false);
allres{2}.cfwt=cumtime()-t;
t=cumtime();
allres{1}.cfb=parcellfun(np,@(n) sc(1*(n.A>0),n.parameters.g,1,1),cst_networks,'UniformOutput',false);
allres{1}.cfbt=cumtime()-t;
t=cumtime();
allres{2}.cfb=parcellfun(np,@(n) sc(1*(n.A>0),2*n.parameters.g,2,0),cst_networks,'UniformOutput',false);
allres{2}.cfbt=cumtime()-t;
% mcl
t=cumtime();
allres{3}.cfw=parcellfun(np,@(n) mcl(n.A,1,n.parameters.g),cst_networks,'UniformOutput',false);
allres{3}.cfwt=cumtime()-t;
t=cumtime();
allres{4}.cfw=parcellfun(np,@(n) mcl(n.A,.1,2*n.parameters.g),cst_networks,'UniformOutput',false);
allres{4}.cfwt=cumtime()-t;
t=cumtime();
allres{3}.cfb=parcellfun(np,@(n) mcl(1*(n.A>0),1,n.parameters.g),cst_networks,'UniformOutput',false);
allres{3}.cfbt=cumtime()-t;
t=cumtime();
allres{4}.cfb=parcellfun(np,@(n) mcl(1*(n.A>0),.1,2*n.parameters.g),cst_networks,'UniformOutput',false);
allres{4}.cfbt=cumtime()-t;
% eb
t=cumtime();
allres{5}.cfb=parcellfun(np,@(n) eb(n,1,n.parameters.g),cst_networks,'UniformOutput',false);
allres{5}.cfbt=cumtime()-t;
t=cumtime();
allres{5}.cfw=parcellfun(np,@(n) eb(n,0,n.parameters.g),cst_networks,'UniformOutput',false);
allres{5}.cfwt=cumtime()-t;
% mod
t=cumtime();
allres{6}.cfw=parcellfun(np,@(n) mod2(n.A,n.parameters.g),cst_networks,'UniformOutput',false);
allres{6}.cfwt=cumtime()-t;
t=cumtime();
allres{6}.cfb=parcellfun(np,@(n) mod2(1*(n.A>0),n.parameters.g),cst_networks,'UniformOutput',false);
allres{6}.cfbt=cumtime()-t;
% sbm
t=cumtime();
allres{7}.cfb=parcellfun(np,@(n) sbmP(n,1,2*n.parameters.g),cst_networks,'UniformOutput',false);
allres{7}.cfbt=cumtime()-t;
t=cumtime();
allres{7}.cfw=parcellfun(np,@(n) sbmP(n,0,2*n.parameters.g),cst_networks,'UniformOutput',false);
allres{7}.cfwt=cumtime()-t;
save -z netdir/cst_calc_results
% This function give the cumulated CPU time of the process and its dead
% children. Usefull to count the time in a machine which run differents tasks in
% the same time. Works only on system which have a /proc mount (Linux).
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
function ct=cumtime()
[status,output]=system('echo $PPID');
pid=str2num(output);
[status,output]=system('getconf CLK_TCK');
clk_tck=str2num(output);
[status,output]=system(['cat /proc/',num2str(pid),'/stat | cut -d " " -f 14-17']);
ct=(sum(str2num(output)))/clk_tck;
end
% This script merge results from calc/blind/cst_calc/cst_blind scripts.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their
% requirements in conditions enabling the security of their systems and/or
% data to be ensured and, more generally, to use and operate it in the
% same conditions as regards security.
%
% The fact that you are presently reading this means that you have had
% knowledge of the CeCILL-B license and that you accept its terms.
%
allres=cell(7,1);
allres{1}.legend='NSC';
allres{1}.shs=0;
allres{2}.legend='ASC';
allres{2}.shs=1;
allres{3}.legend='MCL';
allres{3}.shs=0;
allres{4}.legend='MCL_{1/10}';
allres{4}.shs=1;
allres{5}.legend='EB';
allres{5}.shs=0;
allres{6}.legend='Mod';
allres{6}.shs=0;
allres{7}.legend='SBM';
allres{7}.shs=1;
for i=1:7
allres{i}.shortlegend = allres{i}.legend;
end
function a1=fusionner(a1,a2)
champs={'cfw','cfwt','cfb','cfbt','cBw','cBwt','cBb','cBbt','fw','fb','Bw','Bb'};
for i=1:7
for nc=1:length(champs)
if length(a2{i})>0
if any(cellfun(@(x)strcmp(champs{nc},x),fieldnames(a2{i})))
if any(cellfun(@(x)strcmp(champs{nc},x),fieldnames(a1{i})))
r1=getfield(a1{i},champs{nc});
r2=getfield(a2{i},champs{nc});
for k=1:max(length(r1),length(r2))
if length(r2{k})>0
r1{k}=r2{k};
end
end
a1{i}=setfield(a1{i},champs{nc},r1);
else
a1{i}=setfield(a1{i},champs{nc},getfield(a2{i},champs{nc}));
end
end
end
end
end
end
allres=fusionner(allres,load('netdir/calc_results').allres);
allres=fusionner(allres,load('netdir/blind_results').allres);
allres=fusionner(allres,load('netdir/cst_calc_results').allres);
allres=fusionner(allres,load('netdir/cst_blind_results').allres);
allres = allres([2,7,4,3,1,6,5]);
save -z netdir/allres allres
% This function apply edge-betweeness on a given graph. The function ebC is
% used. If the given number of groups is null, the maximum of modularity is
% choosen.
% Copyright 2012-2013 INRA, France, Jean-Benoist Leger
% <jbleger@bordeaux.inra.fr>
%
% This software is a computer program whose purpose is to simulated
% ecological bipartite graphs, apply clustering methods on these graphs.
%
% This software is governed by the CeCILL-B license under French law and
% abiding by the rules of distribution of free software. You can use,
% modify and/ or redistribute the software under the terms of the
% CeCILL-B license. The licence can be found in the LICENCE file in the
% root directory.
%
% As a counterpart to the access to the source code and rights to copy,
% modify and redistribute granted by the license, users are provided only
% with a limited warranty and the software's author, the holder of the
% economic rights, and the successive licensors have only limited
% liability.
%
% In this respect, the user's attention is drawn to the risks associated
% with loading, using, modifying and/or developing or reproducing the
% software by the user in light of its specific status of free software,
% that may mean that it is complicated to manipulate, and that also
% therefore means that it is reserved for developers and experienced
% professionals having in-depth computer knowledge. Users are therefore
% encouraged to load and test the software's suitability as regards their