sa1
1
Hi,
My file has a numerous sttrings.I want to retain those strings which start with stt and delete entries with >C
For eg:
my infile is
>C4603985
ATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHATCACCTGCGATATGGGGGCCACCATAGATAGTAAAGATGGTTCTTACCFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGH>C3914137
CATCTTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHTTATTAGGGAAGAAACCTTCATTCTCTTTTTAATTTTCTTTTTCAAGATGCAATTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHCTGTATCACCAGTTATATATAGATTGCATCTTGATATAGATATAGTG
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>C4913369
GTERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTTGCVTCABGCGBATBAAGATBTBTHYHBHHTAGCGCCCTACGTACGATGCAGTAAATTCCGTAACGTAGTGGTTGAGATATCTCAGTAAGCTTCACGTTGACGTTAGTTBTBTAATCGCCCGTGATGDDDGTGTTAGAATGTTTAAAGGATATACAT
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
My outfile should look like
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
Any suggestions?:wall:
Try
$ cat tmp
>C4603985
ATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHATCACCTGCGATATGGGGGCCACCATAGATAGTAAAGATGGTTCTTACCFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGH>C3914137
CATCTTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHTTATTAGGGAAGAAACCTTCATTCTCTTTTTAATTTTCTTTTTCAAGATGCAATTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHCTGTATCACCAGTTATATATAGATTGCATCTTGATATAGATATAGTG
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>C4913369
GTERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTTGCVTCABGCGBATBAAGATBTBTHYHBHHTAGCGCCCTACGTACGATGCAGTAAATTCCGTAACGTAGTGGTTGAGATATCTCAGTAAGCTTCACGTTGACGTTAGTTBTBTAATCGCCCGTGATGDDDGTGTTAGAATGTTTAAAGGATATACAT
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
$ awk '{ if ( $0~/>st/ ) {
> a=1
> }
> if ( $0 ~/>C/ ) {
> a=0}
> if ( a==1)
> print $0
> }' tmp
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
senhia83's script can be simplified a little bit to something like:
awk '
/^>/ { copy = ($0 ~ /^>stt/) }
copy' infile
As always, if you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk , /usr/xpg6/bin/awk , or nawk .
You can try:
awk 'NF&&!/^C/{print ">"$0}' ORS="" RS=">"
Hello sa@@,
One more approach may help you, very slightly different from Don's and Senhia83's script. Enjoy learning 
awk '/^>stt/ {A=1} A{print} !/^>stt/ {A=0}' Input_file
Output will be as follows.
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
Thanks,
R. Singh
@sa@@: your sample contains a multiline sequence
Shouldn't the input file be:
>C4603985
ATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHATCACCTGCGATATGGGGGCCACCATAGATAGTAAAGATGGTTCTTACCFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGHTAHGHATAGGTFAGATGFFGTGFAGGHTGH
>C3914137
CATCTTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHTTATTAGGGAAGAAACCTTCATTCTCTTTTTAATTTTCTTTTTCAAGATGCAATTGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHCTGTATCACCAGTTATATATAGATTGCATCTTGATATAGATATAGTG
>stt4468869
SQAERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTHTTHAHAGHGCHAHAHGHACTHTGHTGGHCAHAANGGGATATAACCAGGTGGAAGGTAGACTACTTTGATAGTTTTTCTCCAGTNGNGCANAAGTTAGTAACAGTGAGAATTTTCTTAGCAATCGCAG
>C4913369
GTERTYUVSAASSFFAGATGFFGTGFAGGHTGHTAHGHATAGGTTGCVTCABGCGBATBAAGATBTBTHYHBHHTAGCGCCCTACGTACGATGCAGTAAATTCCGTAACGTAGTGGTTGAGATATCTCAGTAAGCTTCACGTTGACGTTAGTTBTBTAATCGCCCGTGATGDDDGTGTTAGAATGTTTAAAGGATATACAT
>stt4688097
GCDDDDCJJJJAWDDDDFFFFFCTCATATCGCAGGTGATTCCAACAGATCGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAGGACCTGCGAAAAGGGCAAAACCGACCTCGGACGAGATTGTGTTTACGGACGAGCATGAGAGGTATGTCCGAGAGGCAAATCATTCTTTTCGGCTCTATGGATCCGAAG
--
@Ravinder. That works if there are no multiline sequences.
This is a protein sequence fasta file, pretty sure the sequences are in one line unless word wrapped