PageRenderTime 47ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/scripts/add_entry_v2

https://bitbucket.org/JnWng/viperdb-analysis
PHP | 631 lines | 511 code | 65 blank | 55 comment | 81 complexity | a0d4b3dcc0d7deb8ad7417862b486955 MD5 | raw file
  1. #!/usr/bin/php -q
  2. <?php
  3. include("viper_connect.php");
  4. include("fetch_info.php");
  5. include("cli_compatibility.php");
  6. function field_input($name, $default) {
  7. // if($default==NULL) $default="NA";
  8. print "$name [$default]: ";
  9. $value = trim(fgets(STDIN));
  10. if(!$value) $value = $default;
  11. return $value;
  12. }
  13. $admin_base_dir = "/usr/people/viperdb/www/html/Admin";
  14. system("clear");
  15. print "\nThis is add_entry. Always press enter for [default] value.\n\n";
  16. #$database = field_input("Database to use:", "viperdb");
  17. #$database = trim($database);
  18. $server= "viperdb";
  19. $result = @mysql_pconnect($server, "viperdbadmin", "ccmv1m4x");
  20. if(!$result) {
  21. print "Failed to connect to database $database.\n";
  22. exit();
  23. }
  24. $database = "viperdb";
  25. if(!mysql_select_db($database)) {
  26. print "Failed to select database $database.\n";
  27. exit();
  28. }
  29. print "Enter entry (PDB) id for new entry: ";
  30. $vdb = trim(fgets(STDIN));
  31. $vdb = strtolower($vdb);
  32. $query = "select entry_key from MMS_ENTRY where id = '$vdb'";
  33. $result = mysql_query($query);
  34. $entry_exists = mysql_num_rows($result);
  35. #if it exists delete?
  36. if($entry_exists){
  37. print " WARNING: Entry $vdb already is in the db.\n";
  38. print " The entry WILL BE DELETED if you press 'Enter'. Ctrl-C to quit.\n";
  39. fgets(STDIN);
  40. $delete_entry = field_input(" Are you sure you want to delete entry $vdb (Y|N)", "N");
  41. if($delete_entry=="Y"){
  42. $row = mysql_fetch_array($result);
  43. $entry_key = $row[0];
  44. mysql_free_result($result);
  45. $cmd="./delete_entry.pl -d $database -e $entry_key";
  46. system($cmd);
  47. }
  48. else{ print "\nThank you for using add_entry\n";exit(); }
  49. }
  50. #if it doesn't exist create
  51. else{
  52. print " Entry $vdb is new\n";
  53. }
  54. $cmd="./pdbase_batch $vdb";
  55. print "\n Creating it in db: '$cmd'\n";
  56. $output = array();
  57. $return_var = 0;
  58. $failed=0;
  59. exec($cmd, $output, $return_var);
  60. //echo "\n return val: $return_var\n"; /* 126 */
  61. foreach($output as $o){
  62. echo "$o\n";
  63. $string = "FAILED";
  64. $container = $o;
  65. if(strstr($container,$string)) {
  66. $failed=1;
  67. } else {
  68. }
  69. }
  70. if($failed){ print "\n\nSorry, something seems to have failed.\n\n"; exit();}
  71. $result = mysql_query($query);
  72. $row = mysql_fetch_array($result);
  73. $entry_key = $row[0];
  74. mysql_free_result($result);
  75. print " New entry key: $entry_key\n\n";
  76. #------------------ viper table ---------------------
  77. #$pdb = field_input("PDB ID", NULL);
  78. $pdb = field_input("PDB ID", $vdb);
  79. $name = field_input("Name", fetchName($entry_key));
  80. $pubmed = field_input("Pubmed ID", fetchCitation($entry_key, $pdb));
  81. update_STRUCT_REF($entry_key);
  82. $taxa = fetchTaxa($entry_key);
  83. $taxinfo = split_taxastring($taxa);
  84. if(isset($taxinfo['genome']))
  85. $genome = field_input("\nGenome", $taxinfo['genome']);
  86. else {
  87. print " ... no accession code or server error ...";
  88. $genome = field_input("\nGenome", "NA");
  89. }
  90. if(isset($taxinfo['family']))
  91. $family = field_input("Family", $taxinfo['family']);
  92. else $family = field_input("Family", "NA");
  93. if(isset($taxinfo['genus']))
  94. $genus = field_input("Genus", $taxinfo['genus']);
  95. else $genus = field_input("Genus", "NA");
  96. print "Enter comma separated list of know hosts for this entry\n";
  97. print "Possible options include: Plant,Archea,Yeast,Bacteria,Insect,Animal,etc.\n";
  98. $hosts = field_input("Hosts", "NA");
  99. $resolution = field_input("Resolution", fetchResolution($entry_key));
  100. $serotype = field_input("Serotype (0 if unique, else 1)", 0);
  101. if($serotype) {
  102. //$unique_relative_id = field_input("Unique Relative ID", NULL);
  103. $unique_relative_id = field_input("Unique Relative ID", "NA");
  104. }
  105. else{
  106. $unique_relative_id = $vdb;
  107. }
  108. //$lattice = field_input("Lattice", NULL);
  109. $lattice = field_input("Lattice", "NA");
  110. $layers = field_input("Layers", 1);
  111. // Deposition date extracted from PDB website
  112. print "\nDo you want me to get the deposition date from the PDB website?\n";
  113. $fetch_depo_date = field_input("(Y|N)", "Y");
  114. if($fetch_depo_date == "Y"){
  115. $cmd="./get_deposition_date.sh ".$vdb."|grep '>>'|awk '{print $2}'";
  116. //print $cmd;
  117. $date=system($cmd);
  118. }
  119. else {
  120. print "Then please check http://www.rcsb.org/pdb/explore/explore.do?structureId=$vdb\n";
  121. $date="NA";
  122. }
  123. $date=field_input("Deposition Date", $date);
  124. system("clear");
  125. print "\nThank you. Now select an option:\n";
  126. print " [1] Use viperize to generate PDB to VIPER matrix\n";
  127. print " [2] Read PDB to VIPER matrix from viper.mtx (file must exist)\n";
  128. print " [3] Use Unit Matrix\n";
  129. $use_viperize=field_input("default ", 1);
  130. $matrix = array();
  131. switch($use_viperize){
  132. case 1:
  133. exec("/var/www/html/Admin/viperize /var/www/html/Viperdb/Entries/pdb/$vdb.pdb", $matrix);
  134. break;
  135. case 2:
  136. exec("/bin/cat viper.mtx", $matrix);
  137. break;
  138. case 3:
  139. exec("/bin/cat unit.mtx", $matrix);
  140. break;
  141. }
  142. print "$matrix[0]\n$matrix[1]\n$matrix[2]\n";
  143. $line1 = preg_split("/\s+/", trim($matrix[0]));
  144. $line2 = preg_split("/\s+/", trim($matrix[1]));
  145. $line3 = preg_split("/\s+/", trim($matrix[2]));
  146. print "\nPDB to VIPER matrix used is: \n";
  147. print "$line1[0] $line1[1] $line1[2]\n";
  148. print "$line2[0] $line2[1] $line2[2]\n";
  149. print "$line3[0] $line3[1] $line3[2]\n";
  150. print "$line1[3] $line2[3] $line3[3]\n";
  151. print "\nYou might want to check if this matrix gives the right VIPERdb orientation.\nUse it to transform the original PDB coordinates and look at the final structure.\nPress enter to continue. ";
  152. fgets(STDIN);
  153. #-------------------- layer and layer_chain --------------
  154. $tnumbers = array();
  155. $layer_names = array();
  156. $layer_ids = array();
  157. $sub_names = array();
  158. $min_ds = array();
  159. $ave_ds = array();
  160. $max_ds = array();
  161. $chain_key = array();
  162. $is_T3=0;
  163. $correct_T3="N";
  164. $i = 0;
  165. while($i < $layers) {
  166. $this_layer=$i+1;
  167. system("clear");
  168. print "\nInformation for layer $this_layer:\n";
  169. $tnumbers[$i] = field_input("T-Number (i.e. 1,3,pT3,etc)", 1);
  170. if($tnumbers[$i]==3)$is_T3=1;
  171. if($layers > 1) {
  172. if($this_layer == 1) {
  173. $defname = "inner";
  174. $defid = $vdb."_inner";
  175. }
  176. else {
  177. $defname = "outer";
  178. $defid = $vdb."_outer";
  179. }
  180. $layer_names[$i] = field_input("Layer Name (outer/inner)", $defname);
  181. $layer_ids[$i] = field_input("Layer ID (i.e. 1EJ6_INNER)", $defid);
  182. $sub_names[$i] = field_input("Subunit Name (i.e. VP7)", "NA");
  183. }
  184. #print possible chain options
  185. print "\nAssociate current layer with one or more entities listed below: \n";
  186. $results = mysql_query("select entity_key, type, pdbx_description, pdbx_fragment from ENTITY where entry_key='$entry_key'");
  187. $num_rows = mysql_num_rows($results);
  188. if($num_rows > 0) {
  189. $ent_tmp="";
  190. while($row = mysql_fetch_array($results)) {
  191. print "-- $row[entity_key] : $row[type], $row[pdbx_description]\n";
  192. $ent_tmp .= $row['entity_key'] . " ";
  193. }
  194. $entities_r = field_input("Entities (select #'s from above)", rtrim($ent_tmp));
  195. $entities = preg_split("/\s+/", trim($entities_r));
  196. $chain_key[$i] = $entities;
  197. $i++;
  198. }
  199. else {
  200. print "WARNING: Something wrong happened, couldn't find an entity_key for entry_key $entry_key layer $i\n";
  201. }
  202. }
  203. if($is_T3) $correct_T3 = field_input("Correct for T3 (Y|N)", "N");
  204. if($correct_T3 == "Y"){
  205. # VMAT CORRECTION for T=3 Entries
  206. $m1[0]= 0.30902; $m1[1]= 0.80902; $m1[2]=-0.50000;
  207. $m2[0]=-0.80902; $m2[1]= 0.50000; $m2[2]= 0.30902;
  208. $m3[0]= 0.50000; $m3[1]= 0.30902; $m3[2]= 0.80902;
  209. # 0.000000000 0.000000000 0.000000000
  210. $ret1[0] = $m1[0]*$line1[0]+$m1[1]*$line2[0]+$m1[2]*$line3[0];
  211. $ret1[1] = $m1[0]*$line1[1]+$m1[1]*$line2[1]+$m1[2]*$line3[1];
  212. $ret1[2] = $m1[0]*$line1[2]+$m1[1]*$line2[2]+$m1[2]*$line3[2];
  213. $ret2[0] = $m2[0]*$line1[0]+$m2[1]*$line2[0]+$m2[2]*$line3[0];
  214. $ret2[1] = $m2[0]*$line1[1]+$m2[1]*$line2[1]+$m2[2]*$line3[1];
  215. $ret2[2] = $m2[0]*$line1[2]+$m2[1]*$line2[2]+$m2[2]*$line3[2];
  216. $ret3[0] = $m3[0]*$line1[0]+$m3[1]*$line2[0]+$m3[2]*$line3[0];
  217. $ret3[1] = $m3[0]*$line1[1]+$m3[1]*$line2[1]+$m3[2]*$line3[1];
  218. $ret3[2] = $m3[0]*$line1[2]+$m3[1]*$line2[2]+$m3[2]*$line3[2];
  219. $ret1[3] = $m1[0]*$line1[3]+$m1[1]*$line2[3]+$m1[2]*$line3[3];
  220. $ret2[3] = $m2[0]*$line1[3]+$m2[1]*$line2[3]+$m2[2]*$line3[3];
  221. $ret3[3] = $m3[0]*$line1[3]+$m3[1]*$line2[3]+$m3[2]*$line3[3];
  222. $line1[0]=$ret1[0];
  223. $line1[1]=$ret1[1];
  224. $line1[2]=$ret1[2];
  225. $line1[3]=$ret1[3];
  226. $line2[0]=$ret2[0];
  227. $line2[1]=$ret2[1];
  228. $line2[2]=$ret2[2];
  229. $line2[3]=$ret2[3];
  230. $line3[0]=$ret3[0];
  231. $line3[1]=$ret3[1];
  232. $line3[2]=$ret3[2];
  233. $line3[3]=$ret3[3];
  234. print "\n\n-- VMAT CORRECTION done:\n\n";
  235. print "$line1[0] $line1[1] $line1[2]\n";
  236. print "$line2[0] $line2[1] $line2[2]\n";
  237. print "$line3[0] $line3[1] $line3[2]\n";
  238. print "$line1[3] $line2[3] $line3[3]\n";
  239. }
  240. else print "\n\n-- No T=3 VMAT CORRECTION made\n";
  241. print "\n\nPress 'Enter' to continue\n";
  242. fgets(STDIN);
  243. system("clear");
  244. print "\nChecking for changes in chain IDs:\n";
  245. # check if chain id's have changed from cif file (this info is already in the database)
  246. $chain_ID_changed = 0;
  247. $q = "select distinct auth_asym_id,label_asym_id,pdbx_description from ATOM_SITE,ENTITY where ATOM_SITE.entry_key = ENTITY.entry_key and label_entity_key = entity_key
  248. and ATOM_SITE.entry_key = $entry_key and label_asym_id is not NULL";
  249. $result = mysql_query($q);
  250. $num_rows = mysql_num_rows($result);
  251. echo "\n\n$num_rows rows returned:\n\n";
  252. while($row = mysql_fetch_array($result)){
  253. $auth=$row['auth_asym_id'];
  254. $label=$row['label_asym_id'];
  255. $descr=$row['pdbx_description'];
  256. if ($auth != $label) {
  257. $chain_ID_changed = 1;
  258. print "\nWARNING!!";
  259. print "\nOriginal chain ID $auth ($descr) found in PDB HAS BEEN CHANGED in CIF File to $label,\n";
  260. print "\nNOTE: As a standard procedure, WATER asym_id HAS to be set as 'W' and METALS to 'M'. If this was not done automatically, please do it manually now.\n\n";
  261. print "What do you want me to do?:\n";
  262. print " [1] Change it back to $auth\n";
  263. print " [2] Provide your own label\n";
  264. print " [3] It's fine, I know what I'm doing.\n";
  265. $asym_id_changed=field_input("default ", 1);
  266. switch($asym_id_changed){
  267. case 1:
  268. $cmd="./rename_chain.pl $entry_key A $auth $auth";
  269. system($cmd);
  270. break;
  271. case 2:
  272. $new_label=field_input("Enter new Label ", "W");
  273. $cmd="./rename_chain.pl $entry_key A $auth $new_label";
  274. system($cmd);
  275. break;
  276. case 3:
  277. print "I hope you're right... left as is.\n\n";
  278. break;
  279. }
  280. }
  281. else {
  282. print "Chain ID $auth: ($descr) --No change found\n";
  283. }
  284. }
  285. print "\nPress 'Enter' to continue\n";
  286. fgets(STDIN);
  287. #----------------------------------------------------------------------------
  288. system("clear");
  289. #insert entry into database
  290. print "\nWe are ready to insert data into viperdb. Press 'Enter', or 'Ctrl+C' to quit.\n";
  291. fgets(STDIN);
  292. #insert viper
  293. $query =
  294. "INSERT INTO viper (
  295. entry_key, entry_id, name, genome, genus, family, host,
  296. serotype, unique_relative_id, layers, matrix_0_0, matrix_0_1,
  297. matrix_0_2, matrix_1_0, matrix_1_1, matrix_1_2, matrix_2_0,
  298. matrix_2_1, matrix_2_2, vector_0, vector_1, vector_2,
  299. times_viewed,private
  300. )
  301. VALUES(
  302. '$entry_key', '$vdb', '$name', '$genome', '$genus', '$family','$hosts',
  303. '$serotype', '$unique_relative_id', '$layers', $line1[0],
  304. $line1[1], $line1[2], $line2[0], $line2[1], $line2[2], $line3[0],
  305. $line3[1], $line3[2], $line1[3], $line2[3], $line3[3],
  306. 0,0
  307. )";
  308. $results = mysql_query($query);
  309. if(!$results) {
  310. print "\n\n\nERROR: Insert failed. " .mysql_error(). "\n\n\n";
  311. exit();
  312. }
  313. #update possible NULL fields
  314. if($pdb) {
  315. $query = "UPDATE viper SET pdb_id='$pdb' where entry_key='$entry_key'";
  316. mysql_query($query);
  317. }
  318. if($pubmed) {
  319. $query = "UPDATE viper SET pubmed_id='$pubmed' where entry_key='$entry_key'";
  320. mysql_query($query);
  321. }
  322. if($lattice) {
  323. $query = "UPDATE viper SET lattice='$lattice' where entry_key='$entry_key'";
  324. mysql_query($query);
  325. }
  326. if($resolution) {
  327. $query = "UPDATE viper SET resolution='$resolution' where entry_key='$entry_key'";
  328. mysql_query($query);
  329. }
  330. mysql_query("UPDATE MMS_ENTRY SET deposition_date='".$date."' WHERE id='".$vdb."'")
  331. or die(mysql_error());
  332. #flag entry obsolete, so it doesn't show up until ready
  333. $query = "update viper set supercede='1' where entry_key='$entry_key'";
  334. mysql_query($query);
  335. #insert layer
  336. $i = 0;
  337. while($i < $layers) {
  338. //Make a third, "complete" layer
  339. if ($layers == 2) {
  340. $layers ++;
  341. }
  342. $this_layer=$i+1;
  343. if ($i == 2) {
  344. $query = "INSERT INTO layer (entry_key, entry_id) VALUES ('$entry_key','$vdb')";
  345. array_push($layer_names,"complete");
  346. array_push($layer_ids,"$vdb"."_COMPLETE");
  347. array_push($sub_names,"");
  348. }
  349. else {
  350. $query = "INSERT INTO layer (entry_key, entry_id, tnumber) VALUES('$entry_key','$vdb','$tnumbers[$i]')";
  351. }
  352. //On the complete layer, insert only a certain amount of information
  353. mysql_query($query);
  354. #find layer key
  355. #The ordering is required to ensure that layers are given unique keys.
  356. $query = "select layer_key from layer where entry_key='$entry_key' order by layer_key DESC";
  357. $result = mysql_query($query);
  358. $row = mysql_fetch_array($result);
  359. $layer_key = $row[0];
  360. #possible null fields
  361. if(isset($layer_names[$i])) {
  362. $query = "UPDATE layer SET layer_name='$layer_names[$i]' where entry_key='$entry_key' && layer_key=$layer_key";
  363. mysql_query($query);
  364. $layer[$i]=$layer_names[$i];
  365. }
  366. if(isset($layer_ids[$i])) {
  367. $query = "UPDATE layer SET layer_id='$layer_ids[$i]' where entry_key='$entry_key' && layer_key=$layer_key";
  368. mysql_query($query);
  369. # $layer[$i]=$layer_ids[$i];
  370. }
  371. if(isset($sub_names[$i])) {
  372. $query = "UPDATE layer SET subunit_name='$sub_names[$i]' where entry_key='$entry_key' && layer_key=$layer_key";
  373. mysql_query($query);
  374. # $layer[$i]=$sub_names[$i];
  375. }
  376. #insert layer_chain
  377. if($i != 2) {
  378. $j = 0;
  379. while($j < count($chain_key[$i])) {
  380. $ch = $chain_key[$i][$j];
  381. $query = "INSERT INTO layer_chain (layer_chain_key, layer_key,
  382. entry_key, entry_id)
  383. VALUES($ch, $layer_key, $entry_key, '$vdb')";
  384. //print "$query\n";
  385. //print_r($chain_key);
  386. //print_r($chain_key[$i][$j]);
  387. mysql_query($query);
  388. $j++;
  389. }
  390. }
  391. print "\nCalculating diameters";
  392. #create the vdb file for this layer
  393. #$outfile = "/var/www/html/VDB/$vdb.vdb";
  394. #$outfile = "/var/www/html/VDB/$vdb"."_"."$layer[$i].vdb";
  395. $outfile = "/var/www/html/VDB/$vdb.vdb";
  396. if($layers > 1 && ($i != 2)) {
  397. echo "\n\nlayer_key=$layer_key was assigned to layer $layer[$i]. \n\n";
  398. $outfile = "/var/www/html/VDB/$vdb"."_"."$layer[$i].vdb";
  399. system("/var/www/html/Viperdb/$database"."_prot_na_pdb.pl -entry $vdb -layer $layer[$i] -o $outfile");
  400. }
  401. else {
  402. system("/var/www/html/Viperdb/$database"."_prot_na_pdb.pl -entry $vdb -o $outfile");
  403. }
  404. unset($diameters_r);
  405. exec("/var/www/html/Admin/diameters.pl $outfile", $diameters_r);
  406. $diameters = explode(" ", trim($diameters_r[0]));
  407. $min_ds[$i] = $diameters[0];
  408. $ave_ds[$i] = $diameters[1];
  409. $max_ds[$i] = $diameters[2];
  410. #echo "\n\nLayer $layer_ids[$i] in $outfile: Min $min_ds[$i], AVG $ave_ds[$i], Max $max_ds[$i]. Updating db with layer_key=$layer_key.\n\n";
  411. echo "\n\nLayer in $outfile: Min $min_ds[$i], AVG $ave_ds[$i], Max $max_ds[$i]. Updating db with layer_key=$layer_key.\n\n";
  412. $query = "UPDATE layer SET min_diameter='$min_ds[$i]', ave_diameter='$ave_ds[$i]', max_diameter='$max_ds[$i]' where entry_key='$entry_key' && layer_key=$layer_key";
  413. mysql_query($query);
  414. $i++;
  415. }
  416. # reset the amount of layers.
  417. if ($layers == 3){
  418. echo"layercheck";
  419. # $layers = 2;
  420. }
  421. # find out how many and what are the chains
  422. $q = "select distinct label_asym_id from ATOM_SITE where ATOM_SITE.entry_key = $entry_key and label_asym_id is not NULL";
  423. $result = mysql_query($q);
  424. $num_chains = mysql_num_rows($result);
  425. echo "\n\n$num_chains chains found\n\n";
  426. $list_of_chains="";
  427. $my_chains = array();
  428. $i=0;
  429. while($row = mysql_fetch_array($result)){
  430. $i++;
  431. $my_chains[$i]=$row['label_asym_id'];
  432. $list_of_chains .= $my_chains[$i] . ", ";
  433. #print "$i, $my_chains[$i]";
  434. }
  435. #print $list_of_chains;
  436. $chain_moved=0;
  437. $move_chain = "Y";
  438. $move_all = "Y";
  439. while($move_chain=="Y" || $move_chain=="y"){
  440. $move_chain = field_input("Do you want to move a chain before proceding? (Y|N)", "N");
  441. if($move_chain=="Y" || $move_chain=="y"){
  442. $chain_moved=1;
  443. if($move_all=="Y" || $move_all=="y"){
  444. $move_all = field_input("Do you want to move all chains at once? (Y|N)", "N");
  445. if($move_all=="N" || $move_all=="n") {
  446. print "\n Continue with individual chains \n\n";
  447. }
  448. else if($move_all=="Y" || $move_all=="y") {
  449. $new_place = field_input("Choose Transformation Matrix (1-60) ", "1");
  450. print "Moving chain ";
  451. for($i=1;$i<=$num_chains;$i++) {
  452. print "$my_chains[$i], ";
  453. $cmd="./move_chain.pl $vdb $my_chains[$i] $new_place";
  454. system($cmd);
  455. }
  456. print "\n\nDone moving all chains.\n\n";
  457. break;
  458. }
  459. else {
  460. print " ERROR!! I dont recognize option $move_all\n\n\n";
  461. exit;
  462. }
  463. }
  464. $chain_to_move = field_input("Input Chain ID ($list_of_chains) ", "A");
  465. $new_place = field_input("Choose Transformation Matrix (1-60) ", "1");
  466. $cmd="./move_chain.pl $vdb $chain_to_move $new_place";
  467. system($cmd);
  468. print "Done moving chain $chain_to_move using transformation matrix $new_place.\n\n";
  469. }
  470. }
  471. # system("clear");
  472. if($chain_moved){
  473. print "\nI need to re-create the vdb file\n";
  474. $outfile = "/var/www/html/VDB/$vdb.vdb";
  475. system("/var/www/html/Viperdb/$database"."_prot_na_pdb.pl -entry $vdb -o $outfile");
  476. }
  477. $skip_entry_analysis = field_input("Do you want to skip the analysis for: $vdb (Y|N)", "N");
  478. $cmd="./new_entry.awk $vdb ";
  479. for ($i = 0; $i < ($layers-1); $i++) {
  480. $cmd .= $vdb.'_'.$layer_names[$i]." ";
  481. }
  482. if (strtolower($skip_entry_analysis) == 'y') {
  483. $cmd .= "yes";
  484. print "\n\n Press 'Enter' to proceed with image creation ($cmd) or 'Ctrl+C' to quit. \n\n";
  485. }
  486. else {
  487. print "\n\n Press 'Enter' to procede with analysis ($cmd) or 'Ctrl+C' to quit.\n\n";
  488. }
  489. fgets(STDIN);
  490. system($cmd);
  491. fgets(STDIN);
  492. system("clear");
  493. # -------------
  494. # blur.sh and do_image are run once for every kind of entry
  495. # -------------
  496. # fgets(STDIN);
  497. # #system("cd "$admin_base_dir);
  498. # system("clear");
  499. # $cmd="./blur.sh $vdb";
  500. # print "\n\n Press 'Enter' to proceed with image creation ($cmd) or 'Ctrl+C' to quit.\n\n";
  501. # fgets(STDIN);
  502. # system($cmd);
  503. #
  504. # fgets(STDIN);
  505. # #system("cd "$admin_base_dir);
  506. # system("clear");
  507. # $cmd="./do_image $vdb";
  508. # print "\n\n Press 'Enter' to proceed with image creation ($cmd) or 'Ctrl+C' to quit.\n\n";
  509. # fgets(STDIN);
  510. # system($cmd);
  511. $i=0;
  512. $current_layer = $vdb;
  513. while ($i < $layers){
  514. if ($layer_names && ($layer_names[$i] == 'complete')) {
  515. $current_layer = $vdb;
  516. }
  517. else {
  518. $current_layer = $vdb." ".$layer_names[$i];
  519. }
  520. system("clear");
  521. $cmd = "./blur_v2.sh $current_layer";
  522. print "\n\n Press 'Enter' to proceed with layer image creation ($cmd) or 'Ctrl+C' to quit.\n\n";
  523. fgets(STDIN);
  524. system($cmd);
  525. fgets(STDIN);
  526. system("clear");
  527. $cmd = "./do_image_v2 $current_layer";
  528. print "\n\n Press 'Enter' to proceed with layer image creation ($cmd) or 'Ctrl+C' to quit.\n\n";
  529. fgets(STDIN);
  530. system($cmd);
  531. $i++;
  532. }
  533. $is_user_submitted = field_input("Is this an User Submitted Entry? (Y|N)", "N");
  534. if($is_user_submitted=="N" || $is_user_submitted=="n"){
  535. $query = "UPDATE viper SET supercede=NULL where entry_id='$vdb'";
  536. mysql_query($query);
  537. print "\nDB 'supercede' has been updated to NULL\n";
  538. }
  539. else print "\nNo need to update DB 'supercede'\n";
  540. print "\n\n That's all.\n\n";
  541. ?>