fechaPagina(); exit; } verGetPost(array('submit', 'action', 'mtg', 'ORF', 'popup')); $genopar = new Genopar(__FILE__); if ($popup) echo '
'; else $genopar->abrePagina("Out of Date BLASTs"); if (!$mtg){ /* */ $mtgs = obtemMtgs($genopar); $genopar->abreForm(); echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
"; echo "Assembly: "; echo ""; $genopar->select("mtg", $mtgs, "","", TRUE); echo "
"; $genopar->submit(); echo "
"; $genopar->fechaForm(); if (!$popup) $genopar->fechaPagina(); } echo ' '; if ($action != 'update' && $submit != 'Update BLASTs'){ $genopar->abreBanco(); $q = "SELECT DISTINCT orfId, editor, data FROM edicaoORF WHERE idMontagem='$mtg' AND BLAST_atualizado=0"; $n = $genopar->queryBanco($q); if ($n > 0){ $genopar->abreForm("", "frm"); echo "\n"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; while ($lin = $genopar->getArray()){ $orfPageLink = "anotacaoORF.php?processa=Search&mtg=$mtg&id=".$lin['orfId']."&zoom=10&geraFrames=1"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
";$genopar->input("all", "checkbox", "on", "onClick=\"CheckAll(); return true;\""); echo "ORF IDLast EditorLast Modified in
"; $genopar->input("ORF[".$lin['orfId']."]", "checkbox", "on"); echo ""; echo "".$lin['orfId'].""; echo ""; echo $lin['editor']; echo ""; echo $lin['data']; echo "
\n"; echo "

"; $genopar->submit('Update BLASTs'); echo "

"; $genopar->fechaForm(); $genopar->fechaBanco(); }else echo "

Out of date BLASTs not found for $mtg assembly.

"; }else{ if (is_array($ORF)){ foreach($ORF as $orfId => $value){ $aaDir = "../Fasta/$mtg/ORFs/p/"; $aaFileName = $aaDir."ORF".$id.".fas"; echo "Running BLAST for ORF$orfId..."; ob_flush(); runBlast($genopar, $mtg, $orfId); echo "[Done]
"; ob_flush(); } }else{ preg_match('/[0-9]{4}\.[0-9]{4}/', $ORF, $match); if ($match) $orfId = $match[0]; echo "Running BLAST for ORF$orfId..."; ob_flush(); runBlast($genopar, $mtg, $orfId); echo "[Done]
"; ob_flush(); } echo "

BLASTs successfully updated

"; } if (!$popup) $genopar->fechaPagina(); /*************************************************/ function runBlast($genopar, $mtg, $id){ $aaDir = "../Fasta/$mtg/ORFs/p/"; $aaFileName = $aaDir."ORF".$id.".fas"; $DB_NAME = $genopar->MySQL_Default_DBname; $blastOutDir = "../BlastReports/$mtg"; system("cd ../bin && perl deletaOrfsBlast.pl $DB_NAME $mtg $id"); $genopar->abreBanco(); $sql = "SELECT o.idOrg, t.organism FROM orgsToBlast o, taxonomy t WHERE o.idMontagem='$mtg' AND o.idOrg = t.id"; $genopar->queryBanco($sql); $genopar->fechaBanco(); $orgsToBlast = array(); while($org = $genopar->getArray()){ $blastOutDirOrg = $blastOutDir."/".$org['idOrg']; system("cd ../bin && perl runOrfsBlast.pl $DB_NAME $mtg $aaFileName ../BlastDatabases/".$org['idOrg']."/".$org['idOrg']." \"".$org['organism']."\" $blastOutDirOrg"); } $genopar->abreBanco(); $sql = "SELECT o.idOrg FROM orgsToBlast o WHERE o.idMontagem='$mtg' AND (idOrg = 'PFAM' OR idOrg = 'COG')"; $genopar->queryBanco($sql); $genopar->fechaBanco(); while($banco = $genopar->getArray()){ if ($banco['idOrg'] == 'COG') system("cd ../bin && perl runOrfsBlastCOG.pl $DB_NAME $mtg $aaFileName $blastOutDir"); elseif ($banco['idOrg'] == 'PFAM') system("cd ../bin && perl runOrfsBlastPFAM.pl $DB_NAME $mtg $aaFileName $blastOutDir"); } // system("cd ../bin && perl runOrfsBlastCOG.pl $DB_NAME $mtg $aaFileName $blastOutDir"); // system("cd ../bin && perl runOrfsBlastPFAM.pl $DB_NAME $mtg $aaFileName $blastOutDir"); // UPDATE NA TABELA DE BLASTS DESATUALIZADOS $genopar->abreBanco(); $query = "UPDATE edicaoORF SET BLAST_atualizado=1 WHERE idMontagem='$mtg' AND orfId=$id"; $genopar->queryBanco($query); $genopar->fechaBanco(); } function obtemMtgs($genopar){ $mtgs = array(); $genopar->abreBanco(); $q = "SELECT DISTINCT idMontagem FROM contig"; $n = $genopar->queryBanco($q); if($n > 0) while($res = $genopar->getArray()){ array_push($mtgs, $res['idMontagem']); } $genopar->fechaBanco(); return $mtgs; } ?>