1

行の先頭にある場合、このシーケンスを削除したいと思います。

ATCGGAAGAGCACACGTCTGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTG の後に少なくとも 3 文字の A 文字が続く。

シーケンスと複数の A の両方を削除し、残りのファイルを保持する必要があります。

私の入力ファイルは次のようになります。

@M00946:3:000000000-A2WF2:1:1101:18115:1962 1:N:0:2
GATCGGAAGAGCACACGTCTGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAACATTTTCTTTCTTACTTCGTTCACTTTCCACTTCTTTCTCCCTATCTTCCCCCTTCTGTCTGCCCCAGCTGTCTATCCCACTTATTGTCTCCCCCCACTGCCCCACACTCCTACCTTCTTCATCTTCACCTAACACCTCCCGCTCCCTCCTTATCGTCTCTTATCCTTTCCTTGTTCC
+
????????DDDDDDDDGGGGGGHHIIIIHHHIIIIFHIIIH/CGFHHIIIIHEDHHIIIIHI=5EEGFEHHEC+5,,4@,@,,....--..+77,,.6..6.....7.4..7.76=..-5.>.4-)134-.5....-3*))0***1*********10*0**01*1*)''..0***.)0'))*****00*11******01***0****0*)**0)'''...*0)0*11********1****1*0********
@M00946:3:000000000-A2WF2:1:1101:19888:2900 1:N:0:2
GATCGGAAGAGCACACGTCTGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAACACAAATACCGTTCCAATATCTTTTTGTTTCATGTCTAATAAC
+
<<??????BB?BBBBBCAFFFCFHF;>EFCDFGFFHFBGHCA=FHA>EFGEE7CF>F?FFHB=?EEGF>>DH5<)++,++,4,,4+=:,,,,5,,,,,,,,),33?,3,3,3,,,,33

私はこのようなスクリプトreplace.shを使用しようとしていました

file=$1;
adapter_sequence=$2;
sed -r "s/${adapter_sequence}A{3}//" $file

コマンドラインから:

./replace.sh file.fastq GATCGGAAGAGCACACGTCTGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTG

それは動かなかった。任意のスクリプト言語でのヘルプをいただければ幸いです。

4

1 に答える 1

2

私はあなたが逆$1になっていると信じています。$2次のようにします。

adapter_sequence=$2
sed "s/$adapter_sequence//" $1

理想的なケースでは、行の先頭から始まり、その後に少なくとも 3 つの A 文字が続くすべてのアダプター シーケンスを削除したいと考えています。

このsedを試してください:

sed -r "s/^${adapter_sequence}A{3,}//" file
于 2013-10-16T19:35:50.470 に答える