利用BioJava从字串中创建一条序列对象以及将其写回一条字串

评论1,206

很多时候我们将序列用一个由字符组成的字串表示,如 "atgccgtggcatcgaggcatatagc". 这是表示复杂生物序列的一种非常方便简洁的方法。Biojava使用SymbolLists和Sequences将这些生物序列表示成对象。Sequences继承SymbolLists,提供特殊的方法来储存诸如序列名称,序列特征等等。你可以认为Sequence是一种SymbolList.

在Sequence和SymbolList中序列不是以字串形式存储的。Biojava使用不同的Symbol对象(来自不同的字母表)来区别不同的生物序列残基。用这种方法可以容易的识别序列是DNA还是RNA,或者标记A是DNA中的标记A还是RNA中的标记A。标记,标记链表(SymbolList)和字母表详情在此。问题的关键是要有一种方法能够使程序员很方便的在字串表示法和对象表示法间转换。Biojava使用Tokenizers(标识符)能够从文本中读取并解析成Biojava中的Sequence或SymbolList对象,反之亦然。例如,可以从DNATools,RNATools, ProteinTools中调用一种静态方法进行上述操作。

String to SymbolList
[code lang="java"]
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;

public class StringToSymbolList {
public static void main(String[] args) {

try {
// 从字串中创建DNA SymbolList
SymbolList dna = DNATools.createDNA("atcggtcggctta");

// 从字串中创建RNA SymbolList
SymbolList rna = RNATools.createRNA("auugccuacauaggc");

// 从字串中创建蛋白质 SymbolList
SymbolList aa = ProteinTools.createProtein("AGFAVENDSA");
}
catch (IllegalSymbolException ex) {
// 如果字串中有不合法标记则抛出例外
ex.printStackTrace();
}

}
}
[/code]

String to Sequence

[code lang="java"]
import org.biojava.bio.seq.*;
import org.biojava.bio.symbol.*;

public class StringToSequence {
public static void main(String[] args) {

try {
// 创建一个叫dna_1的 DNA 序列
Sequence dna = DNATools.createDNASequence("atgctg", "dna_1");

// 创建一个叫rna_1的 RNA序列
Sequence rna = RNATools.createRNASequence("augcug", "rna_1");

// 创建一个叫prot_1的 Protein序列
Sequence prot = ProteinTools.createProteinSequence("AFHS", "prot_1");
}
catch (IllegalSymbolException ex) {
//如果有不合法的标记抛出例外
ex.printStackTrace();
}
}
}

[/code]

SymbolList to String

你可以对SymbolList或Sequence调用seqString()方法得到字串版本。
[code lang="java"]
import org.biojava.bio.symbol.*;

public class SymbolListToString {
public static void main(String[] args) {
SymbolList sl = null;
// 在这里实例化 sl

// 将sl转化成字串
String s = sl.seqString();
}
}
[/code]

发表评论

匿名网友