BioJava:CookBookItaliano:Alphabets:CrossProduct

From BioJava

Jump to: navigation, search

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.

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);
  }
}
Personal tools