Просмотр исходного кода

Changed example sequence button to checkbox & added in varible for administrator to set the example sequence (UI not yet implemented)

Lacey Sanderson 10 лет назад
Родитель
Сommit
b465dbb777
3 измененных файлов с 132 добавлено и 78 удалено
  1. 78 0
      blast_ui.module
  2. 27 22
      includes/blast_ui.blastn.inc
  3. 27 56
      includes/blast_ui.blastp.inc

+ 78 - 0
blast_ui.module

@@ -51,6 +51,16 @@ function blast_ui_menu() {
     'type' => MENU_NORMAL_ITEM
   );
 
+  // Ajax path for the BLAST example sequence.
+  // Arguement is expected to be either 'nucleotide' or 'protein'.
+  $items['blast/example_sequence/%'] = array(
+    'title' => 'Example Sequence',
+    'page callback' => 'ajax_blast_ui_example_sequence_callback',
+    'page arguments' => array(2),
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+  );
+
   // BLAST Results page
   $items['blast/report/%'] = array(
     'title' => 'BLAST Results',
@@ -135,3 +145,71 @@ function show_blast_output($job_id) {
 
   return '';
 }
+
+/**
+ *
+ */
+function ajax_blast_ui_example_sequence_callback($form, $form_state) {
+
+  // First, set a default example sequence in case administrators have not yet
+  // bothered to set their own.
+  $sequence_type = $form_state['values']['sequence_type'];
+  if ($sequence_type == 'nucleotide') {
+    $default_example_sequence = '>partial lipoxygenase Glyma15g03040
+TTTCGTATGA GATTAAAATG TGTGAAATTT TGTTTGATAG GACATGGGAA
+AGGAAAAGTT GGAAAGGCTA CAAATTTAAG AGGACAAGTG TCGTTACCAA
+CCTTGGGAGC TGGCGAAGAT GCATACGATG TTCATTTTGA ATGGGACAGT
+GACTTCGGAA TTCCCGGTGC ATTTTACATT AAGAACTTCA TGCAAGTTGA
+GTTCTATCTC AAGTCTCTAA CTCTCGAAGA CATTCCAAAC CACGGAACCA
+TTCACTTCGT ATGCAACTCC TGGGTTTACA ACTCAAAATC CTACCATTCT
+GATCGCATTT TCTTTGCCAA CAATGTAAGC TACTTAAATA CTGTTATACA
+TTGTCTAACA TCTTGTTAGA GTCTTGCATG ATGTGTACCG TTTATTGTTG
+TTGTTGAACT TTACCACATG GCATGGATGC AAAAGTTGTT ATACACATAA
+ATTATAATGC AGACATATCT TCCAAGCGAG ACACCGGCTC CACTTGTCAA
+GTACAGAGAA GAAGAATTGA AGAATGTAAG AGGGGATGGA ACTGGTGAGC
+GCAAGGAATG GGATAGGATC TATGATTATG ATGTCTACAA TGACTTGGGC
+GATCCAGATA AGGGTGAAAA GTATGCACGC CCCGTTCTTG GAGGTTCTGC
+CTTACCTTAC CCTCGCAGAG GAAGAACCGG AAGAGGAAAA ACTAGAAAAG
+GTTTCTCACT AGTCACTAAT TTATTACTTT TTAATGTTTG TTTTTAGGCA
+TCTTTTCTGA TGAAATGTAT ACTTTTGATG TTTTTTTGTT TTAGCATAAC
+TGAATTAGTA AAGTGTGTTG TGTTCCTTAG AAGTTAGAAA AGTACTAAGT
+ATAAGGTCTT TGAGTTGTCG TCTTTATCTT AACAGATCCC AACAGTGAGA
+AGCCCAGTGA TTTTGTTTAC CTTCCGAGAG ATGAAGCATT TGGTCACTTG
+AAGTCATCAG ATTTTCTCGT TTATGGAATC AAATCAGTGG CTCAAGACGT
+CTTGCCCGTG TTGACTGATG CGTTTGATGG CAATCTTTTG AGCCTTGAGT
+TTGATAACTT TGCTGAAGTG CGCAAACTCT ATGAAGGTGG AGTTACACTA
+CCTACAAACT TTCTTAGCAA GATCGCCCCT ATACCAGTGG TCAAGGAAAT
+TTTTCGAACT GATGGCGAAC AGTTCCTCAA GTATCCACCA CCTAAAGTGA
+TGCAGGGTAT GCTACATATT TTGAATATGT AGAATATTAT CAATATACTC
+CTGTTTTTAT TCAACATATT TAATCACATG GATGAATTTT TGAACTGTTA';
+  }
+  elseif ($sequence_type == 'protein') {
+    $default_example_sequence = '>gi|166477|gb|AAA96434.1| resveratrol synthase [Arachis hypogaea]
+MVSVSGIRKVQRAEGPATVLAIGTANPPNCIDQSTYADYYFRVTNSEHMTDLKKKFQRICERTQIKNRHM
+YLTEEILKENPNMCAYKAPSLDAREDMMIREVPRVGKEAATKAIKEWGQPMSKITHLIFCTTSGVALPGV
+DYELIVLLGLDPCVKRYMMYHQGCFAGGTVLRLAKDLAENNKDARVLIVCSENTAVTFRGPSETDMDSLV
+GQALFADGAAAIIIGSDPVPEVEKPIFELVSTDQKLVPGSHGAIGGLLREVGLTFYLNKSVPDIISQNIN
+DALNKAFDPLGISDYNSIFWIAHPGGRAILDQVEQKVNLKPEKMKATRDVLSNYGNMSSACVFFIMDLMR
+KRSLEEGLKTTGEGLDWGVLFGFGPGLTIETVVLRSVAI';
+  }
+  else {
+    $default_example_sequence = '';
+  }
+
+  // If the Show Example checkbox is true then put the example in the textfield
+  if ($form_state['values']['example_sequence']) {
+    // Set the value to be the example sequence (either set by the administrator
+    // or the default set above).
+    $form['query']['FASTA']['#value'] = variable_get(
+      'blast_ui_' . $sequence_type . '_example_sequence',
+      $default_example_sequence
+    );
+  }
+  // Otherwise we want to remove the already displayed example.
+  else {
+    $form['query']['FASTA']['#value'] = '';
+  }
+
+  return $form['query']['FASTA'];
+
+}

Разница между файлами не показана из-за своего большого размера
+ 27 - 22
includes/blast_ui.blastn.inc


+ 27 - 56
includes/blast_ui.blastp.inc

@@ -17,7 +17,13 @@ function blast_protein_form($form, &$form_state) {
 	//  CSS support to the form
 	$form['#attached']['css'] = array(
 		drupal_get_path('module', 'blast_ui') . '/css/form.css',
-		);
+	);
+
+  // Add the sequence type to the form
+  $form['sequence_type'] = array(
+    '#type' => 'hidden',
+    '#value' => 'protein'
+  );
 
   // PROTEIN QUERY
   //.........................
@@ -25,27 +31,30 @@ function blast_protein_form($form, &$form_state) {
   $form['query'] = array(
     '#type' => 'fieldset',
     '#title' => t('Enter Query Sequence'),
-    '#description' => t('Enter one or more queries in the top text box or use the browse button to upload a file from your local disk. The file may contain a single sequence or a list of sequences. In both cases, the data must be in FASTA format. <a href="http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml" target="_blank">More information..</a> '),
+    '#description' => t('Enter one or more queries in the top text box or use '
+      . 'the browse button to upload a file from your local disk. The file may '
+      . 'contain a single sequence or a list of sequences. In both cases, the '
+      . 'data must be in <a href="@fasta-format-url" target="_blank">FASTA format</a>. ',
+        array(
+          '@fasta-format-url' => 'http://www.ncbi.nlm.nih.gov/BLAST/blastcgihelp.shtml'
+        )
+      ),
     '#collapsible' => TRUE,
     '#collapsed' => FALSE,
-   	'#prefix' => '<div class="two-col">',
-    '#suffix' => '</div>',
   );
+
+  // Checkbox to show an example.
   $form['query']['example_sequence'] = array(
-    '#type' => 'button',
-    '#button_type'=> 'button',
-    '#limit_validation_errors' => array(),
-    '#value' => t('Example Sequence'),
-    '#prefix' => '<div class="center">',
-    '#suffix' => '</div>',
-    '#validate' => array(),
+    '#type' => 'checkbox',
+    '#title' => t('Show an Example Sequence'),
+    '#prefix' => '<span style="float: right;">',
+    '#suffix' => '</span>',
     '#ajax' => array(
-    	'callback' => 'ajax_nucleotide_text_area_callback',
-    	'wrapper'  => 'fasta_seq',
-        'method'   => 'replace',
-        'effect'   => 'fade',
-        ),
-	  '#attributes' => array('onclick' => 'return false;'),
+    	'callback' => 'ajax_blast_ui_example_sequence_callback',
+    	'wrapper'  => 'fasta-textarea',
+      'method'   => 'replace',
+      'effect'   => 'fade',
+    ),
   );
 
 
@@ -53,7 +62,7 @@ function blast_protein_form($form, &$form_state) {
     '#type' => 'textarea',
     '#title' => t('Enter FASTA sequence(s)'),
     '#description'=>t('Enter query sequence(s) in the text area.'),
-    '#prefix' => '<div id="fasta_seq">',
+    '#prefix' => '<div id="fasta-textarea">',
     '#suffix' => '</div>',
   );
 
@@ -77,25 +86,6 @@ attempting to submit your BLAST.</strong>',
     ),
   );
 
-
-	$form['query']['example_sequence'] = array(
-			'#type' => 'button',
-			'#button_type'=> 'button',
-			'#limit_validation_errors' => array(),
-			'#value' => t('Example Sequence'),
-			'#prefix' => '<div class="center">',
-			'#suffix' => '</div>',
-			'#validate' => array(),
-			'#ajax' => array(
-				'callback' => 'ajax_protein_text_area_callback',
-				'wrapper'  => 'fasta_seq',
-					'method'   => 'replace',
-					'effect'   => 'fade',
-					),
-		'#attributes' => array('onclick' => 'return false;'),
-		);
-
-
   // BLAST DATABASE
   //.........................
 
@@ -948,22 +938,3 @@ function _ajax_example_get_second_dropdown_options($key = '') {
 function ajax_example_dependent_dropdown_callback($form, $form_state) {
   return $form['ALG']['SParam']['gapCost'];
 }
-
-
-// call back function for example sequence
-function ajax_protein_text_area_callback($form, $form_state) {
- $element = $form['query']['FASTA']; // Get example Protein sequence
-
-$element['#value'] =
-	'>gi|166477|gb|AAA96434.1| resveratrol synthase [Arachis hypogaea]
-MVSVSGIRKVQRAEGPATVLAIGTANPPNCIDQSTYADYYFRVTNSEHMTDLKKKFQRICERTQIKNRHM
-YLTEEILKENPNMCAYKAPSLDAREDMMIREVPRVGKEAATKAIKEWGQPMSKITHLIFCTTSGVALPGV
-DYELIVLLGLDPCVKRYMMYHQGCFAGGTVLRLAKDLAENNKDARVLIVCSENTAVTFRGPSETDMDSLV
-GQALFADGAAAIIIGSDPVPEVEKPIFELVSTDQKLVPGSHGAIGGLLREVGLTFYLNKSVPDIISQNIN
-DALNKAFDPLGISDYNSIFWIAHPGGRAILDQVEQKVNLKPEKMKATRDVLSNYGNMSSACVFFIMDLMR
-KRSLEEGLKTTGEGLDWGVLFGFGPGLTIETVVLRSVAI';
-
-return $element;
-}
-
-

Некоторые файлы не были показаны из-за большого количества измененных файлов