analysis_id,'analysis_unigene_name',$analysis->title); } $ret = array( '#finished' => 1, ); return $ret; } /** * */ function tripal_analysis_unigene_add_cvterms(){ tripal_add_cvterms('unigene_version','The version number for the unigene ". "(e.g. v1, v2, etc...) '); tripal_add_cvterms('analysis_unigene_name', 'The name for a unigene.'); tripal_add_cvterms('analysis_unigene_num_contigs','The number of contigs in the unigene assembly'); tripal_add_cvterms('analysis_unigene_num_singlets','The number of singlets remaining in the unigene assembly'); tripal_add_cvterms('analysis_unigene_num_clusters','The number of clusters in the unigene assembly'); tripal_add_cvterms('analysis_unigene_num_reads','The number of reads, after filtering, used as input for the assembly'); tripal_add_cvterms('analysis_unigene_avg_length','The average contig length'); tripal_add_cvterms('singlet',"Indicates the feature is a singlet in a ". "specific unigene version (e.g. v1, v2, etc...). The value specified ". "should match that of the unigene_version"); // Add cveterm 'analysis_unigene_settings' for inserting into analysisprop table tripal_add_cvterms('analysis_unigene_settings', 'Settings of a unigene analysis'); } /** * */ function tripal_analysis_unigene_add_organism_unigene_mview(){ $view_name = 'organism_unigene_mview'; // Drop the MView table if it exists $mview_id = tripal_mviews_get_mview_id($view_name); if($mview_id){ tripal_mviews_action("delete",$mview_id); } tripal_add_mview( // view name $view_name, // tripal module name 'tripal_analysis_unigene', // table name $view_name, // table schema definition 'analysis_id integer, organism_id integer', // columns for indexing 'analysis_id, organism_id', // SQL statement to populate the view "SELECT DISTINCT A.analysis_id, O.organism_id ". "FROM {Analysis} A ". " INNER JOIN analysisprop AP ON AP.analysis_id = A.analysis_id ". " INNER JOIN cvterm CVT ON AP.type_id = CVT.cvterm_id ". " INNER JOIN cv CV ON CV.cv_id = CVT.cv_id ". " INNER JOIN analysisfeature AF ON A.analysis_id = AF.analysis_id ". " INNER JOIN feature F ON AF.feature_id = F.feature_id ". " INNER JOIN organism O ON F.organism_id = O.organism_id ". "WHERE CV.name = 'tripal' AND CVT.name='analysis_unigene_name'", // special index '' ); // add a job to the job queue so this view gets updated automatically next // time the job facility is run $mview_id = tripal_mviews_get_mview_id($view_name); if($mview_id){ tripal_mviews_action('update',$mview_id); } } /******************************************************************************* * Implementation of hook_uninstall(). */ function tripal_analysis_unigene_uninstall() { $mview = tripal_mviews_get_mview_id('unigene_mview'); if($mview){ tripal_mviews_action('delete',$mview); } $mview = tripal_mviews_get_mview_id('unigene_libraries_mview'); if($mview){ tripal_mviews_action('delete',$mview); } // Delete the settings from {tripal_analysis} table // Drupal complains when the user tries to uninstall tripal_analysis // and tripal_analysis_unigene at the same time. This is because Drupal drops // the {tripal_analysis} table before we can delete anything from it. Thus, // we perform a db_table_exists() check before the deletion tripal_analysis_unregister_child('tripal_analysis_unigene'); // Delete module's variables from variables table. db_query("DELETE FROM {variable} WHERE name='%s'", 'tripal_analysis_unigene_setting'); } /******************************************************************************* * Implementation of hook_requirements(). Make sure 'Tripal Core' and 'Tripal * Analysis' are enabled before installation */ function tripal_analysis_unigene_requirements($phase) { $requirements = array(); if ($phase == 'install') { if (!function_exists('tripal_create_moddir') || !function_exists('tripal_analysis_register_child')) { $requirements ['tripal_analysis_unigene'] = array( 'title' => "tripal_analysis_unigene", 'value' => "error. Some required modules are just being installed. Please try again.", 'severity' => REQUIREMENT_ERROR, ); } } return $requirements; }