function tripal_analysis_add_mview_analysis_organism
2.x tripal_analysis.install | tripal_analysis_add_mview_analysis_organism() |
1.x tripal_analysis.install | tripal_analysis_add_mview_analysis_organism() |
Creates a view showing the link between an organism & it's analysis through associated features.
Related topics
1 call to tripal_analysis_add_mview_analysis_organism()
- tripal_analysis_install in tripal_analysis/
tripal_analysis.install - Implementation of hook_install().
File
- tripal_analysis/
tripal_analysis.install, line 239 - Implements hooks from the Schema API.
Code
function tripal_analysis_add_mview_analysis_organism() {
$view_name = 'analysis_organism';
$comment = t('This view is for associating an organism (via it\'s associated features) to an analysis.');
// this is the SQL used to identify the organism to which an analsysis
// has been used. This is obtained though the analysisfeature -> feature -> organism
// joins
$sql = "
SELECT DISTINCT A.analysis_id, O.organism_id
FROM analysis A
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 O.organism_id = F.organism_id
";
// the schema array for describing this view
$schema = array(
'table' => $view_name,
'description' => $comment,
'fields' => array(
'analysis_id' => array(
'size' => 'big',
'type' => 'int',
'not null' => TRUE,
),
'organism_id' => array(
'size' => 'big',
'type' => 'int',
'not null' => TRUE,
),
),
'indexes' => array(
'networkmod_qtl_indx0' => array('analysis_id'),
'networkmod_qtl_indx1' => array('organism_id'),
),
'foreign keys' => array(
'analysis' => array(
'table' => 'analysis',
'columns' => array(
'analysis_id' => 'analysis_id',
),
),
'organism' => array(
'table' => 'organism',
'columns' => array(
'organism_id' => 'organism_id',
),
),
),
);
// add the view
tripal_add_mview($view_name, 'tripal_analysis', $schema, $sql, $comment);
}