1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
package stream;
import dna.Data;
/**
* Transforms BBMap index coordinates into scaffold-relative coordinates.
* @author Brian Bushnell
* @date Aug 26, 2014
*
*/
public class ScaffoldCoordinates {
/*--------------------------------------------------------------*/
/*---------------- Constructors ----------------*/
/*--------------------------------------------------------------*/
public ScaffoldCoordinates(){}
public ScaffoldCoordinates(Read r){set(r);}
public ScaffoldCoordinates(SiteScore ss){set(ss);}
/*--------------------------------------------------------------*/
/*---------------- Methods ----------------*/
/*--------------------------------------------------------------*/
public boolean set(Read r){
valid=false;
if(r.mapped()){setFromIndex(r.chrom, r.start, r.stop, r.strand(), r);}
return valid;
}
public boolean set(SiteScore ss){
return setFromIndex(ss.chrom, ss.start, ss.stop, ss.strand, ss);
}
public boolean setFromIndex(int iChrom_, int iStart_, int iStop_, int strand_, Object o){
valid=false;
if(iChrom_>=0){
iChrom=iChrom_;
iStart=iStart_;
iStop=iStop_;
if(Data.isSingleScaffold(iChrom, iStart, iStop)){
assert(Data.scaffoldLocs!=null) : "\n\n"+o+"\n\n";
scafIndex=Data.scaffoldIndex(iChrom, (iStart+iStop)/2);
name=Data.scaffoldNames[iChrom][scafIndex];
scafLength=Data.scaffoldLengths[iChrom][scafIndex];
start=Data.scaffoldRelativeLoc(iChrom, iStart, scafIndex);
stop=start-iStart+iStop;
strand=(byte)strand_;
valid=true;
}
}
if(!valid){clear();}
return valid;
}
public void clear(){
valid=false;
scafIndex=-1;
iChrom=-1;
iStart=-1;
start=-1;
iStop=-1;
stop=-1;
strand=-1;
scafLength=0;
name=null;
valid=false;
}
/*--------------------------------------------------------------*/
/*---------------- Fields ----------------*/
/*--------------------------------------------------------------*/
public int scafIndex=-1;
public int iChrom=-1;
public int iStart=-1, iStop=-1;
public int start=-1, stop=-1;
public byte strand=-1;
public int scafLength=0;
public byte[] name=null;
public boolean valid=false;
}
|