123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- /*******************************************************************************
- * Implementation of hook_install();
- */
- function tripal_analysis_go_install(){
-
- tripal_analysis_register_child('tripal_analysis_go');
-
- // The following view will create counts of features that are assigned
- // either directly or by ancestry each GO term. The count is organized by
- // organisms.
- $previous_db = tripal_db_set_active('chado');
- if (db_table_exists('go_count_organism')) {
- $sql = "DROP TABLE go_count_organism";
- db_query($sql);
- }
- if (db_table_exists('go_count_analysis')) {
- $sql = "DROP TABLE go_count_analysis";
- db_query($sql);
- }
- tripal_db_set_active($previous_db);
-
- tripal_add_mview(
- // view name
- 'go_count_organism',
- // tripal module name
- 'tripal_analysis_go',
- // table name
- 'go_count_organism',
- // table schema definition
- 'cvname character varying(255),
- cvterm_id integer,
- organism_id integer,
- feature_count integer',
- // columns for indexing
- 'cvterm_id,organism_id',
- // SQL statement to populate the view
- "SELECT T1.cvname, T1.object_id, T1.organism_id, count(T1.feature_id)
- FROM
- (SELECT DISTINCT CVT3.name as cvname, CVTP.object_id,
- O.organism_id, F.feature_id
- FROM {cvtermpath} CVTP
- INNER JOIN CVTerm CVT ON CVTP.subject_id = CVT.cvterm_id
- INNER JOIN CVTerm CVT2 ON CVTP.type_id = CVT2.cvterm_id
- INNER JOIN CVTerm CVT3 ON CVTP.object_id = CVT3.cvterm_id
- INNER JOIN Feature_cvterm FCVT ON FCVT.cvterm_id = CVT.cvterm_id
- INNER JOIN Feature F ON FCVT.feature_id = F.feature_id
- INNER JOIN CV ON CV.cv_id = CVT.cv_id
- INNER JOIN Organism O ON O.organism_id = F.organism_id
- WHERE (CV.name = 'biological_process' or
- CV.name = 'molecular_function' or
- CV.name = 'cellular_component')
- ) as T1
- GROUP BY T1.cvname,T1.object_id,T1.organism_id",
- // special index
- ''
- );
- // The following view will create counts of features that are assigned
- // either directly or by ancestry each GO term. The count is organized by
- // tripal_go_analysis analyses.
- tripal_add_mview(
- // view name
- 'go_count_analysis',
- // tripal module name
- 'tripal_analysis_go',
- // table name
- 'go_count_analysis',
- // table schema definition
- 'cvname character varying(255),
- cvterm_id integer,
- analysis_id integer,
- organism_id integer,
- feature_count integer',
- // columns for indexing
- 'cvterm_id,analysis_id,organism_id',
- // SQL statement to populate the view
- "SELECT T1.cvname,T1.cvterm_id,T1.analysis_id,T1.organism_id,count(*) as feature_count
- FROM
- (SELECT DISTINCT AF.analysis_id, AF.feature_id,CVT.name as cvname,
- CVT.cvterm_id,CVTP.object_id,CV.name, F.organism_id
- FROM {analysisfeatureprop} AFP
- INNER JOIN analysisfeature AF ON AF.analysisfeature_id = AFP.analysisfeature_id
- INNER JOIN feature F ON AF.feature_id = F.feature_id
- INNER JOIN cvtermpath CVTP ON CVTP.subject_id = AFP.type_id
- INNER JOIN cvterm CVT ON CVTP.object_id = CVT.cvterm_id
- INNER JOIN CV ON CV.cv_id = CVT.cv_id
- WHERE
- (CV.name = 'biological_process' or
- CV.name = 'molecular_function' or
- CV.name = 'cellular_component')) as T1
- GROUP BY T1.cvname,T1.cvterm_id,T1.analysis_id,T1.organism_id",
- // special index
- ''
- );
- }
- /*******************************************************************************
- * Implementation of hook_uninstall()
- */
- function tripal_analysis_go_uninstall(){
- $mview = tripal_mviews_get_mview_id('go_count_organism');
- if($mview){
- tripal_mviews_action('delete',$mview);
- }
- $mview = tripal_mviews_get_mview_id('go_count_analysis');
- if($mview){
- tripal_mviews_action('delete',$mview);
- }
- tripal_analysis_unregister_child('tripal_analysis_go');
- }
- /*******************************************************************************
- * Implementation of hook_requirements(). Make sure 'Tripal Core' and 'Tripal
- * Analysis' are enabled before installation
- */
- function tripal_analysis_go_requirements($phase) {
- $requirements = array();
- if ($phase == 'install') {
- if (!function_exists('tripal_create_moddir') || !function_exists('tripal_analysis_register_child')) {
- $requirements ['tripal_analysis_go'] = array(
- 'title' => "tripal_analysis_go",
- 'value' => "error. Some required modules are just being installed. Please try again.",
- 'severity' => REQUIREMENT_ERROR,
- );
- }
- }
- return $requirements;
- }
|