package picard.illumina.parser.fakers; import java.nio.ByteBuffer; /** * Created by jcarey on 3/13/14. * * Illumina uses an algorithm described in "Theory of RTA" that determines whether or not a cluster passes filter("PF") or not. * These values are written as sequential bytes to Filter Files. The structure of a filter file is as follows: * Bytes 0-3 : 0 * Bytes 4-7 : unsigned int version * Bytes 8-11 : unsigned int numClusters * Bytes 12...: boolean encoded in a byte representing whether the cluster passing or failing. */ public class FilterFileFaker extends FileFaker { @Override protected void fakeFile(final ByteBuffer buffer) { buffer.putInt(0); // 0 buffer.putInt(3); // Version number buffer.putInt(1); // Number of clusters buffer.put((byte) 0); // Byte representing a cluster failing filter(not a PF read) } @Override protected boolean addLeadingZeros() { return true; } @Override protected int bufferSize() { return Integer.SIZE * 3; } }