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