Listing du fichier reponseUniprot.php
00001 <?php
00002 ######################################
00003
00004 include("../std.php") ;
00005
00006 ###################################################
00007
00008 function chaineUrl_1($url,$avant,$apres) {
00009
00010 ###################################################
00011
00012 # on parcourt $url et on récupère le texte entre
00013 # les chaines $avant et $apres
00014
00015 $lem = "" ;
00016 $fh = @fopen($url,"r") ;
00017 $continue = 1 ;
00018 // cela permet d'arreter la lecture du fichier dès le premier IPR vu
00019 if (!$fh) {
00020 echo "impossible d'ouvrir l'URL $url\n" ;
00021 return($lem) ;
00022 } ; # finsi
00023
00024 while ((!feof($fh)) and ($continue==1)) {
00025 $lig = fgets($fh, 4096) ;
00026 $idp = strpos($lig,$avant) ;
00027 if ($idp>-1) {
00028 $lig = substr($lig,$idp+strlen($avant)) ;
00029 $jdp = strpos($lig,$apres) ;
00030 $lem = substr($lig,0,$jdp) ;
00031 $continue = 0 ;
00032 } ; # finsi
00033 } ; # fin de tant que
00034 fclose($fh) ;
00035
00036 return($lem) ;
00037
00038 } ; # fin de fonction chaineUrl_1
00039
00040 ###################################################
00041
00042 function exprUrl1($url,$er) {
00043
00044 ###################################################
00045
00046 # on parcourt $url et on récupère le texte entre
00047 # fourni par l'expression régulière $er
00048
00049 $lem = "" ;
00050 $fh = @fopen($url,"r") ;
00051 $continue = 1 ;
00052 if (!$fh) {
00053 return($lem) ;
00054 } ; # finsi
00055
00056 while ((!feof($fh)) and ($continue==1)) {
00057 $lig = fgets($fh, 4096) ;
00058 $idp = preg_match($er,$lig,$tdr) ;
00059 if (count($tdr)>0) {
00060 $lem = $tdr[1] ;
00061 $continue = 0 ;
00062 } ; # finsi
00063 } ; # fin de tant que
00064 fclose($fh) ;
00065
00066 return($lem) ;
00067
00068 } ; # fin de fonction exprUrl1
00069
00070 ###################################################
00071
00072 function xslUrl1($urlxml,$fxsl) {
00073
00074 ###################################################
00075
00076 # on exécute la transformation du fichier $fxsl
00077 # sur le fichier xml issu de l'URL $urlxml
00078
00079 $ipr = "" ;
00080
00081 $fh = @fopen($urlxml,"r") ;
00082 $continue = 1 ;
00083 if (!$fh) {
00084 return($ipr) ;
00085 } ; # finsi
00086
00087 // Chargement du fichier XML
00088
00089 $xml = new domDocument();
00090 $xml -> load($urlxml);
00091
00092 // Chargement du fichier XSL
00093
00094 $xsl = new domDocument();
00095 $xsl -> load($fxsl);
00096
00097 // Nouvelle instance du processeur XSLT
00098
00099 $xslt = new XSLTProcessor();
00100
00101 // Import de la feuille XSL
00102
00103 $xslt -> importStylesheet($xsl);
00104
00105 // Transformation et affichage du résultat
00106
00107 $ipr = $xslt -> transformToXml($xml);
00108
00109 return($ipr) ;
00110
00111 } ; # fin de fonction xslUrl
00112
00113 ###################################################
00114 ###################################################
00115
00116 function chaineUrl_2($url,$avant1,$apres1,$avant2="?",$apres2="!") {
00117
00118 ###################################################
00119
00120 $lem = "" ;
00121 $fh = @fopen($url,"r") ;
00122 if (!$fh) {
00123 return($lem) ;
00124 } ; # finsi
00125 while (!feof($fh)) {
00126 $lem1 = "?" ;
00127 $lem2 = "??" ;
00128 $lig = fgets($fh, 4096) ;
00129 $idp = strpos($lig,$avant1) ;
00130 while ($idp>-1) {
00131 $lig = substr($lig,$idp+strlen($avant1)) ;
00132 $jdp = strpos($lig,$apres1) ;
00133 $lem1 = " ".substr($lig,0,$jdp) ;
00134 $kdp = strpos($lig,$avant2) ;
00135 if ($kdp>-1) {
00136 $lig = substr($lig,$kdp+strlen($avant2)) ;
00137 $ldp = strpos($lig,$apres2) ;
00138 $lem2 = substr($lig,0,$ldp) ;
00139 } ; # fin de si
00140 $lem .= "$lem1 $lem2 ; " ;
00141 $idp = strpos($lig,$avant1) ;
00142 } ; # finsi
00143 } ; # fin de tant que
00144 fclose($fh) ;
00145
00146 return($lem) ;
00147
00148 } ; # fin de fonction chaineUrl_2
00149
00150 ###################################################
00151
00152 function exprUrl2($url,$er) {
00153
00154 ###################################################
00155
00156 $lem = "" ;
00157 $fh = @fopen($url,"r") ;
00158 if (!$fh) {
00159 return($lem) ;
00160 } ; # finsi
00161
00162 $jdp = 0 ;
00163 while (!feof($fh)) {
00164 $lig = fgets($fh, 4096) ;
00165 $idp = preg_match_all($er,$lig,$tdr) ;
00166 if ($idp>0) {
00167 for ($idv=0;$idv<$idp;$idv++) {
00168 $lem1 = $tdr[1][$idv] ;
00169 $lem2 = $tdr[2][$idv] ;
00170 $lem .= "$lem1 $lem2 ; " ;
00171 } ; # fin pour
00172 } ; # finsi
00173 } ; # fin de tant que
00174 fclose($fh) ;
00175
00176 return($lem) ;
00177
00178 } ; # fin de fonction exprUrl2
00179
00180 ###################################################
00181
00182 function xslUrl2($urlxml,$fxsl) {
00183
00184 ###################################################
00185
00186 $ipr = "" ;
00187
00188 $fh = @fopen($urlxml,"r") ;
00189 $continue = 1 ;
00190 if (!$fh) {
00191 return($ipr) ;
00192 } ; # finsi
00193
00194 $xml = new domDocument();
00195 $xml -> load($urlxml);
00196
00197 $xsl = new domDocument();
00198 $xsl -> load($fxsl);
00199
00200 $xslt = new XSLTProcessor();
00201 $xslt -> importStylesheet($xsl);
00202
00203 $ipr = $xslt -> transformToXml($xml);
00204
00205 return($ipr) ;
00206
00207 } ; # fin de fonction xslUrl2
00208
00209 ###################################################
00210
00211 function choixIpr($ldsol) {
00212
00213 ###################################################
00214
00215 $ldsol = trim($ldsol) ;
00216 $lng1 = strlen($ldsol) -1 ;
00217 if (substr($ldsol,$lng1,1)==";") { $ldsol = substr($ldsol,0,$lng1) ; } ;
00218
00219 # on décompose via le point-virgule
00220 # s'il n'ya qu'une seule solution, c'est le bon ipr
00221 # sinon, si on trouve LEA, c'est ce qu'il faut garder
00222 # sinon, enfin, on garde le premier IPR
00223
00224 $tdsol = preg_split("/;/",$ldsol) ;
00225 $lasol = $tdsol[0] ;
00226 $nbe = count($tdsol) ;
00227 if ($nbe>1) {
00228 for ($ids=0;$ids<$nbe;$ids++) {
00229 $solc = $tdsol[$ids] ;
00230 if (strpos($solc,"LEA")>-1) { $lasol = $solc ; } ;
00231 } ; # fin pour
00232 } ; # fin si
00233
00234 $motsol = preg_split("/\s+/",trim($lasol)) ;
00235 $ipr = $motsol[0] ;
00236
00237 return( $ipr) ;
00238
00239 } ; # fin de fonction choixIpr
00240
00241 ###################################################
00242
00243 debutPage("Correspondance uniprot/interpro") ;
00244 debutSection("95%") ;
00245
00246 ######################################
00247
00248 $titre = "Aucun identifiant de protéine fourni." ;
00249 if (isset($_GET["uni_id"])) {
00250 $uni_id = trim($_GET["uni_id"]) ;
00251 if (strlen($uni_id)>0) {
00252 $titre = "Recherche du numéro Uniprot pour la protéine $uni_id" ;
00253 } ; # fin de si
00254 } ; # fin de si
00255
00256 $url_html = "http://www.uniprot.org/uniprot/$uni_id" ;
00257 $url_xml = "http://www.uniprot.org/uniprot/".$uni_id.".xml" ;
00258 $fhtml = href($url_html,$uni_id) ;
00259 $fxml = href($url_xml,$uni_id.".xml") ;
00260
00261 h2($titre) ;
00262 blockquote() ;
00263
00264 #############################################
00265 #############################################
00266
00267 h2("Méthodes pour obtenir le premier numéro IPR","gbleuf") ;
00268 blockquote() ;
00269
00270 ## ------------------------------------------------
00271
00272 h3("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ;
00273
00274 $intpro = chaineUrl_1($url_html,"ac=IPR","\"") ;
00275 p() ;
00276 echo "La réponse est : $intpro " ;
00277 finp() ;
00278
00279 ## ------------------------------------------------
00280
00281 h3("Méthode 2 : expression régulière sur fichier HTML $fhtml") ;
00282
00283 $intpro = exprUrl1($url_html,"/ac=IPR(.*?)\"/") ;
00284 p() ;
00285 echo "La réponse est : $intpro " ;
00286 finp() ;
00287
00288 ## ------------------------------------------------
00289
00290 h3("Méthode 3 : transformation XSL sur fichier XML $fxml") ;
00291
00292 ## ------------------------------------------------
00293
00294 $intpro = xslUrl1($url_xml,"uniprot1.xsl") ;
00295 p() ;
00296 echo "La réponse est : $intpro " ;
00297 finp() ;
00298
00299 finblockquote() ;
00300
00301 #############################################
00302 #############################################
00303
00304 h2("Méthodes pour obtenir le \"bon IPR\" :","gbleuf") ;
00305 h2(" IPRunique, celui pour LEA, le premier vu","gbleuf") ;
00306 blockquote() ;
00307
00308 ## ------------------------------------------------
00309
00310 h3("Méthode 1 : fonctions strpos, substr et strlen sur le fichier HTML $fhtml") ;
00311
00312 $intpro = chaineUrl_2($url_html,"ac=IPR","\"","a>.","<br") ;
00313 p() ;
00314 echo "Réponse(s) : $intpro " ;
00315 finp() ;
00316
00317 ## ------------------------------------------------
00318
00319 h3("Méthode 2 : expression régulière sur fichier HTML $fhtml") ;
00320
00321 $intpro = exprUrl2($url_html,"/ac=IPR(.*?)\".*?a>.(.*?)<br/") ;
00322 p() ;
00323 echo "Réponse(s) : $intpro " ;
00324 finp() ;
00325
00326 ## ------------------------------------------------
00327
00328 h3("Méthode 3 : transformation XSL sur fichier XML $fxml") ;
00329
00330 ## ------------------------------------------------
00331
00332 $intpro = xslUrl2($url_xml,"uniprot2.xsl") ;
00333 p() ;
00334 echo "Réponse(s) : $intpro " ;
00335 finp() ;
00336
00337 ## ------------------------------------------------
00338
00339 $bonipr = choixIpr($intpro) ;
00340 h3("On en déduit le bon numéro IPR : $bonipr") ;
00341
00342 finblockquote() ;
00343
00344 #############################################
00345 #############################################
00346
00347 p() ;
00348 echo " Code-sources : ";
00349 echo href("montresource.php?nomfic=reponseUniprot.php","de la page ","orange_stim nou") ;
00350 echo " ; " ;
00351 echo href("montresource.php?nomfic=uniprot1.xsl","de la transformation XSL 1","orange_stim nou") ;
00352 echo " ; " ;
00353 echo href("montresource.php?nomfic=uniprot2.xsl","de la transformation XSL 2","orange_stim nou") ;
00354 echo "." ;
00355
00356 finp() ;
00357
00358
00359
00360 finblockquote() ;
00361
00362 ######################################
00363 finSection() ;
00364 finPage() ;
00365 ######################################
00366 ?>
La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file
mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)