<?php
#    (gH)   -_-  td2.php  ;  TimeStamp (unix) : 27 Mars 2008 vers 10:34

# ce programme s'exécute en ligne de commande seulement et produit le
# fichier-texte td2*.data exploitable par R

mysql_connect("forge","anonymous","anonymous") ;
mysql_select_db("qcmarchi") ;

# détermination de la nature des ponts

$que  = "" ;
$que .= " SELECT pr_id as PRID, " ;
$que .= " IF(pr_nbr_inter+pr_nbr_intra=0,0,1) AS  PONT ,  " ;
$que .= " IF(pr_nbr_intra=0,0,1) AS INTRA, " ;
$que .= " If(pr_nbr_inter=0,0,1) AS INTER" ;
$que .= " FROM dbdbprot " ;
# $que .= " LIMIT 5 " ;

## echo "\n$que\n" ;

$f1 = "td2t1.data" ;
$fh = fopen($f1,"w") ;

fputs($fh,"PRID PONT INTRA INTER\n") ;

$res = mysql_query($que) ;
while ($tdr=mysql_fetch_array($res)) {
  $ligs  = "" ;
  $ligs .= sprintf("P%05d",$tdr["PRID"]) ;
  $ligs .= sprintf("%3d",  $tdr["PONT"]) ;
  $ligs .= sprintf("%3d",  $tdr["INTRA"]) ;
  $ligs .= sprintf("%3d",  $tdr["INTER"]) ;
  $ligs .= "\n" ;
  fputs($fh,$ligs) ;
} ; # fin tant que

fclose($fh) ;

echo " Variables PRID PONT INTRA INTER dans le fichier $f1\n ";

# détermination de la forte présence en C ou G

$que  = "" ;
$que .= " SELECT pr_id as PRID, " ;
$que .= " ch_fasta AS  FASTA   " ;
$que .= " FROM dbdbprot,dbdbchain WHERE pr_id=ch_pr_id " ;
# $que .= " LIMIT 5 " ;

## echo "\n$que\n" ;

$f2 = "td2t2.data" ;
$fh = fopen($f2,"w") ;

fputs($fh,"PRID bcpC bcpG\n") ;
$seuil = 0.05 ;

$res = mysql_query($que) ;
while ($tdr=mysql_fetch_array($res)) {
  $fasta =  $tdr["FASTA"] ;
  # on compte les C et les G
  $cntC = compte("C",$fasta) ;
  $cntG = compte("G",$fasta) ;
  # et on compare au seuil pour dire s'il y a beaucoup de C, de G
  $bcpC = 0 ;
  if ($cntC/strlen($fasta)>$seuil) { $bcpC = 1 ; } ;
  $bcpG = 0 ;
  if ($cntG/strlen($fasta)>$seuil) { $bcpG = 1 ; } ;
  $ligs  = "" ;
  $ligs .= sprintf("P%05d",$tdr["PRID"]) ;
  $ligs .= sprintf("%3d",  $bcpC) ;
  $ligs .= sprintf("%3d",  $bcpG) ;
  $ligs .= "\n" ;
  fputs($fh,$ligs) ;
} ; # fin tant que

fclose($fh) ;

echo " Variables PRID  bcpC bcpG dans le fichier $f2\n ";

##################################################################


function compte($leCar,$laChaine) {

# indique combien de fois on trouve $leCar dans $laChaine

   $lon = strlen($laChaine) ;
   $nbf = 0 ;
   $idc = 0 ;
   while ($idc<$lon) {
         $cc = substr($laChaine,$idc,1) ;
         if ($cc==$leCar) { $nbf++ ; } ;
         $idc++ ;
   } ; # fin de tant que
   return($nbf) ;

} # fin de fonction


?>