function tripal_cv_obo_add_cvterm_dbxref
2.x tripal_cv.obo_loader.inc | tripal_cv_obo_add_cvterm_dbxref($cvterm, $xref) |
1.x obo_loader.inc | tripal_cv_obo_add_cvterm_dbxref($cvterm, $xref) |
Add database reference to cvterm
Related topics
1 call to tripal_cv_obo_add_cvterm_dbxref()
- tripal_cv_obo_process_term in tripal_cv/
includes/ obo_loader.inc
File
- tripal_cv/
includes/ obo_loader.inc, line 940 - Tripal Ontology Loader
Code
function tripal_cv_obo_add_cvterm_dbxref($cvterm, $xref) {
$dbname = preg_replace('/^(.+?):.*$/', '$1', $xref);
$accession = preg_replace('/^.+?:\s*(.*?)(\{.+$|\[.+$|\s.+$|\".+$|$)/', '$1', $xref);
$description = preg_replace('/^.+?\"(.+?)\".*?$/', '$1', $xref);
$dbxrefs = preg_replace('/^.+?\[(.+?)\].*?$/', '$1', $xref);
if (!$accession) {
tripal_cv_obo_quiterror();
watchdog("T_obo_loader", "Cannot add a dbxref without an accession: '$xref'", NULL, WATCHDOG_WARNING);
return FALSE;
}
// if the xref is a database link, handle that specially
if (strcmp($dbname, 'http') == 0) {
$accession = $xref;
$dbname = 'URL';
}
// add the database
$db = tripal_db_add_db($dbname);
if (!$db) {
tripal_cv_obo_quiterror("Cannot find database '$dbname' in Chado.");
}
// now add the dbxref
$dbxref = tripal_cv_obo_add_dbxref($db->db_id, $accession, '', $description);
if (!$dbxref) {
tripal_cv_obo_quiterror("Cannot find or add the database reference (dbxref)");
}
// finally add the cvterm_dbxref but first check to make sure it exists
$values = array(
'cvterm_id' => $cvterm->cvterm_id,
'dbxref_id' => $dbxref->dbxref_id,
);
$options = array('statement_name' => 'sel_cvtermdbxref_cvdb');
$result = tripal_core_chado_select('cvterm_dbxref', array('*'), $values, $options);
if (count($result) == 0) {
$ins_options = array(
'statement_name' => 'ins_cvtermdbxref_cvdb',
'return_record' => FALSE
);
$result = tripal_core_chado_insert('cvterm_dbxref', $values, $ins_options);
if (!$result) {
tripal_cv_obo_quiterror("Cannot add cvterm_dbxref: $xref");
return FALSE;
}
}
return TRUE;
}