function tripal_featuremap_add_featuremap_dbxref
2.x tripal_featuremap.DEPRECATED.inc | tripal_featuremap_add_featuremap_dbxref($featuremap_id, $featuremap_dbxref) |
3.x tripal_featuremap.DEPRECATED.inc | tripal_featuremap_add_featuremap_dbxref($featuremap_id, $featuremap_dbxref) |
1.x tripal_featuremap.api.inc | tripal_featuremap_add_featuremap_dbxref($featuremap_id, $featuremap_dbxref) |
2 calls to tripal_featuremap_add_featuremap_dbxref()
- chado_featuremap_insert in tripal_featuremap/
tripal_featuremap.module - When a new chado_featuremap node is created we also need to add information to our chado_featuremap table. This function is called on insert of a new node of type 'chado_featuremap' and inserts the necessary information.
- chado_featuremap_update in tripal_featuremap/
tripal_featuremap.module - Update nodes
File
- tripal_featuremap/
api/ tripal_featuremap.api.inc, line 87
Code
function tripal_featuremap_add_featuremap_dbxref($featuremap_id, $featuremap_dbxref) {
// break apart the dbxref
$dbname = '';
$accession = '';
if (preg_match('/^(.*?):(.*?)$/', $featuremap_dbxref, $matches)) {
$dbname = $matches[1];
$accession = $matches[2];
}
else {
return FALSE;
}
// check to see if the featuremap_dbxref record already exist
$values = array(
'dbxref_id' => array(
'accession' => $accession,
'db_id' => array(
'name' => $dbname,
),
),
'featuremap_id' => $featuremap_id,
);
$options = array('statement_name' => 'sel_featuremapdbxref_dbpu');
$results = tripal_core_chado_select('featuremap_dbxref', array('*'), $values, $options);
// if the featuremap_dbxref record exist then we don't need to re-add it.
if (count($results) > 0) {
return $results[0];
}
// make sure our database already exists
$db = tripal_db_add_db($dbname);
// get the database cross-reference
$dbxvalues = array(
'accession' => $accession,
'db_id' => $db->db_id,
);
$dbxoptions = array('statement_name' => 'sel_dbxref_acdb');
$results = tripal_core_chado_select('dbxref', array('dbxref_id'), $dbxvalues, $dbxoptions);
// if the accession doesn't exist then add it
if (count($results) == 0) {
$dbxref = tripal_db_add_dbxref($db->db_id, $accession);
}
else {
$dbxref = $results[0];
}
// now add the record
$options = array('statement_name' => 'ins_featuremapdbxref_dbpu');
$results = tripal_core_chado_insert('featuremap_dbxref', $values, $options);
if (!$results) {
watchdog('t_featuremap', "Cannot add map dbxref: %db:%accession.",
array('%db' => $dbname, '%accession' => $accession) . WATCHDOG_ERROR);
return FALSE;
}
return $results;
}