|  | @@ -1,331 +0,0 @@
 | 
	
		
			
				|  |  | -<?php
 | 
	
		
			
				|  |  | -	/**
 | 
	
		
			
				|  |  | - * Purpose: this function returns the portion of the data array 
 | 
	
		
			
				|  |  | - *   which describes the analysis table, it's fields and any joins between it and other tables
 | 
	
		
			
				|  |  | - * @see tripal_analysis_views_data() --in tripal_analysis.views.inc
 | 
	
		
			
				|  |  | - *
 | 
	
		
			
				|  |  | - * @todo Add support for analysisprop table
 | 
	
		
			
				|  |  | - * @todo Add support for multiple analysis' listed per feature
 | 
	
		
			
				|  |  | - * @todo Add join to node table within if <chado/drupal same db>; also addd if not around nid field
 | 
	
		
			
				|  |  | - *
 | 
	
		
			
				|  |  | - * BASE TABLE: analysis
 | 
	
		
			
				|  |  | - * @code
 | 
	
		
			
				|  |  | - *   create table analysis (
 | 
	
		
			
				|  |  | - *       analysis_id serial not null,
 | 
	
		
			
				|  |  | - *       primary key (analysis_id),
 | 
	
		
			
				|  |  | - *       name varchar(255),
 | 
	
		
			
				|  |  | - *       description text,
 | 
	
		
			
				|  |  | - *       program varchar(255) not null,
 | 
	
		
			
				|  |  | - *       programversion varchar(255) not null,
 | 
	
		
			
				|  |  | - *       algorithm varchar(255),
 | 
	
		
			
				|  |  | - *       sourcename varchar(255),
 | 
	
		
			
				|  |  | - *       sourceversion varchar(255),
 | 
	
		
			
				|  |  | - *       sourceuri text,
 | 
	
		
			
				|  |  | - *       timeexecuted timestamp not null default current_timestamp,
 | 
	
		
			
				|  |  | - *       constraint analysis_c1 unique (program,programversion,sourcename)
 | 
	
		
			
				|  |  | - *   );
 | 
	
		
			
				|  |  | - * @endcode
 | 
	
		
			
				|  |  | - *
 | 
	
		
			
				|  |  | - * @ingroup tripal_analysis_views
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -function retrieve_analysis_views_data() {
 | 
	
		
			
				|  |  | -	global $db_url;
 | 
	
		
			
				|  |  | -	$data = array();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // if the chado database is not local to the drupal database
 | 
	
		
			
				|  |  | -  // then we need to set the database name.  This should always
 | 
	
		
			
				|  |  | -  // be 'chado'.
 | 
	
		
			
				|  |  | -  if(is_array($db_url) and array_key_exists('chado',$db_url)){
 | 
	
		
			
				|  |  | -     $database = 'chado';
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -  // Basic table definition
 | 
	
		
			
				|  |  | -  $data['analysis']['table']['group'] = 'Chado Analysis';
 | 
	
		
			
				|  |  | - 	$data['analysis']['table']['base'] = array(
 | 
	
		
			
				|  |  | - 		'field' => 'analysis_id',
 | 
	
		
			
				|  |  | - 		'title' => t('Chado Analysis'),
 | 
	
		
			
				|  |  | - 		'help' => t("An analysis is a particular type of a computational analysis; it may be a blast of one sequence against another, or an all by all blast, or a different kind of analysis altogether. It is a single unit of computation."),
 | 
	
		
			
				|  |  | - 	);
 | 
	
		
			
				|  |  | -  if($database){
 | 
	
		
			
				|  |  | -     $data['analysis']['table']['base']['database'] = $database;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Define relationships between this table and others
 | 
	
		
			
				|  |  | -  $data['analysis']['table']['join']['feature'] = array(
 | 
	
		
			
				|  |  | -    'linking' => array(
 | 
	
		
			
				|  |  | -      'table' => 'analysisfeature',
 | 
	
		
			
				|  |  | -      'left_field' => 'feature_id',
 | 
	
		
			
				|  |  | -      'field' => 'analysis_id',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'left_field' => 'feature_id',
 | 
	
		
			
				|  |  | -    'field' => 'analysis_id',
 | 
	
		
			
				|  |  | -    'handler' => 'views_handler_join_chado_through_linking'
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Analysis properties?
 | 
	
		
			
				|  |  | - 	$data['analysisprop']['table'] = array(
 | 
	
		
			
				|  |  | -'group' => 'Chado analysis Properties',
 | 
	
		
			
				|  |  | - 		'field' => 'analysisprop_id',
 | 
	
		
			
				|  |  | - 		'title' => t('Chado analysis Properties'),
 | 
	
		
			
				|  |  | - 		'help' => '  ',
 | 
	
		
			
				|  |  | - 	);
 | 
	
		
			
				|  |  | - 	
 | 
	
		
			
				|  |  | - 	$data['analysisprop']['table']['join']['analysis'] = array(
 | 
	
		
			
				|  |  | -    'left_field' => 'analysis_id',
 | 
	
		
			
				|  |  | -    'field' => 'analysis_id',
 | 
	
		
			
				|  |  | -    'handler' => 'views_handler_join_chado_aggregator'
 | 
	
		
			
				|  |  | - 	);
 | 
	
		
			
				|  |  | - 	
 | 
	
		
			
				|  |  | - 	$data['analysisprop']['value'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Value'),
 | 
	
		
			
				|  |  | -    'help' => t(' '),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | - 	);
 | 
	
		
			
				|  |  | - 	
 | 
	
		
			
				|  |  | - 	$data['analysisprop']['all'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('All'),
 | 
	
		
			
				|  |  | -    'help' => t('An aggregate field that contains all fields for a row.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_field_aggregate',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | - 	);
 | 
	
		
			
				|  |  | - 	
 | 
	
		
			
				|  |  | -	// Table Field Definitions----------------------
 | 
	
		
			
				|  |  | -	// Field: analysis_id (primary key)
 | 
	
		
			
				|  |  | -	$data['analysis']['analysis_id'] = array(
 | 
	
		
			
				|  |  | -	  'title' => 'analysis ID',
 | 
	
		
			
				|  |  | -	  'help' => 'The primary key of the analysis table.',
 | 
	
		
			
				|  |  | -	  'field' => array(
 | 
	
		
			
				|  |  | -	    'handler' => 'views_handler_field_numeric',
 | 
	
		
			
				|  |  | -	    'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -	  ),
 | 
	
		
			
				|  |  | -	  'filter' => array(
 | 
	
		
			
				|  |  | -	    'handler' => 'views_handler_filter_numeric',
 | 
	
		
			
				|  |  | -	  ),
 | 
	
		
			
				|  |  | -	  'sort' => array(
 | 
	
		
			
				|  |  | -	    'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -	  ),
 | 
	
		
			
				|  |  | -	);
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -  // Calculated Field: Node ID
 | 
	
		
			
				|  |  | -  //  use custom field handler to query drupal for the node ID
 | 
	
		
			
				|  |  | -  //  this is only needed if chado is in a separate database from drupal
 | 
	
		
			
				|  |  | -  if($database){
 | 
	
		
			
				|  |  | -		$data['analysis']['analysis_nid'] = array(
 | 
	
		
			
				|  |  | -	  	'title' => 'Node ID',
 | 
	
		
			
				|  |  | -	  	'help' => 'The node ID for the current analysis',
 | 
	
		
			
				|  |  | -	  	'field' => array(
 | 
	
		
			
				|  |  | -	    	'handler' => 'views_handler_field_computed_analysis_nid',
 | 
	
		
			
				|  |  | -	  	),
 | 
	
		
			
				|  |  | -		);
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    // Add relationship between chado_analysis and analysis
 | 
	
		
			
				|  |  | -    $data['analysis']['analysis_nid'] = array(
 | 
	
		
			
				|  |  | -      'group' => 'Analysis',
 | 
	
		
			
				|  |  | -      'title' => 'Analysis Node',
 | 
	
		
			
				|  |  | -      'help' => 'Links Chado Analysis Fields/Data to the Nodes in the current View.',
 | 
	
		
			
				|  |  | -      'real field' => 'analysis_id',
 | 
	
		
			
				|  |  | -      'relationship' => array(
 | 
	
		
			
				|  |  | -        'handler' => 'views_handler_relationship',
 | 
	
		
			
				|  |  | -        'title' => t('Analysis => Chado'),
 | 
	
		
			
				|  |  | -        'label' => t('Analysis => Chado'),
 | 
	
		
			
				|  |  | -        'real field' => 'analysis_id',
 | 
	
		
			
				|  |  | -        'base' => 'chado_analysis',
 | 
	
		
			
				|  |  | -        'base field' => 'analysis_id'
 | 
	
		
			
				|  |  | -      ),
 | 
	
		
			
				|  |  | -    );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -	// Field: name (varchar 255)
 | 
	
		
			
				|  |  | - 	$data['analysis']['name'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Name'),
 | 
	
		
			
				|  |  | -    'help' => t(''),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_filter_chado_select_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -  // if joined to the node table add a "Link to Node" option for the field  
 | 
	
		
			
				|  |  | -  if (!$database) {
 | 
	
		
			
				|  |  | -    $data['analysis']['name']['field']['handler'] = 'views_handler_field_node_optional';
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: description (text)
 | 
	
		
			
				|  |  | - 	$data['analysis']['description'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Description'),
 | 
	
		
			
				|  |  | -    'help' => t(''),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: program (varchar 255)
 | 
	
		
			
				|  |  | - 	$data['analysis']['program'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Program'),
 | 
	
		
			
				|  |  | -    'help' => t('Program name, e.g. blastx, blastp, sim4, genscan.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_filter_chado_select_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: program version (varchar 255)
 | 
	
		
			
				|  |  | - 	$data['analysis']['programversion'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Program Version'),
 | 
	
		
			
				|  |  | -    'help' => t('Version description, e.g. TBLASTX 2.0MP-WashU [09-Nov-2000].'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_filter_chado_select_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: algorithm (varchar 255)
 | 
	
		
			
				|  |  | - 	$data['analysis']['algorithm'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Algorithm'),
 | 
	
		
			
				|  |  | -    'help' => t('Algorithm name, e.g. blast.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_filter_chado_select_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | - 	$data['analysis']['sourcename'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Source Name'),
 | 
	
		
			
				|  |  | -    'help' => t('Source name, e.g. cDNA, SwissProt.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: source version (varchar 255)
 | 
	
		
			
				|  |  | - 	$data['analysis']['sourceversion'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Source Version'),
 | 
	
		
			
				|  |  | -    'help' => t('The version of the source.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: source URI/URL (text)
 | 
	
		
			
				|  |  | - 	$data['analysis']['sourceuri'] = array(
 | 
	
		
			
				|  |  | -    'title' => t('Source URL'),
 | 
	
		
			
				|  |  | -    'help' => t('This is an optional, permanent URL or URI for the source of the analysis.'),
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'filter' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_filter_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'argument' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_argument_string',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  // Field: time executed (datetime)
 | 
	
		
			
				|  |  | - 	$data['analysis']['timeexecuted'] = array(
 | 
	
		
			
				|  |  | -    'title' => 'Time Executed',
 | 
	
		
			
				|  |  | -    'help' => 'The date & time when this analysis was executed.',
 | 
	
		
			
				|  |  | -    'field' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'views_handler_field_readable_date',
 | 
	
		
			
				|  |  | -      'click sortable' => TRUE,
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -    'sort' => array(
 | 
	
		
			
				|  |  | -      'handler' => 'chado_views_handler_sort_date',
 | 
	
		
			
				|  |  | -    ),
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | - 	return $data;
 | 
	
		
			
				|  |  | -}
 |