最長連続パターンの計算

最長連続パターンの計算

シーケンスファイルがあります。

$猫ファイル
CACCGTTGCCAAACAATG
TTAGAAGCCTGTCAGCCT
CATTGCTCTCAGACCCAC
おっぱいおっぱい
ACACGGAATCTGCTTTTT
カガアッドCCCAAAAGATGG

C + Tの最も長い拡張を計算したいと思います。合計C + Tのみを計算できますが、最長のストレッチが必要です。

$catファイル| awk '{ $0 印刷、gsub(/[cCtT]/,"",$1)}'
CACCGTTGCCAAACAATG9
TTAGAAGCCTGTCAGCCCT 10
猫GCTCTCAGACCCAC 12
コクコクコク8
ACACGGAATCTGCTTTTT 11
CAGAATTCCCAAAGATGG7

これ予想される結果最長のC + Tストレッチが表示されます。

CACCGTTGCCAAACAATG 9 2
TTAGAAGCCTGTCAGCT 10 3
猫猫GCTCTCAGACCCAC 12 5
コッコッコッコッコッコッコ 8 2
ACACGGAATCTGCTTTTT 11 6
CAGAATTCCCAAAGATGG7 5

ベストアンサー1

FWIWこれはPerlでmaxfromを使用する方法です。List::Util

$ perl -MList::Util=max -lpe '$_ .= " " . max 0, map length, /[CT]+/gi' file
CACCGTTGCCAAACAATG 2
TTAGAAGCCTGTCAGCCT 3
CATTGCTCTCAGACCCAC 5
GATGTACGTCACATTAGA 2
ACACGGAATCTGCTTTTT 6
CAGAATTCCCAAAGATGG 5

おすすめ記事