3 億の塩基からなる文字列があります。
$str = "ATCGTAGCTAGXCTAGCTAGCTGATXXXXATCGTAGCTAGCTGXTGCTAGCXXXXA...A";
文字列内の[ATGC]ではない文字を別のものに置き換えたい、たとえば「A」としましょう。その間、置き換えられた文字の位置を取得します。
私はこれを試しました:
while ($str=~/[^ATGC]/ig)
{
$pos = pos($str);
substr($str, $pos-1,1) = "A";
}
しかし、速度は良くありません。
これを行うためのより良い方法を知っている人はいますか?