Tripal v1.0 (6.x-1.0)
|
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