blast_ui.custom.inc 4.2 KB

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