BioJava:CookBookItaliano:Alphabets:CrossProduct

Come posso creare un CrossProductAlphabet? (ad esempio un alfabeto di codoni)

Un CrossProductAlphabet è il risultato della moltiplicazione di Alfabeti fra di loro. I CrossProductAlphabets sono utilizzati per racchiudere 2 o più Simboli all’interno di un singolo “cross product” da considerarsi come un unico Simbolo. Ad esempio utilizzando un cross a 3 vie dell’alfabeto del DNA è possibile racchiudere un codone come un Simbolo(ad esempio un alfabeto di triplette). E’ possibile poi contare i Simboli relativi ai codoni in un Count o è possibile utilizzarli in una Distribution. I CrossProductAlphabets possono essere creati tramite un nome [purchè gli Alfabeti siano stati registrati all’interno dell’AlphabetManager) o creando una nuova lista di Alfabeti e creando un Alfabeto a partire da una List. Entrambi i metodi sono mostrati nell’esempio seguente.

```java import java.util.*; import org.biojava.bio.seq.*; import org.biojava.bio.symbol.*;

public class CrossProduct {

 public static void main(String[] args) {

   //creo un CrossProductAlphabet a partire da una lista
   List l = Collections.nCopies(3, DNATools.getDNA());
   Alphabet codon = AlphabetManager.getCrossProductAlphabet(l);

   //ottengo lo stesso alfabeto a partire dal nome
   Alphabet codon2 =
       AlphabetManager.generateCrossProductAlphaFromName("(DNA x DNA x DNA)");

   //mostriamo che i due alfabeti sono identici
   System.out.println(codon == codon2);
 }

} ```