2014-09-26 100 views
0

请指导我使用biosmalltalk(Pharo版)将GenBank序列转换为等效的FASTA格式。我已经想通过磁盘读取GenBank文件: |文件x y m | x:=时间millisecondClockValue。 file:= BioFile on:(FileStream readOnlyFileNamed:BioObject testFilesDirectoryName asFileReference /'AF165912.gbk')。 m:= BioParser tokenizeMultiFasta:文件内容。 y:=时间millisecondClockValue。 抄录打开。 成绩单明确。 成绩单显示:m; cr。 现在我想要得到它的FASTA等价物。请帮助我从磁盘读取genbank文件并将其转换为fasta

+0

欢迎来到Stack Overflow!出于某种原因,您在注册为新用户时选择不参加[Tour](http://stackoverflow.com/tour);请尽快这样做。就像这样,你的问题不在堆栈溢出的主题上。请阅读[我可以询问什么主题?](http://stackoverflow.com/help/on-topic)和[我如何提出一个好问题?](http://stackoverflow.com/help/how -to-问)。 – usr2564301 2014-09-26 09:56:07

回答

1

GenBank格式是(应该是)人类可读的格式,但它不是很容易解析。当XML格式不可用或者完全不能使用时,已经花费了大量的努力,并且仍然在编程库中解析平坦的GenBank格式。 BioSmalltalk背后的目标之一就是关注复杂性降低,这意味着使用正确的工具。出于这个原因,GenBank平面分析器不包含在内,希望能够支持使用GenBank XML format

来试用先安装在清洁Pharo 3.0最新BioSmalltalk评估以下命令:

$ pharo Pharo.image "config" "http://smalltalkhub.com/mc/hernan/BioSmalltalk" "ConfigurationOfBioSmalltalk" --printVersion --install=development 

或从图像中的等价:

Gofer it 
    smalltalkhubUser: 'hernan' project: 'BioSmalltalk'; 
    configuration; 
    loadDevelopment. 

为了解析基因库XML格式的文件,我强烈建议您以可重现的方式重新下载XML格式的文件。如果您从NCBI下载了您的文件,您可以使用Entrez e-Utils BioSmalltalk客户端(目前NCBI从网页中删除了XML下载选项):

以下脚本以XML格式下载两个GenBank记录,序列定义和序列字符串,并以FASTA格式导出它们。该序列位于GBSeq_sequence节点中。

| gbReader fastaCollection seqsWithDefs | 
fastaCollection := BioFastaMultiRecord new. 
gbReader := (BioEntrezClient new nuccore 
    uids: #(57240072 57240071); 
    setModeXML; 
    fetch) reader. 
seqsWithDefs := gbReader 
    selectNodes: #('GBSeq_definition' 'GBSeq_sequence') 
    in: gbReader contents. 
(seqsWithDefs at: 'GBSeq_definition') with: (seqsWithDefs at: 'GBSeq_sequence') do: [ : defs : seqs | 
    fastaCollection addFastaRecord: (BioFastaRecord named: defs value sequence: seqs value) ]. 
BioFASTAFormatter new exportFrom: fastaCollection sequences. 

如果你开始与Smalltalk中,记得你有纯净的对象,几乎一切都可以通过检查/ Explorer的工具被发现。

+0

尊敬的埃尔南,感谢您的宝贵意见。但我有点不同。正如我们可以使用BioPerl或BioJava等几种脚本语言在磁盘上转换GenBank文件: – 2014-09-29 17:31:50

+0

亲爱的Hernán,感谢您的宝贵意见。但我有点不同。正如我们可以通过使用几种脚本语言(如BioPerl或BioJava)在磁盘上转换GenBank文件。我希望我也可以使用Biosmalltalk来做同样的事情。顺便说一句,我目前使用的是BioSmalltalk 0.5。我使用的BioPerl代码如下所示:my $ infilename ='AF165912.gbk'; my $ outfilename ='out_PerlAF165912.fa'; #读取序列数组 @seq_object_array = read_all_sequences($ infilename,'genbank'); write_sequence(“> $ outfilename”,'fasta',@seq_object_array);谢谢你的帮助。 – 2014-09-29 17:54:27

相关问题