|
@@ -495,7 +495,7 @@ function blast_ui_blastp_advanced_options_form_submit($form, $form_state) {
|
|
|
// Expand Gap Cost key into open and extend penalties
|
|
|
$matrix = $form_state['values']['Matrix'];
|
|
|
$gapKey = $form_state['values']['gapCost'];
|
|
|
- $gap = getGap($matrix, $gapKey);
|
|
|
+ $gap = _set_protein_gap($matrix, $gapKey);
|
|
|
|
|
|
//eksc- need to implement query range limit
|
|
|
// q_range
|
|
@@ -946,356 +946,446 @@ function _get_match_mismatch($which) {
|
|
|
}//switch
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * Get a list of options for gaps.
|
|
|
+ */
|
|
|
+function _get_gap_options($which) {
|
|
|
+ switch ($which) {
|
|
|
+ case 'blastn':
|
|
|
+ return array(
|
|
|
+ 0 => t('Existence: 5 Extension: 2'),
|
|
|
+ 1 => t('Existence: 2 Extension: 2'),
|
|
|
+ 2 => t('Existence: 1 Extension: 2'),
|
|
|
+ 3 => t('Existence: 0 Extension: 2'),
|
|
|
+ 4 => t('Existence: 3 Extension: 1'),
|
|
|
+ 5 => t('Existence: 2 Extension: 1'),
|
|
|
+ 6 => t('Existence: 1 Extension: 1'),
|
|
|
+ );
|
|
|
+ }//switch
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Translate above gap options into blast gap open and extend costs.
|
|
|
+ */
|
|
|
+function _set_gap($gap_key) {
|
|
|
+ switch ($gap_key) {
|
|
|
+ case 0:
|
|
|
+ $gapOpen = 5;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ $gapOpen = 2;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $gapOpen = 1;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $gapOpen = 0;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ $gapOpen = 3;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ $gapOpen = 2;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ $gapOpen = 1;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ }//switch
|
|
|
+
|
|
|
+ return array('gapOpen' => $gapOpen, 'gapExtend' => $gapExtend);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Translate mismatch/match ratio option into blast penalty/reward options.
|
|
|
+ */
|
|
|
+function _set_match_mismatch($m_m) {
|
|
|
+ switch ($m_m) {
|
|
|
+ case 0:
|
|
|
+ $penalty = -2;
|
|
|
+ $reward = 1;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ $penalty = -3;
|
|
|
+ $reward = 1;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $penalty = -4;
|
|
|
+ $reward = 1;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $penalty = -3;
|
|
|
+ $reward = 2;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ $penalty = -5;
|
|
|
+ $reward = 4;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ $penalty = -1;
|
|
|
+ $reward = 1;
|
|
|
+ break;
|
|
|
+ }//switch
|
|
|
+
|
|
|
+ return array('penalty' => $penalty, 'reward' => $reward);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* Get gap values based on matrix and selected gap "key"
|
|
|
*/
|
|
|
-function getGap($matrix, $gapkey) {
|
|
|
- switch ($matrix) {
|
|
|
- case 'PAM30':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
- $gapOpen = 7;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- $gapOpen = 6;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $gapOpen = 5;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $gapOpen = 10;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- $gapOpen = 9;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- $gapOpen = 8;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'PAM70':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
- $gapOpen = 8;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- $gapOpen = 7;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $gapOpen = 6;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $gapOpen = 11;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- $gapOpen = 10;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- $gapOpen = 9;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'PAM250':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+function _set_protein_gap($matrix, $gapkey) {
|
|
|
+ switch ($matrix) {
|
|
|
+ case 'PAM30':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
+ $gapOpen = 7;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ $gapOpen = 6;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $gapOpen = 5;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $gapOpen = 10;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ $gapOpen = 9;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ $gapOpen = 8;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'PAM70':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
+ $gapOpen = 8;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ $gapOpen = 7;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ $gapOpen = 6;
|
|
|
+ $gapExtend = 2;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ $gapOpen = 11;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ $gapOpen = 10;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ $gapOpen = 9;
|
|
|
+ $gapExtend = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'PAM250':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 15;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 14;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 17;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:
|
|
|
$gapOpen = 16;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 7:
|
|
|
$gapOpen = 15;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 8:
|
|
|
+ case 8:
|
|
|
$gapOpen = 14;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 9:
|
|
|
+ case 9:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 10:
|
|
|
+ case 10:
|
|
|
$gapOpen = 21;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 11:
|
|
|
+ case 11:
|
|
|
$gapOpen = 20;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 12:
|
|
|
+ case 12:
|
|
|
$gapOpen = 19;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 13:
|
|
|
+ case 13:
|
|
|
$gapOpen = 18;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 14:
|
|
|
+ case 14:
|
|
|
$gapOpen = 17;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'BLOSUM80':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'BLOSUM80':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 8;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 7;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 6;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'BLOSUM62':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'BLOSUM62':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 8;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 7;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 6;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 7:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 8:
|
|
|
+ case 8:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 9:
|
|
|
+ case 9:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 10:
|
|
|
+ case 10:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'BLOSUM45':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'BLOSUM45':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 15;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 14;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 7:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 8:
|
|
|
+ case 8:
|
|
|
$gapOpen = 19;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 9:
|
|
|
+ case 9:
|
|
|
$gapOpen = 18;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 10:
|
|
|
+ case 10:
|
|
|
$gapOpen = 17;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 11:
|
|
|
+ case 11:
|
|
|
$gapOpen = 16;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'BLOSUM50':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'BLOSUM50':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 3;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 16;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:
|
|
|
$gapOpen = 15;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 7:
|
|
|
$gapOpen = 14;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 8:
|
|
|
+ case 8:
|
|
|
$gapOpen = 13;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 9:
|
|
|
+ case 9:
|
|
|
$gapOpen = 12;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 10:
|
|
|
+ case 10:
|
|
|
$gapOpen = 19;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 11:
|
|
|
+ case 11:
|
|
|
$gapOpen = 18;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 12:
|
|
|
+ case 12:
|
|
|
$gapOpen = 17;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 13:
|
|
|
+ case 13:
|
|
|
$gapOpen = 16;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 14:
|
|
|
+ case 14:
|
|
|
$gapOpen = 15;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'BLOSUM90':
|
|
|
- switch ($gapKey) {
|
|
|
- case 0:
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'BLOSUM90':
|
|
|
+ switch ($gapKey) {
|
|
|
+ case 0:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 1:
|
|
|
+ case 1:
|
|
|
$gapOpen = 8;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:
|
|
|
$gapOpen = 7;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case 3:
|
|
|
$gapOpen = 6;
|
|
|
$gapExtend = 2;
|
|
|
break;
|
|
|
- case 4:
|
|
|
+ case 4:
|
|
|
$gapOpen = 11;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:
|
|
|
$gapOpen = 10;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:
|
|
|
$gapOpen = 9;
|
|
|
$gapExtend = 1;
|
|
|
break;
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
return array(
|
|
@@ -1305,92 +1395,3 @@ function getGap($matrix, $gapkey) {
|
|
|
}
|
|
|
|
|
|
|
|
|
-/**
|
|
|
- * Get a list of options for gaps.
|
|
|
- */
|
|
|
-function _get_gap_options($which) {
|
|
|
- switch ($which) {
|
|
|
- case 'blastn':
|
|
|
- return array(
|
|
|
- 0 => t('Existence: 5 Extension: 2'),
|
|
|
- 1 => t('Existence: 2 Extension: 2'),
|
|
|
- 2 => t('Existence: 1 Extension: 2'),
|
|
|
- 3 => t('Existence: 0 Extension: 2'),
|
|
|
- 4 => t('Existence: 3 Extension: 1'),
|
|
|
- 5 => t('Existence: 2 Extension: 1'),
|
|
|
- 6 => t('Existence: 1 Extension: 1'),
|
|
|
- );
|
|
|
- }//switch
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Translate above gap options into blast gap open and extend costs.
|
|
|
- */
|
|
|
-function _set_gap($gap_key) {
|
|
|
- switch ($gap_key) {
|
|
|
- case 0:
|
|
|
- $gapOpen = 5;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- $gapOpen = 2;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $gapOpen = 1;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $gapOpen = 0;
|
|
|
- $gapExtend = 2;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- $gapOpen = 3;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- $gapOpen = 2;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- case 6:
|
|
|
- $gapOpen = 1;
|
|
|
- $gapExtend = 1;
|
|
|
- break;
|
|
|
- }//switch
|
|
|
-
|
|
|
- return array('gapOpen' => $gapOpen, 'gapExtend' => $gapExtend);
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Translate mismatch/match ratio option into blast penalty/reward options.
|
|
|
- */
|
|
|
-function _set_match_mismatch($m_m) {
|
|
|
- switch ($m_m) {
|
|
|
- case 0:
|
|
|
- $penalty = -2;
|
|
|
- $reward = 1;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- $penalty = -3;
|
|
|
- $reward = 1;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- $penalty = -4;
|
|
|
- $reward = 1;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- $penalty = -3;
|
|
|
- $reward = 2;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- $penalty = -5;
|
|
|
- $reward = 4;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- $penalty = -1;
|
|
|
- $reward = 1;
|
|
|
- break;
|
|
|
- }//switch
|
|
|
-
|
|
|
- return array('penalty' => $penalty, 'reward' => $reward);
|
|
|
-}
|