BioJava:CookBookItaliano:Alphabets:Custom
Come posso creare un Alfabeto personalizzato con Simboli personalizzati?
Questo esempio mostra la creazione di un alfabeto binario che ha 2 Simboli zero e uno. La personalizzazione dei Simboli e dell’Alfabeto può essere utilizzata per costruire nuove Liste di Simboli, Sequenze, Distribuzioni, etc.
```java import org.biojava.bio.symbol.*; import org.biojava.bio.*; import java.util.*;
public class Binary {
public static void main(String[] args) {
//crea il Simbolo zero senza nessuna annotazione
Symbol zero =
AlphabetManager.createSymbol("zero", Annotation.EMPTY_ANNOTATION);
//creo il Simbolo uno
Symbol one =
AlphabetManager.createSymbol("one", Annotation.EMPTY_ANNOTATION);
//inserisco i 2 simboli in un Set
Set symbols = new HashSet();
symbols.add(zero); symbols.add(one);
//creo l'alfabeto binary
FiniteAlphabet binary = new SimpleAlphabet(symbols, "Binary");
//itero i vari elementi dell'alfabeto per verificare che tutto funzioni correttamente
for (Iterator i = binary.iterator(); i.hasNext(); ) {
Symbol sym = (Symbol)i.next();
System.out.println(sym.getName());
}
//Bisogna registrare i nuovi alfabeti con l'AlphabetManager
AlphabetManager.registerAlphabet(binary.getName(), binary);
/*
* Il nuovo alfabeto cosi' creato e' stato registrato con
* l'AlphabetManager con il nome "Binary". Per ottenere l'istanza di
* di quest'ultimo basta richiamarlo con il nome assegnato alla precendente istanza
*/
Alphabet alpha = AlphabetManager.alphabetForName("Binary");
//verifico che siamo uguali
System.out.println(alpha == binary);
}
}
```