BioJava:Performance:ReverseComplement

From BioJava

Jump to: navigation, search

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");
	}
}
Personal tools