biosmalltalk (Pharo 版) を使用して、GenBank 配列を同等の FASTA 形式に変換する方法を教えてください。ディスクから GenBank ファイルを読み取る方法は既にわかっています。ファイル xym | x:=時間ミリ秒クロック値。ファイル := BioFile on: (FileStream readOnlyFileNamed: BioObject testFilesDirectoryName asFileReference / 'AF165912.gbk')。m:=BioParser tokenizeMultiFasta: ファイルの内容。y:=時間ミリ秒ClockValue. トランスクリプトを開きます。転写クリア。Transcript show:m;cr. 今、私はそれに相当する FASTA を取得したいと考えています。
1 に答える
GenBank 形式は人間が読める形式 (と思われる) ですが、実際には簡単に解析できません。XML 形式が利用できなかったか、まったく使用されていなかったとき、フラットな GenBank 形式を解析するためにライブラリをプログラミングすることに多くの努力が費やされてきました。BioSmalltalkの背後にある目標の 1 つは、複雑さの軽減に焦点を当てることです。これは、適切なツールを使用することを意味します。そのため、GenBank XML 形式の使用を優先することを期待して、GenBank フラット パーサーは含まれていません。
試してみるには、最初に最新の BioSmalltalk をクリーンな Pharo 3.0にインストールし、次のコマンドを評価します。
$ pharo Pharo.image "config" "http://smalltalkhub.com/mc/hernan/BioSmalltalk" "ConfigurationOfBioSmalltalk" --printVersion --install=development
または画像内からの同等のもの:
Gofer it
smalltalkhubUser: 'hernan' project: 'BioSmalltalk';
configuration;
loadDevelopment.
GenBank XML 形式のファイルを解析するには、再現可能な方法でファイルを XML 形式で再ダウンロードすることを強くお勧めします。NCBI からファイルをダウンロードした場合は、Entrez e-Utils BioSmalltalk クライアントを使用できます (現在、NCBI は Web ページから XML ダウンロード オプションを削除しました)。
次のスクリプトは、2 つの GenBank レコードを XML でダウンロードし、シーケンス定義とシーケンス文字列でノードをフィルター処理し、それらを 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 を使い始める場合は、純粋なオブジェクトがあり、インスペクター/エクスプローラー ツールを使用してほとんどすべてを検出できることを思い出してください。