123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- /**
- * Retrieve properties of a given type for a given featuremap
- *
- * @param $featuremap_id
- * The featuremap_id of the properties you would like to retrieve
- * @param $property
- * The cvterm name of the properties to retrieve
- *
- * @return
- * An featuremap chado variable with the specified properties expanded
- *
- * @ingroup tripal_featuremap_api
- */
- function tripal_featuremap_get_property($featuremap_id, $property) {
- return tripal_core_get_property('featuremap', $featuremap_id, $property, 'featuremap_property');
- }
- /**
- * Insert a given property
- *
- * @param $featuremap_id
- * The featuremap_id of the property to insert
- * @param $property
- * The cvterm name of the property to insert
- * @param $value
- * The value of the property to insert
- * @param $update_if_present
- * A boolean indicated whether to update the record if it's already present
- *
- * @return
- * True of success, False otherwise
- *
- * @ingroup tripal_featuremap_api
- */
- function tripal_featuremap_insert_property($featuremap_id, $property, $value, $update_if_present = 0) {
- return tripal_core_insert_property('featuremap', $featuremap_id, $property, 'featuremap_property', $value, $update_if_present);
- }
- /**
- * Update a given property
- *
- * @param $featuremap_id
- * The featuremap_id of the property to update
- * @param $property
- * The cvterm name of the property to update
- * @param $value
- * The value of the property to update
- * @param $insert_if_missing
- * A boolean indicated whether to insert the record if it's absent
- *
- * Note: The property will be identified using the unique combination of the $featuremap_id and $property
- * and then it will be updated with the supplied value
- *
- * @return
- * True of success, False otherwise
- *
- * @ingroup tripal_featuremap_api
- */
- function tripal_featuremap_update_property($featuremap_id, $property, $value, $insert_if_missing = 0) {
- return tripal_core_update_property('featuremap', $featuremap_id, $property, 'featuremap_property', $value, $insert_if_missing);
- }
- /**
- * Delete a given property
- *
- * @param $featuremap_id
- * The featuremap_id of the property to delete
- * @param $property
- * The cvterm name of the property to delete
- *
- * Note: The property will be identified using the unique combination of the $featuremap_id and $property
- * and then it will be deleted
- *
- * @return
- * True of success, False otherwise
- *
- * @ingroup tripal_featuremap_api
- */
- function tripal_featuremap_delete_property($featuremap_id, $property) {
- return tripal_core_delete_property('featuremap', $featuremap_id, $property, 'featuremap_property');
- }
- /*
- *
- */
- 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;
- }
|