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);
}
} ```