From e91313cfb07e24eb1dacdcba71891a4b9faaa422 Mon Sep 17 00:00:00 2001 From: Vincent Danjean <Vincent.Danjean@ens-lyon.org> Date: Wed, 31 Oct 2012 15:46:48 +0000 Subject: [PATCH] Remove perl version of ClassicalChi2 git-svn-id: svn+ssh://imag/users/huron/danjean/svnroot/claire/altree/trunk@457 cf695345-040a-0410-a956-b889e835fe2e --- ALTree/to_rewrite.pm | 2 +- progs/altree | 67 -------------------------------------------- 2 files changed, 1 insertion(+), 68 deletions(-) diff --git a/ALTree/to_rewrite.pm b/ALTree/to_rewrite.pm index 1b3097b..8e57c86 100644 --- a/ALTree/to_rewrite.pm +++ b/ALTree/to_rewrite.pm @@ -153,7 +153,7 @@ sub CalculChi2 my($p_value); ($chi2, $chi2invalid, $error, $sum_control, $sum_case)= - ClassicalChi2($tabnodes_a_traiter); + ALTree::CUtils::ClassicalChi2($tabnodes_a_traiter); if ($error != 0) { # TODO: A vérifier : est-ce OK de mettre $significatif à 0 # la valeur est utilisée au retour de cette fonction diff --git a/progs/altree b/progs/altree index 1afc2ca..f1725b1 100755 --- a/progs/altree +++ b/progs/altree @@ -188,73 +188,6 @@ sub CheckCorrespondance ######## PARCOURS ET REMPLISSAGE ARBRE ######### ################################################# -sub ClassicalChi2 -{ - my($tabnodes_a_traiter)=shift; - my($sum_case, $sum_control, $node, $sum_total); - my($chi2)=0; - my($chi2invalid)=0; - foreach $node (@{$tabnodes_a_traiter}) { - if (not defined($node->{"control"})) { - die "arg for ".$node->Name(); - } - $sum_control+=$node->{"control"}; - $sum_case+=$node->{"case"}; - } - $sum_total=$sum_control+$sum_case; - my($ddl)=scalar(@{$tabnodes_a_traiter})-1; # Nb branches -1 - - my($error)=0; - if ($ddl==0) { # 1 seul clade - $error=4; - #Faire un warning si on n'est pas à la racine? - } else { - if ($sum_case==0) { - $error=1; - } elsif ($sum_control==0) { - $error=2; - } else { # Calcul du chi2 - my($m, $c, $t_m, $t_c); - foreach $node (@{$tabnodes_a_traiter}) { - $m=$node->{"case"}; - $c=$node->{"control"}; - if ($m==0 && $c==0) { - my($name)=$node->Name(); - erreur("no case and no control for node $name\n", 1); - } - $t_m=(($m+$c)*$sum_case)/$sum_total; - #print STDERR $node->Name() ," m=$m, t_m=$t_m, c=$c\n"; - $chi2 += (($m-$t_m)*($m-$t_m))/$t_m; - - $t_c=(($m+$c)*$sum_control)/$sum_total; - $chi2 += (($c-$t_c)*($c-$t_c))/$t_c; - if (($t_m <= Seuil::SAMPLESIZE) || - ($t_c <= Seuil::SAMPLESIZE)) { - $chi2invalid++; - } - } - } - } - my ($cchi2, $cchi2invalid, $cerror, $csum_control, $csum_case)= - ALTree::CUtils::ClassicalChi2($tabnodes_a_traiter); - - if ($cchi2 != $chi2) { print STDERR "chi2: $cchi2/$chi2\n"; } - if ($cchi2invalid != $chi2invalid) { - print STDERR "chi2invalid: $cchi2invalid/$chi2invalid\n"; - } - if ($cerror != $error) { - print STDERR "error: $cerror/$error\n"; - } - if ($csum_control != $sum_control) { - print STDERR "sum_control: $csum_control/$sum_control\n"; - } - if ($csum_case != $sum_case) { - print STDERR "sum_case: $csum_case/$sum_case\n"; - } - - return ($chi2, $chi2invalid, $error, $sum_control, $sum_case); -} - #REWRITE: sub CalculChi2 #REWRITE: sub parcours_nosplit_chi2split -- GitLab