BioJava:CookBook:AAPROP:profeat

How can I compute PROFEAT properties via APIs?

BioJava provides a set of APIs to generate PROFEAT properties.
PROFEAT generate properties of a protein sequence based on its converted attributes.

  • The seven different attributes are
  • Hydrophobicity (Polar, Neutral, Hydrophobicity)
  • Normalized van der Waals volume (Range 0 - 2.78, 2.95 - 4.0, 4.03 - 8.08)
  • Polarity (Value 4.9 - 6.2, 8.0 - 9.2, 10.4 - 13.0)
  • Polarizability (Value 0 - 1.08, 0.128 - 0.186, 0.219 - 0.409)
  • Charge (Positive, Neutral, Negative)
  • Secondary structure (Helix, Strand, Coil)
  • Solvent accessibility (Buried, Exposed, Intermediate)

Please see PROFEAT for more information about these properties.
The class providing the core functionality for this is the IProfeatProperties class.

Short Example 1: Computing composition of the various grouping for all seven attributes

```java String sequence = “QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE”; Map<ATTRIBUTE, Map<GROUPING, Double>> attribute2Grouping2Double = ProfeatProperties.getComposition(sequence); for(ATTRIBUTE a:attribute2Grouping2Double.keySet()){

   System.out.println("=======" + a + "=======");
   System.out.println("GROUP1 = " + attribute2Grouping2Double.get(a).get(GROUPING.GROUP1));
   System.out.println("GROUP2 = " + attribute2Grouping2Double.get(a).get(GROUPING.GROUP2));
   System.out.println("GROUP3 = " + attribute2Grouping2Double.get(a).get(GROUPING.GROUP3));
   System.out.println();

} ```

Short Example 2: Computing the number of transition between various grouping for all seven attribute with respect to the length of sequence

```java String sequence = “QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE”; Map<ATTRIBUTE, Map<TRANSITION, Double>> attribute2Transition2Double = ProfeatProperties.getTransition(sequence); for(ATTRIBUTE a:attribute2Transition2Double.keySet()){

   System.out.println("=======" + a + "=======");
   System.out.println("1<=>1 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_11));
   System.out.println("2<=>2 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_22));
   System.out.println("3<=>3 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_33));
   System.out.println("1<=>2 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_12));
   System.out.println("1<=>3 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_13));
   System.out.println("2<=>3 = " + attribute2Transition2Double.get(a).get(TRANSITION.BETWEEN_23));
   System.out.println();

} ```

Short Example 3: Computing the position with respect to the sequence where the given distribution of the grouping can be found

```java String[] sequences = new String[3]; String sequence = “QIKDLLVSSSTDLDTTLVLVNAIYFKGMWKTAFNAEDTREMPFHVTKQESKPVQMMCMNNSFNVATLPAE”; Map<ATTRIBUTE , Map<GROUPING, Map<DISTRIBUTION, Double>>> attribute2Grouping2Distribution2Double = ProfeatProperties.getDistributionPosition(sequence); for(ATTRIBUTE a:attribute2Grouping2Distribution2Double.keySet()){

   System.out.println("=======" + a + "=======");
   System.out.println("GROUP1 = " + attribute2Grouping2Distribution2Double.get(a).get(GROUPING.GROUP1));
   System.out.println("GROUP2 = " + attribute2Grouping2Distribution2Double.get(a).get(GROUPING.GROUP2));
   System.out.println("GROUP3 = " + attribute2Grouping2Distribution2Double.get(a).get(GROUPING.GROUP3));

} ```