blast_ui.custom.inc 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. /*
  3. * customized for PeanutBase
  4. *
  5. */
  6. function tripal_custom_generate_linkout($url_prefix, $hit, $info, $options = array()) {
  7. // uncomment to see contents of hit object
  8. //echo "hit:<pre>";var_dump($hit);echo "</pre>";
  9. // uncomment to see contents of info object
  10. //echo "info:<pre>";var_dump($info);echo "</pre>";
  11. $url = false;
  12. $hit_name = $hit->{'Hit_def'};
  13. //echo "hit name: $hit_name ... ";
  14. if ($info['Target'] == 'All genomes') {
  15. if (preg_match('/^aradu/', $hit_name) == 1) {
  16. $blastdb_name = 'PeanutBase_aradu_gbrowse';
  17. }
  18. else if (preg_match('/^araip/', $hit_name) == 1) {
  19. $blastdb_name = 'PeanutBase_araip_gbrowse';
  20. }
  21. else if (preg_match('/^cajca/', $hit_name) == 1) {
  22. $blastdb_name = 'LegumeInfo_cajca_gbrowse';
  23. }
  24. else if (preg_match('/^cicar/', $hit_name) == 1) {
  25. $blastdb_name = 'LegumeInfo_cicar_gbrowse';
  26. }
  27. else if (preg_match('/^glyma/', $hit_name) == 1) {
  28. $blastdb_name = 'SoyBase_glyma_gbrowse';
  29. }
  30. else if (preg_match('/^lotja/', $hit_name) == 1) {
  31. $blastdb_name = 'LegumeInfo_lotja_gbrowse';
  32. }
  33. else if (preg_match('/^medtr/', $hit_name) == 1) {
  34. $blastdb_name = 'LegumeInfo_medtr_gbrowse';
  35. }
  36. else if (preg_match('/^phavu/', $hit_name) == 1) {
  37. $blastdb_name = 'LegumeInfo_phavu_gbrowse';
  38. }
  39. else if (preg_match('/^vigra/', $hit_name) == 1) {
  40. $blastdb_name = 'LegumeInfo_vigra_gbrowse';
  41. }
  42. else {
  43. // Don't know what to do with this hit
  44. drupal_set_message("Don't know how to create GBrowse linkout for $hit_name", 'error');
  45. }
  46. $hit_name = preg_replace("/^\w+\.(\S+).*/", '$1', $hit_name);
  47. $hit->{'linkout_id'} = $hit_name;
  48. if ($blastdb_info = tripal_custom_getBLASTdbinfo($blastdb_name)) {
  49. //echo "generate gbrowse link with " . $blastdb_info['urlprefix'] . " $hit<br>";
  50. $url = tripal_blast_generate_linkout_gbrowse($blastdb_info['urlprefix'], $hit, $info, $options);
  51. }
  52. }//handle All genomes BLAST target
  53. else {
  54. // default regex:
  55. $regex = "/^\w+\.(\S+)/";
  56. if (preg_match('/^aradu/', $hit_name) == 1) {
  57. $blastdb_name = 'PeanutBase_aradu_gene';
  58. }
  59. else if (preg_match('/^araip/', $hit_name) == 1) {
  60. $blastdb_name = 'PeanutBase_araip_gene';
  61. }
  62. else if (preg_match('/^cajca/', $hit_name) == 1) {
  63. $blastdb_name = 'LegumeInfo_cajca_gene';
  64. }
  65. else if (preg_match('/^cicar/', $hit_name) == 1) {
  66. $blastdb_name = 'LegumeInfo_cicar_gene';
  67. }
  68. else if (preg_match('/^glyma/', $hit_name) == 1) {
  69. $blastdb_name = 'LegumeInfo_glyma_gene';
  70. if (preg_match("/^\w+\.(\S+)\.p/", $hit_name)) {
  71. //glyma protein
  72. $regex = "/^\w+\.(\S+)\.p/";
  73. }
  74. }
  75. else if (preg_match('/^lotja/', $hit_name) == 1) {
  76. $blastdb_name = 'LegumeInfo_lotja_gene';
  77. }
  78. else if (preg_match('/^medtr/', $hit_name) == 1) {
  79. $blastdb_name = 'LegumeInfo_medtr_gene';
  80. }
  81. else if (preg_match('/^phavu/', $hit_name) == 1) {
  82. $blastdb_name = 'LegumeInfo_phavu_gene';
  83. }
  84. else if (preg_match('/^vigra/', $hit_name) == 1) {
  85. $blastdb_name = 'LegumeInfo_vigra_gene';
  86. }
  87. else {
  88. // Don't know what to do with this hit
  89. drupal_set_message("Don't know how to create linkout for $hit_name", 'error');
  90. }
  91. $hit_name = preg_match($regex, $hit_name, $matches);
  92. //echo "<br>Using $regex, found matches:<pre>" . var_dump($matches);echo "</pre>";
  93. //echo "<br>Use [" . $matches[1] . "]<br>";
  94. $hit->{'linkout_id'} = $matches[1];
  95. //echo "look for gene link for $blastdb_name with " . $hit->{'linkout_id'} . "<br>";
  96. if ($blastdb_info = tripal_custom_getBLASTdbinfo($blastdb_name)) {
  97. //echo "generate gbrowse link with " . $blastdb_info['urlprefix'] . " $hit<br>";
  98. $url = tripal_blast_generate_linkout_link($blastdb_info['urlprefix'], $hit, $info, $options);
  99. }
  100. }
  101. return $url;
  102. }
  103. function tripal_custom_getBLASTdbinfo($blastdb_name) {
  104. $sql = "
  105. SELECT urlprefix
  106. FROM {db} WHERE name='$blastdb_name'";
  107. //echo "$sql<br>";
  108. if ($res = chado_query($sql)) {
  109. if ($row=$res->fetchObject()) {
  110. return array(
  111. 'urlprefix' => $row->urlprefix,
  112. );
  113. }
  114. }
  115. return false;
  116. }//tripal_custom_getBLASTdbinfo