• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:条件に一致した塩基配列を含むデータを抽出するには?)

条件に一致した塩基配列のデータ抽出方法

このQ&Aのポイント
  • 条件に一致した塩基配列を含むデータを抽出する方法を教えてください。(perl)
  • CGCTGCCGGGGAACGGTCTGGTCAGGGATCTATCATGAGGという塩基配列を含むデータを、fasta形式のファイルから抽出するには、BioPerlのSeqIOオブジェクトを使用すると便利です。
  • Perlでデータの処理を行う際には、条件に合致する塩基配列を正規表現を使って検索し、そのデータを別のファイルに出力するような処理を行います。具体的な方法は、コードを見る必要がありますが、基本的な記述としては、ファイルを読み込んでデータを処理し、条件に一致したデータを別のファイルに出力する手順を追っていくことになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

少々泥臭いですすみません #!/usr/bin/perl # 使い方の例 # perl このスクリプト.pl TGAAGTGCA # TODO 要件に合わせて改造 $pattern = (@ARGV == 1)? $ARGV[0]: 'TGAAGTGCA'; open(F, 'foo.fasta') || die "no file error"; $cache = ''; $match = 0; foreach (<F>) { # シーケンスデータの始まり if (/^>/) { $match = 0; $cache = $_; next; } # シーケンス文字列に該当パターンが含まれるか検証 if (!$match && /$pattern/) { $match = 1; print $cache; # ここまでのシーケンスデータを出力 } # 入力行を出力またはキャッシュ if ($match) { print $_; } else { $cache .= $_; } } close(F);

go-ne
質問者

お礼

ありがとうございます! しっかり理解して、今後に役立てていこうと思います。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

探している塩基配列が複数行にまたがる可能性があるので, それぞれの塩基配列ごとに「1つの文字列にしてから」調べる必要がありますね>#2.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「配列名」がユニークならハッシュを使う.

go-ne
質問者

お礼

ありがとうございます。