Tripal v1.0 (6.x-1.0)
tripal_stock.api.inc
Go to the documentation of this file.
00001 <?php
00023 function tripal_stock_get_stock_by_nid($nid) {
00024 
00025   return node_load($nid);
00026 
00027 }
00028 
00037 function tripal_stock_get_stock_by_stock_id($stock_id) {
00038 
00039   $sql = "SELECT nid FROM {chado_stock} WHERE stock_id=%d";
00040   $r = db_fetch_object(db_query($sql, $stock_id));
00041   if (!empty($r->nid)) {
00042     return node_load($r->nid);
00043   }
00044   else {
00045     watchdog('tripal_stock', 'tripal_stock_get_stock_by_stock_id(!stock_id): no stock with that stock_id is sync\'d with drupal', array('!stock_id' => $stock_id), WATCHDOG_WARNING);
00046   }
00047 
00048   return 0;
00049 
00050 }
00051 
00060 function tripal_stock_get_all_stocks() {
00061   $sql = "SELECT stock_id, nid from {chado_stock}";
00062   $resource = db_query($sql);
00063   $stocks = array();
00064   while ($r = db_fetch_object($resource)) {
00065     $node = node_load($r->nid);
00066     if ($node) {
00067       $stocks[$r->stock_id] = $node;
00068     }
00069   }
00070   return $stocks;
00071 }
00072 
00109 function tripal_stock_get_stocks($values) {
00110 
00111   $stock_ids = tripal_core_chado_select('stock', array('stock_id'), $values);
00112 
00113   // Change from stock_ids to nodes-----------------------------------
00114   $stock_ids = array_filter($stock_ids);
00115   $stock_ids = array_unique($stock_ids);
00116 
00117   $stocks = array();
00118   foreach ($stock_ids as $stock_id) {
00119     $node = tripal_stock_get_stock_by_stock_id($stock_id->stock_id);
00120     if ($node) {
00121       $stocks[] = $node;
00122     }
00123   }
00124 
00125   return $stocks;
00126 }
00127 
00168 function tripal_stock_get_stocks_by_stockprop($stockprop_values, $stock_values) {
00169 
00170   //add stock values to stockprop values
00171   if (!empty($stock_values)) {
00172     $stockprop_values['stock_id'] = $stock_values;
00173   }
00174 
00175   //get stock_ids from stockprop table
00176   $stock_ids = tripal_core_chado_select('stockprop', array('stock_id'), $stockprop_values);
00177 
00178   // Change from stock_ids to nodes-----------------------------------
00179   $stock_ids = array_filter($stock_ids);
00180   $stock_ids = array_unique($stock_ids);
00181 
00182   $stocks = array();
00183   foreach ($stock_ids as $stock_id) {
00184     $node = tripal_stock_get_stock_by_stock_id($stock_id->stock_id);
00185     if ($node) {
00186       $stocks[] = $node;
00187     }
00188   }
00189 
00190   return $stocks;
00191 }
00192 
00208 function tripal_stock_get_stock_by_name_identifier($name, $organism_id) {
00209   $stock_ids = array();
00210 
00211   $options = array(
00212     'case_insensitive_columns' => array('name', 'uniquename', 'accession', 'value')
00213   );
00214 
00215   // where name_identifier = stock.name-------------------------------
00216   $current_stocks = tripal_core_chado_select('stock', array('stock_id'),
00217     array(
00218       'name' => $name,
00219       'organism_id' => $organism_id,
00220     ),
00221     array(
00222       'case_insensitive_columns' => array('name'),
00223     )
00224   );
00225   if (!empty($current_stocks)) {
00226     foreach ($current_stocks as $c) {
00227     $stock_ids[] = $c->stock_id; }
00228   }
00229 
00230   // where name_identifier = stock.uniquename-------------------------------
00231   $current_stocks = tripal_core_chado_select('stock', array('stock_id'),
00232     array(
00233       'uniquename' => $name,
00234       'organism_id' => $organism_id,
00235     ),
00236     array(
00237       'case_insensitive_columns' => array('uniquename'),
00238     )
00239   );
00240   if (!empty($current_stocks)) {
00241     foreach ($current_stocks as $c) {
00242     $stock_ids[] = $c->stock_id; }
00243   }
00244 
00245   // where name_identifier = dbxref.accession-------------------------------
00246   // linked to stock through stock.dbxref
00247   $current_stocks = tripal_core_chado_select('stock', array('stock_id'),
00248     array(
00249       'dbxref_id' => array(
00250         'accession' => $name,
00251       ),
00252       'organism_id' => $organism_id,
00253     ),
00254     array(
00255       'case_insensitive_columns' => array('accession'),
00256     )
00257   );
00258   if (!empty($current_stocks)) {
00259     foreach ($current_stocks as $c) {
00260     $stock_ids[] = $c->stock_id; }
00261   }
00262 
00263   // linked to stock through stock_dbxref?
00264   $current_stocks = tripal_core_chado_select('stock_dbxref', array('stock_id'),
00265     array(
00266       'dbxref_id' => array(
00267         'accession' => $name,
00268       ),
00269       'stock_id' => array(
00270         'organism_id' => $organism_id,
00271       ),
00272     ),
00273     array(
00274       'case_insensitive_columns' => array('accession'),
00275     )
00276   );
00277   if (!empty($current_stocks)) {
00278     foreach ($current_stocks as $c) {
00279       $stock_ids[] = $c->stock_id;
00280     }
00281   }
00282 
00283   // where name_identifier = stockprop.value-------------------------------
00284   // where type='synonym'
00285   $current_stocks = tripal_core_chado_select('stockprop', array('stock_id'),
00286     array(
00287       'stock_id' => array(
00288         'organism_id' => $organism_id,
00289       ),
00290       'type_id' => array(
00291         'cv_id' => variable_get('chado_stock_prop_types_cv', 'null'),
00292         'name' => 'synonym',
00293       ),
00294       'value' => $name,
00295     ),
00296     array(
00297       'case_insensitive_columns' => array('value'),
00298     )
00299   );
00300   if (!empty($current_stocks)) {
00301     foreach ($current_stocks as $c) {
00302       $stock_ids[] = $c->stock_id;
00303     }
00304   }
00305 
00306   // Change from stock_ids to nodes-----------------------------------
00307   $stock_ids = array_filter($stock_ids);
00308   $stock_ids = array_unique($stock_ids);
00309 
00310   $stocks = array();
00311   foreach ($stock_ids as $stock_id) {
00312     $node = tripal_stock_get_stock_by_stock_id($stock_id);
00313     if ($node) {
00314       $stocks[] = $node;
00315     }
00316   }
00317 
00318   return $stocks;
00319 }
00320 
 All Classes Files Functions Variables