|
@@ -1,10 +1,12 @@
|
|
|
<?php
|
|
|
|
|
|
/**
|
|
|
+ * @file
|
|
|
+ * Provides an application programming interface (API) to manage references to external databases
|
|
|
+ *
|
|
|
* @defgroup tripal_db_api DB Module API
|
|
|
* @ingroup tripal_api
|
|
|
* @ingroup tripal_db
|
|
|
- * Provides an application programming interface (API) to manage references to external databases
|
|
|
*/
|
|
|
|
|
|
/**
|
|
@@ -17,7 +19,7 @@
|
|
|
* Chado database object
|
|
|
*
|
|
|
* The database is selected using tripal_core_chado select and as such the
|
|
|
- * $select_values array parameter meant to uniquely identify the database to be
|
|
|
+ * $select_values array parameter meant to uniquely identify the database to be
|
|
|
* returned follows the same form as when using tripal_core_chado_select directly.
|
|
|
*
|
|
|
* Example Usage:
|
|
@@ -29,22 +31,22 @@
|
|
|
* @endcode
|
|
|
* The above code selects the SOFP db and returns the following object:
|
|
|
* @code
|
|
|
- $db_object = stdClass Object (
|
|
|
+ $db_object = stdClass Object (
|
|
|
[db_id] => 49
|
|
|
[name] => SOFP
|
|
|
- [description] =>
|
|
|
- [urlprefix] =>
|
|
|
- [url] =>
|
|
|
- );
|
|
|
+ [description] =>
|
|
|
+ [urlprefix] =>
|
|
|
+ [url] =>
|
|
|
+ );
|
|
|
* @endcode
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_get_db ($select_values) {
|
|
|
+function tripal_db_get_db($select_values) {
|
|
|
|
|
|
$columns = array(
|
|
|
- 'db_id',
|
|
|
- 'name',
|
|
|
+ 'db_id',
|
|
|
+ 'name',
|
|
|
'description',
|
|
|
'urlprefix',
|
|
|
'url'
|
|
@@ -52,21 +54,23 @@ function tripal_db_get_db ($select_values) {
|
|
|
$results = tripal_core_chado_select('db', $columns, $select_values);
|
|
|
if (sizeof($results) == 1) {
|
|
|
return $results[0];
|
|
|
- } elseif (empty($results)) {
|
|
|
- watchdog('tripal_cdb',
|
|
|
+ }
|
|
|
+ elseif (empty($results)) {
|
|
|
+ watchdog('tripal_cdb',
|
|
|
'tripal_db_get_db: No db matches criteria values:%values',
|
|
|
array('%values' => print_r($select_values, TRUE)),
|
|
|
WATCHDOG_WARNING
|
|
|
);
|
|
|
return FALSE;
|
|
|
- } else {
|
|
|
- watchdog('tripal_db',
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ watchdog('tripal_db',
|
|
|
'tripal_db_get_db: 2+ dbs match criteria values:%values',
|
|
|
array('%values' => print_r($select_values, TRUE)),
|
|
|
WATCHDOG_WARNING
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -74,16 +78,16 @@ function tripal_db_get_db ($select_values) {
|
|
|
*
|
|
|
* @param $db_id
|
|
|
* db.db_id
|
|
|
- * @return
|
|
|
+ * @return
|
|
|
* Chado db object with all fields from the chado db table
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_get_db_by_db_id ($db_id) {
|
|
|
+function tripal_db_get_db_by_db_id($db_id) {
|
|
|
|
|
|
- $previous_db = tripal_db_set_active('chado');
|
|
|
+ $previous_db = tripal_db_set_active('chado');
|
|
|
$r = db_fetch_object(db_query(
|
|
|
- "SELECT * FROM db WHERE db_id=%d", $db_id
|
|
|
+ "SELECT * FROM {db} WHERE db_id=%d", $db_id
|
|
|
));
|
|
|
tripal_db_set_active($previous_db);
|
|
|
|
|
@@ -95,16 +99,16 @@ function tripal_db_get_db_by_db_id ($db_id) {
|
|
|
*
|
|
|
* @param $name
|
|
|
* db.name
|
|
|
- * @return
|
|
|
+ * @return
|
|
|
* chado db object with all fields from the chado db table
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_get_db_by_name ($name) {
|
|
|
+function tripal_db_get_db_by_name($name) {
|
|
|
|
|
|
- $previous_db = tripal_db_set_active('chado');
|
|
|
+ $previous_db = tripal_db_set_active('chado');
|
|
|
$r = db_fetch_object(db_query(
|
|
|
- "SELECT * FROM db WHERE name='%s'", $name
|
|
|
+ "SELECT * FROM {db} WHERE name='%s'", $name
|
|
|
));
|
|
|
tripal_db_set_active($previous_db);
|
|
|
|
|
@@ -114,12 +118,12 @@ function tripal_db_get_db_by_name ($name) {
|
|
|
// Purpose: To retrieve a chado db object
|
|
|
//
|
|
|
// @params where_options: array(
|
|
|
-// <column_name> => array(
|
|
|
-// 'type' => <type of column: INT/**STRING>,
|
|
|
-// 'value' => <the vlaue you want to filter on>,
|
|
|
-// 'exact' => <if TRUE use =; if FALSE use ~>,
|
|
|
-// )
|
|
|
-// )
|
|
|
+// <column_name> => array(
|
|
|
+// 'type' => <type of column: INT/**STRING>,
|
|
|
+// 'value' => <the vlaue you want to filter on>,
|
|
|
+// 'exact' => <if TRUE use =; if FALSE use ~>,
|
|
|
+// )
|
|
|
+// )
|
|
|
// @return chado db object with all fields from the chado db table
|
|
|
//
|
|
|
//function tripal_db_get_db ($where_options) {
|
|
@@ -128,7 +132,7 @@ function tripal_db_get_db_by_name ($name) {
|
|
|
* Purpose: Create an options array to be used in a form element
|
|
|
* which provides a list of all chado dbs
|
|
|
*
|
|
|
- * @return
|
|
|
+ * @return
|
|
|
* An array(db_id => name) for each db in the chado db table
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
@@ -137,7 +141,7 @@ function tripal_db_get_db_options() {
|
|
|
|
|
|
$previous_db = tripal_db_set_active('chado');
|
|
|
$result = db_query(
|
|
|
- "SELECT db_id, name FROM db"
|
|
|
+ "SELECT db_id, name FROM {db}"
|
|
|
);
|
|
|
tripal_db_set_active($previous_db);
|
|
|
|
|
@@ -153,12 +157,12 @@ function tripal_db_get_db_options() {
|
|
|
// Purpose: To retrieve a chado dbxref object
|
|
|
//
|
|
|
// @param where_options: array(
|
|
|
-// <column_name> => array(
|
|
|
-// 'type' => <type of column: INT/**STRING>,
|
|
|
-// 'value' => <the vlaue you want to filter on>,
|
|
|
-// 'exact' => <if TRUE use =; if FALSE use ~>,
|
|
|
-// )
|
|
|
-// )
|
|
|
+// <column_name> => array(
|
|
|
+// 'type' => <type of column: INT/**STRING>,
|
|
|
+// 'value' => <the vlaue you want to filter on>,
|
|
|
+// 'exact' => <if TRUE use =; if FALSE use ~>,
|
|
|
+// )
|
|
|
+// )
|
|
|
// @return chado dbxref object with all fields from the chado dbxref table
|
|
|
//
|
|
|
//function tripal_db_get_dbxref ($where_options) {
|
|
@@ -173,7 +177,7 @@ function tripal_db_get_db_options() {
|
|
|
* Chado database reference object
|
|
|
*
|
|
|
* The database reference is selected using tripal_core_chado select and as such the
|
|
|
- * $select_values array parameter meant to uniquely identify the database reference to be
|
|
|
+ * $select_values array parameter meant to uniquely identify the database reference to be
|
|
|
* returned follows the same form as when using tripal_core_chado_select directly.
|
|
|
*
|
|
|
* Example Usage:
|
|
@@ -188,27 +192,27 @@ function tripal_db_get_db_options() {
|
|
|
* @endcode
|
|
|
* The above code selects the synonym database reference and returns the following object:
|
|
|
* @code
|
|
|
- $dbxref_object = stdClass Object (
|
|
|
+ $dbxref_object = stdClass Object (
|
|
|
[dbxref_id] => 2581
|
|
|
[accession] => synonym
|
|
|
- [description] =>
|
|
|
- [version] =>
|
|
|
+ [description] =>
|
|
|
+ [version] =>
|
|
|
[db_db_id] => 49
|
|
|
[db_name] => SOFP
|
|
|
- [db_description] =>
|
|
|
- [db_urlprefix] =>
|
|
|
- [db_url] =>
|
|
|
- );
|
|
|
+ [db_description] =>
|
|
|
+ [db_urlprefix] =>
|
|
|
+ [db_url] =>
|
|
|
+ );
|
|
|
* @endcode
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_get_dbxref ($select_values) {
|
|
|
+function tripal_db_get_dbxref($select_values) {
|
|
|
|
|
|
$columns = array(
|
|
|
'dbxref_id',
|
|
|
- 'db_id',
|
|
|
- 'accession',
|
|
|
+ 'db_id',
|
|
|
+ 'accession',
|
|
|
'description',
|
|
|
'version'
|
|
|
);
|
|
@@ -218,15 +222,17 @@ function tripal_db_get_dbxref ($select_values) {
|
|
|
unset($dbxref->db_id);
|
|
|
|
|
|
return $dbxref;
|
|
|
- } elseif (empty($results)) {
|
|
|
- watchdog('tripal_db',
|
|
|
+ }
|
|
|
+ elseif (empty($results)) {
|
|
|
+ watchdog('tripal_db',
|
|
|
'tripal_db_get_dbxref: No dbxref matches criteria values:%values',
|
|
|
array('%values' => print_r($select_values, TRUE)),
|
|
|
WATCHDOG_WARNING
|
|
|
);
|
|
|
return FALSE;
|
|
|
- } else {
|
|
|
- watchdog('tripal_db',
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ watchdog('tripal_db',
|
|
|
'tripal_db_get_dbxref: 2+ dbxrefs match criteria values:%values',
|
|
|
array('%values' => print_r($select_values, TRUE)),
|
|
|
WATCHDOG_WARNING
|
|
@@ -242,29 +248,30 @@ function tripal_db_get_dbxref ($select_values) {
|
|
|
* dbxref.accession
|
|
|
* @param $db_id
|
|
|
* dbxref.db_id
|
|
|
- * @return
|
|
|
+ * @return
|
|
|
* chado dbxref object with all fields from the chado dbxref table
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_get_dbxref_by_accession ($accession, $db_id=0) {
|
|
|
+function tripal_db_get_dbxref_by_accession($accession, $db_id=0) {
|
|
|
|
|
|
if (!empty($db_id)) {
|
|
|
- $previous_db = tripal_db_set_active('chado');
|
|
|
+ $previous_db = tripal_db_set_active('chado');
|
|
|
$r = db_fetch_object(db_query(
|
|
|
- "SELECT * FROM dbxref WHERE accession='%s' AND db_id=%d",
|
|
|
+ "SELECT * FROM {dbxref} WHERE accession='%s' AND db_id=%d",
|
|
|
$accession, $db_id
|
|
|
));
|
|
|
tripal_db_set_active($previous_db);
|
|
|
- } else {
|
|
|
- $previous_db = tripal_db_set_active('chado');
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $previous_db = tripal_db_set_active('chado');
|
|
|
$r = db_fetch_object(db_query(
|
|
|
- "SELECT * FROM dbxref WHERE accession='%s'",
|
|
|
+ "SELECT * FROM {dbxref} WHERE accession='%s'",
|
|
|
$accession
|
|
|
));
|
|
|
- tripal_db_set_active($previous_db);
|
|
|
+ tripal_db_set_active($previous_db);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return $r;
|
|
|
}
|
|
|
|
|
@@ -286,7 +293,7 @@ function tripal_db_chado_dbxref_schema() {
|
|
|
'columns' => array(
|
|
|
'db_id' => 'db_id',
|
|
|
),
|
|
|
- );
|
|
|
+ );
|
|
|
|
|
|
return $description;
|
|
|
}
|
|
@@ -304,7 +311,7 @@ function tripal_db_chado_dbxref_schema() {
|
|
|
* Optional. The URL that is to be used as a prefix when constructing a link to
|
|
|
* a database term
|
|
|
* @param $update
|
|
|
-* Optional. Set this to '1' to force an update of the database if it
|
|
|
+* Optional. Set this to '1' to force an update of the database if it
|
|
|
* already exists. The default is to not update. If the database exists
|
|
|
* then nothing is added.
|
|
|
*
|
|
@@ -313,7 +320,7 @@ function tripal_db_chado_dbxref_schema() {
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_add_db($dbname,$description='',$url='',$urlprefix='',$update=0){
|
|
|
+function tripal_db_add_db($dbname, $description='', $url='', $urlprefix='', $update=0) {
|
|
|
|
|
|
|
|
|
$values = array(
|
|
@@ -322,24 +329,25 @@ function tripal_db_add_db($dbname,$description='',$url='',$urlprefix='',$update=
|
|
|
'url' => $url,
|
|
|
'urlprefix' => $urlprefix
|
|
|
);
|
|
|
-
|
|
|
+
|
|
|
$db_sql = "SELECT * FROM {db} WHERE name ='%s'";
|
|
|
- $db = db_fetch_object(db_query($db_sql,$dbname));
|
|
|
- if(!$db){
|
|
|
- if(!tripal_core_chado_insert('db',$values)){
|
|
|
- watchdog('tripal_db', "Cannot create db '$dbname'.",NULL,WATCHDOG_WARNING);
|
|
|
+ $db = db_fetch_object(db_query($db_sql, $dbname));
|
|
|
+ if (!$db) {
|
|
|
+ if (!tripal_core_chado_insert('db', $values)) {
|
|
|
+ watchdog('tripal_db', "Cannot create db '$dbname'.", NULL, WATCHDOG_WARNING);
|
|
|
return 0;
|
|
|
- }
|
|
|
- $db = tripal_core_chado_select('db',array('*'),$values);
|
|
|
- }
|
|
|
- elseif($update) {
|
|
|
+ }
|
|
|
+ $db = tripal_core_chado_select('db', array('*'), $values);
|
|
|
+ }
|
|
|
+ elseif ($update) {
|
|
|
$match = array('db_id' => $db->db_id);
|
|
|
- if(!tripal_core_chado_update('db',$match,$values)){
|
|
|
- watchdog('tripal_db', "Cannot update db '$dbname'.",NULL,WATCHDOG_WARNING);
|
|
|
+ if (!tripal_core_chado_update('db', $match, $values)) {
|
|
|
+ watchdog('tripal_db', "Cannot update db '$dbname'.", NULL, WATCHDOG_WARNING);
|
|
|
return 0;
|
|
|
- }
|
|
|
- $db = tripal_core_chado_select('db',array('*'),$values);
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ $db = tripal_core_chado_select('db', array('*'), $values);
|
|
|
+ }
|
|
|
+ else {
|
|
|
return $db;
|
|
|
}
|
|
|
}
|
|
@@ -347,7 +355,7 @@ function tripal_db_add_db($dbname,$description='',$url='',$urlprefix='',$update=
|
|
|
*
|
|
|
* @ingroup tripal_db_api
|
|
|
*/
|
|
|
-function tripal_db_add_dbxref($db_id,$accession,$version='',$description=''){
|
|
|
+function tripal_db_add_dbxref($db_id, $accession, $version='', $description='') {
|
|
|
|
|
|
// check to see if the dbxref exists if not, add it
|
|
|
$dbxsql = "
|
|
@@ -357,18 +365,18 @@ function tripal_db_add_dbxref($db_id,$accession,$version='',$description=''){
|
|
|
INNER JOIN db DB on DB.db_id = DBX.db_id
|
|
|
WHERE DBX.db_id = %d and DBX.accession = '%s'
|
|
|
";
|
|
|
- $dbxref = db_fetch_object(db_query($dbxsql,$db_id,$accession));
|
|
|
- if(!$dbxref){
|
|
|
+ $dbxref = db_fetch_object(db_query($dbxsql, $db_id, $accession));
|
|
|
+ if (!$dbxref) {
|
|
|
$sql = "
|
|
|
INSERT INTO {dbxref} (db_id, accession, version, description)
|
|
|
VALUES (%d,'%s','%s','%s')
|
|
|
";
|
|
|
- if(!db_query($sql,$db_id,$accession,$version,$description)){
|
|
|
- watchdog('tripal_cv', "Failed to insert the dbxref record $accession",NULL,WATCHDOG_WARNING);
|
|
|
+ if (!db_query($sql, $db_id, $accession, $version, $description)) {
|
|
|
+ watchdog('tripal_cv', "Failed to insert the dbxref record $accession", NULL, WATCHDOG_WARNING);
|
|
|
return 0;
|
|
|
}
|
|
|
print "Added Dbxref accession: $accession\n";
|
|
|
- $dbxref = db_fetch_object(db_query($dbxsql,$db_id,$accession));
|
|
|
+ $dbxref = db_fetch_object(db_query($dbxsql, $db_id, $accession));
|
|
|
}
|
|
|
return $dbxref;
|
|
|
|