function tripal_cv_obo_add_cvterm_prop
2.x tripal_cv.obo_loader.inc | tripal_cv_obo_add_cvterm_prop($cvterm, $property, $value, $rank) |
1.x obo_loader.inc | tripal_cv_obo_add_cvterm_prop($cvterm, $property, $value, $rank) |
Add property to CVterm
Related topics
1 call to tripal_cv_obo_add_cvterm_prop()
- tripal_cv_obo_process_term in tripal_cv/
includes/ obo_loader.inc
File
- tripal_cv/
includes/ obo_loader.inc, line 997 - Tripal Ontology Loader
Code
function tripal_cv_obo_add_cvterm_prop($cvterm, $property, $value, $rank) {
// make sure the 'cvterm_property_type' CV exists
$cv = tripal_cv_add_cv('cvterm_property_type', '');
if (!$cv) {
tripal_cv_obo_quiterror("Cannot add/find cvterm_property_type cvterm");
}
// get the property type cvterm. If it doesn't exist then we want to add it
$values = array(
'name' => $property,
'cv_id' => $cv->cv_id,
);
$options = array('statement_name' => 'sel_cvterm_nacv_na');
$results = tripal_core_chado_select('cvterm', array('*'), $values, $options);
if (count($results) == 0) {
$term = array(
'name' => $property,
'id' => "internal:$property",
'definition' => '',
'is_obsolete' => 0,
);
$cvproptype = tripal_cv_add_cvterm($term, $cv->name, 0, 0);
if (!$cvproptype) {
tripal_cv_obo_quiterror("Cannot add cvterm property: internal:$property");
return FALSE;
}
}
else {
$cvproptype = $results[0];
}
// remove any properties that currently exist for this term. We'll reset them
if ($rank == 0) {
$values = array('cvterm_id' => $cvterm->cvterm_id);
$options = array('statement_name' => 'del_cvtermprop_cv');
$success = tripal_core_chado_delete('cvtermprop', $values, $options);
if (!$success) {
tripal_cv_obo_quiterror("Could not remove existing properties to update property $property for term\n");
return FALSE;
}
}
// now add the property
$values = array(
'cvterm_id' => $cvterm->cvterm_id,
'type_id' => $cvproptype->cvterm_id,
'value' => $value,
'rank' => $rank,
);
$options = array(
'statement_name' => 'ins_cvtermprop_cvtyvara',
'return_record' => FALSE,
);
$result = tripal_core_chado_insert('cvtermprop', $values, $options);
if (!$result) {
tripal_cv_obo_quiterror("Could not add property $property for term\n");
return FALSE;
}
return TRUE;
}