BioJava:Performance:ReverseComplement
From BioJava
Reverse complement of DNA sequence
This source code is run in the example that determines the reverse complement of a DNA sequence.
import org.biojava.bio.seq.impl.RevCompSequence; import org.biojavax.bio.seq.RichSequence; import org.biojavax.bio.seq.RichSequenceIterator; import org.biojavax.bio.seq.io.FastaFormat; import org.biojavax.bio.seq.io.FastaHeader; import java.io.BufferedReader; import java.io.FileReader; public class RevComp { public static void main(String[] args) throws Exception { String fastaLocation; if(args.length > 0) { fastaLocation = args[0]; } else { fastaLocation = "data/revcomp/input.fasta"; } long time = System.currentTimeMillis(); FastaHeader fastaHeader = new FastaHeader(); fastaHeader.setShowAccession(true); fastaHeader.setShowDescription(false); fastaHeader.setShowIdentifier(false); fastaHeader.setShowName(false); fastaHeader.setShowNamespace(false); fastaHeader.setShowVersion(false); FastaFormat fastaFormat = new FastaFormat(); fastaFormat.setHeader(fastaHeader); fastaFormat.setLineWidth(60); BufferedReader br = new BufferedReader(new FileReader(fastaLocation)); RichSequenceIterator iter = RichSequence.IOTools.readFastaDNA(br, null); while(iter.hasNext()) { RichSequence seq = iter.nextRichSequence(); RevCompSequence rev = new RevCompSequence(seq); rev.setName(seq.getAccession()+" "+seq.getDescription()); fastaFormat.writeSequence(rev, System.out); } long finalTime = System.currentTimeMillis(); System.out.println(finalTime-time+" ms"); } }

