This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Use UNIX reverse complement

I have downloaded the FASTA DNA sequence, how to use UNIX to reverse complement each line of the file using a single line of command?

sequencing

This looks like an assignment, what have you tried? UNIX is very diverse and not identical to GNU Linux or POSIX, which you are probably referring to.

2 answers

$ perl -pe '/^>/ ? print "\n" : chomp' test.fa | while read -r line; do if [[ "$line" == ">"* ]]; then echo $line; else tr "[ATGCatgcNn]" "[TACGtacgNn]"; fi; done | awk '{ if ($0~/^>/) { printf("%s",$0); } else { for(i=length;i!=0;i--) x=(x substr($0,i,1)) } { printf("%s\n",x); x=""; } }'

Christ, that's awful. Just take the teacher's "F" and use seqkit or something. https://github.com/shenwei356/seqkit

Install bioawk and use the following command:

bioawk -c fastx '{print ">"$name;print revcomp($seq)}' seq.fa.gz

Thank you, do you know how to solve this if I just use UNIX commands?

Log in to answer this question.