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 "Assembly: ";
echo " | ";
echo "";
$genopar->select("mtg", $mtgs, "","", TRUE);
echo " | ";
echo "
";
echo "";
$genopar->submit();
echo " | ";
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 "| ";$genopar->input("all", "checkbox", "on", "onClick=\"CheckAll(); return true;\""); echo " | ";
echo "ORF ID | ";
echo "Last Editor | ";
echo "Last Modified in | ";
echo "
";
while ($lin = $genopar->getArray()){
$orfPageLink = "anotacaoORF.php?processa=Search&mtg=$mtg&id=".$lin['orfId']."&zoom=10&geraFrames=1";
echo "";
echo "| ";
$genopar->input("ORF[".$lin['orfId']."]", "checkbox", "on");
echo " | ";
echo "";
echo "".$lin['orfId']."";
echo " | ";
echo "";
echo $lin['editor'];
echo " | ";
echo "";
echo $lin['data'];
echo " | ";
echo "
";
}
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;
}
?>