フォーラムでこの問題の解決策を見つけようとしましたが、解決策のいくつかを理解することもできませんでした。
私はDNAデータを扱っていますが、2つのファイルがあります。最初のファイル(a)は、すべてのシーケンスヘッダーを含むファイルです。(名前など)各ヘッダーには独自の行があります。例:
>title1
>title2
>title3
>some other title
2番目のファイル(b)には、これらのヘッダーの内容が含まれています。各行は1番目のファイルに対応します。
GAGTTGGAAAGAG
GCTGCCCTGAGATCGTNNNN
GTGCAGTGATNNAGTG
ACTG
シーケンス内の未知の文字を検索するプログラムを作成しています。通常、ファイル2にはACTとGの文字しか含まれていないと想定します。
2つのファイルを作成したい:
- ヘッダーとシーケンス(1番目のタブ=ヘッダー、2番目のタブ=シーケンス)の両方を含み、ACTとGのみを含むエントリを含むファイル
- 今回のみ、ヘッダーとシーケンス(1番目のタブ=ヘッダー、2番目のタブ=シーケンス)の両方を含むファイルには、他の文字を含むエントリのみがあります。(たとえばN)
私はこれまでこれを試しました:
while read line; do
echo "$line" | tr -d "A" | tr -d "C" | tr -d "T" | tr -d "G" | tr -d "\n" | wc -c
done <sequenceOnly.txt >unkownLines.txt
これは、(b)ファイルで不明な文字が発生する頻度を計算します。この値が0より大きい場合、この行を使用してヘッダーとシーケンスをunknownLines.txtファイルに配置したいのですが、行き詰まります:/
期待される出力ファイル1(ACTGのみ):
>title1 GAGTTGGAAAGAG
>some other title ACTG
期待される出力ファイル2(他のものがあります):
>title2 GCTGCCCTGAGATCGTNNNN
>title3 GTGCAGTGATNNAGTG