|  | @@ -3,7 +3,7 @@
 | 
	
		
			
				|  |  |   * 
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_feature_seq_extract_page() {
 | 
	
		
			
				|  |  | -  if ($_SESSION['tripal_feature_seq_extract']){   
 | 
	
		
			
				|  |  | +  if ($_SESSION['tripal_feature_seq_extract']['download']){   
 | 
	
		
			
				|  |  |      $genus      = $_SESSION['tripal_feature_seq_extract']['genus'];
 | 
	
		
			
				|  |  |      $species    = $_SESSION['tripal_feature_seq_extract']['species'];
 | 
	
		
			
				|  |  |      $analysis   = $_SESSION['tripal_feature_seq_extract']['analysis'];
 | 
	
	
		
			
				|  | @@ -15,6 +15,8 @@ function tripal_feature_seq_extract_page() {
 | 
	
		
			
				|  |  |      $use_parent = $_SESSION['tripal_feature_seq_extract']['use_parent'];
 | 
	
		
			
				|  |  |      $aggregate  = $_SESSION['tripal_feature_seq_extract']['aggregate'];
 | 
	
		
			
				|  |  |      $agg_types  = $_SESSION['tripal_feature_seq_extract']['agg_types'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    unset($_SESSION['tripal_feature_seq_extract']['download']);
 | 
	
		
			
				|  |  |       
 | 
	
		
			
				|  |  |      if ($format == 'fasta_html') {
 | 
	
		
			
				|  |  |        drupal_set_header('Content-Type: text/html');
 | 
	
	
		
			
				|  | @@ -27,7 +29,6 @@ function tripal_feature_seq_extract_page() {
 | 
	
		
			
				|  |  |      tripal_feature_seq_extract_get_features(NULL, $genus, $species, $analysis, 
 | 
	
		
			
				|  |  |        $ftype, $fname, $upstream, $downstream, $format, $use_parent, $aggregate, $agg_types);
 | 
	
		
			
				|  |  |        
 | 
	
		
			
				|  |  | -    unset($_SESSION['tripal_feature_seq_extract']);
 | 
	
		
			
				|  |  |      return;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |   
 | 
	
	
		
			
				|  | @@ -58,8 +59,8 @@ function theme_tripal_feature_seq_extract_form($form) {
 | 
	
		
			
				|  |  |        drupal_render($form['ftype']),
 | 
	
		
			
				|  |  |      ),
 | 
	
		
			
				|  |  |      1 => array(
 | 
	
		
			
				|  |  | -      array('data' => drupal_render($form['analysis']), 'colspan' => 2),
 | 
	
		
			
				|  |  | -      drupal_render($form['format']),    
 | 
	
		
			
				|  |  | +      array('data' => drupal_render($form['analysis']), 'colspan' => 3),
 | 
	
		
			
				|  |  | +      //drupal_render($form['format']),    
 | 
	
		
			
				|  |  |      ),
 | 
	
		
			
				|  |  |      2 => array(     
 | 
	
		
			
				|  |  |        array('data' =>  drupal_render($form['fname']), 'colspan' => 2),
 | 
	
	
		
			
				|  | @@ -97,22 +98,21 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |    tripal_core_ahah_init_form();
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    // get defaults
 | 
	
		
			
				|  |  | -  $dgenus      = $form_state['values']['genus'];
 | 
	
		
			
				|  |  | -  $dspecies    = $form_state['values']['species'];
 | 
	
		
			
				|  |  | -  $danalysis   = $form_state['values']['analysis'];
 | 
	
		
			
				|  |  | -  $dftype      = $form_state['values']['ftype'];
 | 
	
		
			
				|  |  | -  $dfname      = $form_state['values']['fname'];
 | 
	
		
			
				|  |  | -  $dupstream   = $form_state['values']['upstream'];
 | 
	
		
			
				|  |  | -  $ddownstream = $form_state['values']['downstream'];
 | 
	
		
			
				|  |  | -  $dformat     = $form_state['values']['format'] ? $form_state['values']['format'] : 'fasta_txt';
 | 
	
		
			
				|  |  | -  $duse_parent = $form_state['values']['use_parent'];
 | 
	
		
			
				|  |  | -  $daggregate  = $form_state['values']['aggregate'];
 | 
	
		
			
				|  |  | -  $dagg_types  = $form_state['values']['agg_types'];
 | 
	
		
			
				|  |  | +  $dgenus      = isset($form_state['values']['genus'])      ? $form_state['values']['genus']      : $_SESSION['tripal_feature_seq_extract']['genus'];
 | 
	
		
			
				|  |  | +  $dspecies    = isset($form_state['values']['species'])    ? $form_state['values']['species']    : $_SESSION['tripal_feature_seq_extract']['species'];
 | 
	
		
			
				|  |  | +  $danalysis   = isset($form_state['values']['analysis'])   ? $form_state['values']['analysis']   : $_SESSION['tripal_feature_seq_extract']['analysis'];
 | 
	
		
			
				|  |  | +  $dftype      = isset($form_state['values']['ftype'])      ? $form_state['values']['ftype']      : $_SESSION['tripal_feature_seq_extract']['ftype'];
 | 
	
		
			
				|  |  | +  $dfname      = isset($form_state['values']['fname'])      ? $form_state['values']['fname']      : $_SESSION['tripal_feature_seq_extract']['fname'];
 | 
	
		
			
				|  |  | +  $dupstream   = isset($form_state['values']['upstream'])   ? $form_state['values']['upstream']   : $_SESSION['tripal_feature_seq_extract']['upstream'];
 | 
	
		
			
				|  |  | +  $ddownstream = isset($form_state['values']['downstream']) ? $form_state['values']['downstream'] : $_SESSION['tripal_feature_seq_extract']['downstream'];
 | 
	
		
			
				|  |  | +  $dformat     = isset($form_state['values']['format'])     ? $form_state['values']['format']     : 'fasta_txt';
 | 
	
		
			
				|  |  | +  $duse_parent = isset($form_state['values']['use_parent']) ? $form_state['values']['use_parent'] : $_SESSION['tripal_feature_seq_extract']['use_parent'];
 | 
	
		
			
				|  |  | +  $daggregate  = isset($form_state['values']['aggregate'])  ? $form_state['values']['aggregate']  : $_SESSION['tripal_feature_seq_extract']['aggregate'];
 | 
	
		
			
				|  |  | +  $dagg_types  = isset($form_state['values']['agg_types'])  ? $form_state['values']['agg_types']  : $_SESSION['tripal_feature_seq_extract']['agg_types'];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  |    $form['description'] = array(
 | 
	
		
			
				|  |  | -    '#type'    => 'markup',
 | 
	
		
			
				|  |  | -    '#value'   => t('Use this form to extract sequences in FASTA format.'),
 | 
	
		
			
				|  |  | +    '#type' => 'markup',
 | 
	
		
			
				|  |  | +    '#value' => t('Use this form to retrieve sequences in FASTA format.')
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $sql = "
 | 
	
	
		
			
				|  | @@ -143,6 +143,7 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $species = array();  
 | 
	
		
			
				|  |  | +  $species[] = '';
 | 
	
		
			
				|  |  |    if ($dgenus) {
 | 
	
		
			
				|  |  |      $sql = "
 | 
	
		
			
				|  |  |        SELECT DISTINCT species 
 | 
	
	
		
			
				|  | @@ -151,7 +152,6 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |        ORDER BY species
 | 
	
		
			
				|  |  |      ";
 | 
	
		
			
				|  |  |      $results = chado_query($sql, $dgenus);
 | 
	
		
			
				|  |  | -    $species[] = '';
 | 
	
		
			
				|  |  |      while ($organism = db_fetch_object($results)) {
 | 
	
		
			
				|  |  |        $species[$organism->species] = $organism->species;  
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -172,6 +172,7 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $analyses = array();
 | 
	
		
			
				|  |  | +  $analyses[] = '';
 | 
	
		
			
				|  |  |    if ($dgenus) {
 | 
	
		
			
				|  |  |      $sql = "
 | 
	
		
			
				|  |  |        SELECT DISTINCT A.analysis_id, A.name
 | 
	
	
		
			
				|  | @@ -186,8 +187,8 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |        $sql .= " AND O.species = '%s' ";
 | 
	
		
			
				|  |  |        $args[] = $dspecies;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    $sql .=" ORDER BY A.name ";
 | 
	
		
			
				|  |  |      $results = chado_query($sql, $args);  
 | 
	
		
			
				|  |  | -    $analyses[] = '';
 | 
	
		
			
				|  |  |      while ($analysis = db_fetch_object($results)) {
 | 
	
		
			
				|  |  |        $analyses[$analysis->name] = $analysis->name;  
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -208,6 +209,7 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $ftype = array();
 | 
	
		
			
				|  |  | +  $ftype[] = '';
 | 
	
		
			
				|  |  |    if ($dgenus) {  
 | 
	
		
			
				|  |  |      $sql = "
 | 
	
		
			
				|  |  |        SELECT DISTINCT OFC.cvterm_id, OFC.feature_type
 | 
	
	
		
			
				|  | @@ -220,9 +222,9 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |        $sql .= " AND OFC.species = '%s'";
 | 
	
		
			
				|  |  |        $args[] = $dspecies;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    $sql .= " ORDER BY OFC.feature_type ";
 | 
	
		
			
				|  |  |      $results = chado_query($sql, $args);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -    $ftype[] = '';
 | 
	
		
			
				|  |  |      while ($type = db_fetch_object($results)) {
 | 
	
		
			
				|  |  |        $ftype[$type->feature_type] = $type->feature_type;  
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -259,7 +261,7 @@ function tripal_feature_seq_extract_form(&$form_state = NULL) {
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |    $form['format'] = array(
 | 
	
		
			
				|  |  |      '#title'         => t('Output Format'),
 | 
	
		
			
				|  |  | -    '#type'          => 'select',
 | 
	
		
			
				|  |  | +    '#type'          => 'hidden',
 | 
	
		
			
				|  |  |      '#default_value' => $dformat,
 | 
	
		
			
				|  |  |      '#options'       => array(
 | 
	
		
			
				|  |  |        'fasta_html'  => 'FASTA (in browser)',
 | 
	
	
		
			
				|  | @@ -410,6 +412,13 @@ function tripal_feature_seq_extract_form_submit($form, &$form_state) {
 | 
	
		
			
				|  |  |    $use_parent = $form_state['values']['use_parent'];
 | 
	
		
			
				|  |  |    $aggregate  = $form_state['values']['aggregate'];
 | 
	
		
			
				|  |  |    $agg_types  = $form_state['values']['agg_types'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // we must use the parent sequence if the user has selected 
 | 
	
		
			
				|  |  | +  // the upstream, downstream or to aggregate
 | 
	
		
			
				|  |  | +  if ($upstream or $downstream or $aggregate) {
 | 
	
		
			
				|  |  | +    $use_parent = 1;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    $_SESSION['tripal_feature_seq_extract']['genus']      = $genus;
 | 
	
		
			
				|  |  |    $_SESSION['tripal_feature_seq_extract']['species']    = $species;
 | 
	
	
		
			
				|  | @@ -422,6 +431,7 @@ function tripal_feature_seq_extract_form_submit($form, &$form_state) {
 | 
	
		
			
				|  |  |    $_SESSION['tripal_feature_seq_extract']['use_parent'] = $use_parent;
 | 
	
		
			
				|  |  |    $_SESSION['tripal_feature_seq_extract']['aggregate']  = $aggregate;
 | 
	
		
			
				|  |  |    $_SESSION['tripal_feature_seq_extract']['agg_types']  = $agg_types;
 | 
	
		
			
				|  |  | +  $_SESSION['tripal_feature_seq_extract']['download']   = 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /*
 | 
	
	
		
			
				|  | @@ -487,4 +497,4 @@ function tripal_feature_seq_extract_get_features($org_commonname, $genus, $speci
 | 
	
		
			
				|  |  |        $upstream, $downstream, $sub_features);
 | 
	
		
			
				|  |  |      print $sequence;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +}
 |