Wiggle ファイル内の特定の染色体を返すために pcgrep で使用する単純な正規表現を作成しました (以下を参照)。
pcregrep -M '^fixedStep chrom=2.*\n[0-9\n]*' input.txt
入力ウィッグ
fixedStep chrom=1 start=14154 step=1
1
1
1
1
1
fixedStep chrom=2 start=14154 step=1
1
1
3
10
120
14
5
9
fixedStep chrom=2 start=20145 step=1
1
1
11
1
1
fixedStep chrom=2 start=30535 step=1
3
24
11
fixedStep chrom=3 start=14154 step=1
1
1
1
1
1
出力は次のとおりです。
fixedStep chrom=2 start=14154 step=1
1
1
3
10
120
14
5
9
fixedStep chrom=2 start=30124 step=1
fixedStep chrom=2 start=50345 step=1
4
23
90
fixedStep chrom=3 start=14154 step=1
しかし、私が取得したいのは:
fixedStep chrom=2 start=14154 step=1
1
1
3
10
120
14
5
9
fixedStep chrom=2 start=20145 step=1
1
1
11
1
1
fixedStep chrom=2 start=30535 step=1
3
24
11
より具体的には、一致するファイル内の各エントリを見つけたい
fixedStep chrom=2 start=ANY step=1
1
2
3
4
他のすべての染色体を保持したまま、それを削除します。
編集:
検索の問題を部分的に解決しました。使うことができます
pcregrep -M '^fixed.*chrom=2.*(\n[0-9]+)*' input.txt
正しい出力を取得します。しかし、input.txt から第 2 染色体を効率的に削除する方法をまだ見つけていません。