function tripal_cv_load_obo_v1_2_id

2.x tripal_cv.obo_loader.inc tripal_cv_load_obo_v1_2_id($obo_id, $jobid = NULL)
1.x obo_loader.inc tripal_cv_load_obo_v1_2_id($obo_id, $jobid = NULL)

A wrapper function for importing the user specified OBO file into Chado by specifying the obo_id of the OBO. It requires that the file be in OBO v1.2 compatible format. This function is typically executed via the Tripal jobs management after a user submits a job via the Load Onotloies form.

Parameters

$obo_id: An obo_id from the tripal_cv_obo file that specifies which OBO file to import

$job_id: The job_id of the job from the Tripal jobs management system.

Related topics

File

tripal_cv/includes/tripal_cv.obo_loader.inc, line 347
Functions to aid in loading ontologies into the chado cv module

Code

function tripal_cv_load_obo_v1_2_id($obo_id, $jobid = NULL) {

  // Get the OBO reference.
  $sql = "SELECT * FROM {tripal_cv_obo} WHERE obo_id = :obo_id";
  $obo = db_query($sql, array(':obo_id' => $obo_id))->fetchObject();

  // Convert the module name to the real path if present
  if (preg_match("/\{(.*?)\}/", $obo->path, $matches)) {
    $module = $matches[1];
    $path = drupal_realpath(drupal_get_path('module', $module));
    $obo->path = preg_replace("/\{.*?\}/", $path, $obo->path);
  }

  // if the reference is for a remote URL then run the URL processing function
  if (preg_match("/^http:\/\//", $obo->path) or 
    preg_match("/^https:\/\//", $obo->path) or 
    preg_match("/^ftp:\/\//", $obo->path)) {
    tripal_cv_load_obo_v1_2_url($obo->name, $obo->path, $jobid, 0);
  }
  // if the reference is for a local file then run the file processing function
  else {
    // check to see if the file is located local to Drupal
    $dfile = $_SERVER['DOCUMENT_ROOT'] . base_path() . $obo->path;
    if (file_exists($dfile)) {
      tripal_cv_load_obo_v1_2_file($obo->name, $dfile, $jobid, 0);
    }
    // if not local to Drupal, the file must be someplace else, just use
    // the full path provided
    else {
      if (file_exists($obo->path)) {
        tripal_cv_load_obo_v1_2_file($obo->name, $obo->path, $jobid, 0);
      }
      else {
        print "ERROR: could not find OBO file: '$obo->path'\n";
      }
    }
  }
}