jpayne@68: package prok; jpayne@68: jpayne@68: import java.util.ArrayList; jpayne@68: import java.util.Arrays; jpayne@68: jpayne@68: import dna.AminoAcid; jpayne@68: import gff.GffLine; jpayne@68: import stream.Read; jpayne@68: import structures.IntList; jpayne@68: jpayne@68: /** jpayne@68: * Tracks information about a scaffold for AnalyzeGenes. jpayne@68: * @author Brian Bushnell jpayne@68: * @date Sep 24, 2018 jpayne@68: * jpayne@68: */ jpayne@68: class ScafData { jpayne@68: jpayne@68: /*--------------------------------------------------------------*/ jpayne@68: /*---------------- Initialization ----------------*/ jpayne@68: /*--------------------------------------------------------------*/ jpayne@68: jpayne@68: ScafData(Read r){ jpayne@68: this(r.id, r.bases, new byte[r.length()]); jpayne@68: } jpayne@68: jpayne@68: ScafData(String name_, byte[] bases_, byte[] frames_){ jpayne@68: name=name_; jpayne@68: bases=bases_; jpayne@68: frames=frames_; jpayne@68: cdsLines[0]=new ArrayList(); jpayne@68: cdsLines[1]=new ArrayList(); jpayne@68: rnaLines[0]=new ArrayList(); jpayne@68: rnaLines[1]=new ArrayList(); jpayne@68: } jpayne@68: jpayne@68: /*--------------------------------------------------------------*/ jpayne@68: /*---------------- Methods ----------------*/ jpayne@68: /*--------------------------------------------------------------*/ jpayne@68: jpayne@68: void clear(){ jpayne@68: Arrays.fill(frames, (byte)0); jpayne@68: starts.clear(); jpayne@68: stops.clear(); jpayne@68: } jpayne@68: jpayne@68: void reverseComplement(){ jpayne@68: AminoAcid.reverseComplementBasesInPlace(bases); jpayne@68: strand=1^strand; jpayne@68: } jpayne@68: jpayne@68: void addCDS(GffLine gline){ jpayne@68: assert(gline.strand>=0) : gline+"\n"+gline.strand; jpayne@68: cdsLines[gline.strand].add(gline); jpayne@68: } jpayne@68: jpayne@68: void addRNA(GffLine gline){ jpayne@68: assert(gline.strand>=0) : gline+"\n"+gline.strand; jpayne@68: rnaLines[gline.strand].add(gline); jpayne@68: } jpayne@68: jpayne@68: byte[] fetch(int start, int stop){ jpayne@68: assert(start>=0 && stop[] cdsLines=new ArrayList[2]; jpayne@68: @SuppressWarnings("unchecked") jpayne@68: ArrayList[] rnaLines=new ArrayList[2]; jpayne@68: }