杂交产物成分表用来将一组标记包装成单个标记。这有利于处理象密码子这样的标记。然而,有时候我们希望将这些标记转变回它们的组成标记,下面的例子说明了如何完成这个任务。
杂交产物成分表中的标记实现了原子标记(atomic symbol)接口。前缀“原子”显示这个标记不可再分。所以有人就会问道,“如何将不可再分的标记分成它的组成标记?”。原子标记的完备定义是它不能再被分解成简单的标记,而这个简单标记却又和原子标记处在相同成分表中。这样,杂交产物成分中的标记并不和它的组成标记处于同一个成分表中。(例如,atg,acc att是密码子标记,由DNAxDNAxDNA杂交生成,但在密码子成分表中并不包含a,g,t,c。所以其原子性仍成立 -- 译者注)密码子对应(DNAxDNAxDNA)成分表,而它的组成标记对应DNA成分表。
和基本标记(Basis symbol)相比较,基本标记分解的组成标记可以和基本标记处于同一个成分表中。
[code lang="java"]
package biojava_in_anger;
import java.util.*;
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;
public class BreakingComponents {
public static void main(String[] args) {
// 创建密码子成分表
List l = Collections.nCopies(3, DNATools.getDNA());
Alphabet alph = Alphabet.Manager.getCrossProductAlphabet(l);
// 从成分表中取得第一个原子标记
Iterator iter = ((FiniteAlphabet)alpha).iterator();
AtomicSymbol codon = (AtomicSymbol)iter.next();
System.out.print(codon.getName()+" is made of: ");
// 将它(第一个标记)的组成标记列举出来
List symbols = codon.getSymbols();
for (int i = 0;i < symbols.size();i++) {
if(i!= 0 )
System.out.print(", ");
Symbol sym = (Symbol)symbols.get(i);
System.out.println(sym.getName());
}
}
}
[/code]