2014-09-26 87 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

相關問題