File: ScoreTracker.java

package info (click to toggle)
bbmap 39.20%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,024 kB
  • sloc: java: 312,743; sh: 18,099; python: 5,247; ansic: 2,074; perl: 96; makefile: 39; xml: 38
file content (90 lines) | stat: -rwxr-xr-x 2,538 bytes parent folder | download | duplicates (4)
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
86
87
88
89
90
package prok;

import java.util.ArrayList;

import json.JsonObject;
import shared.Tools;
import structures.ByteBuilder;

public class ScoreTracker {
	
	public ScoreTracker(int type_){
		type=type_;
	}
	
	public void add(ScoreTracker st){
		geneStartScoreSum+=st.geneStartScoreSum;
		geneStopScoreSum+=st.geneStopScoreSum;
		geneInnerScoreSum+=st.geneInnerScoreSum;
		lengthSum+=st.lengthSum;
		
		geneStartScoreCount+=st.geneStartScoreCount;
		geneStopScoreCount+=st.geneStopScoreCount;
		geneInnerScoreCount+=st.geneInnerScoreCount;
		lengthCount+=st.lengthCount;
	}
	
	public void add(ArrayList<Orf>[] array){
		for(ArrayList<Orf> list : array){add(list);}
	}
	
	public void add(ArrayList<Orf> list){
		if(list==null){return;}
		for(Orf orf : list){
			if(orf.type==type){add(orf);}
		}
	}
	
	public void add(Orf orf){
		if(orf==null || orf.type!=type){return;}
		geneStartScoreSum+=orf.startScore;
		geneStopScoreSum+=orf.stopScore;
		geneInnerScoreSum+=orf.averageKmerScore();
		lengthSum+=orf.length();
		
		geneStartScoreCount++;
		geneStopScoreCount++;
		geneInnerScoreCount++;
		lengthCount++;
	}
	
	@Override
	public String toString(){
		ByteBuilder bb=new ByteBuilder();
		bb.append("Start Score:          \t ").append(geneStartScoreSum/geneStartScoreCount, 4).nl();
		bb.append("Stop Score:           \t ").append(geneStopScoreSum/geneStopScoreCount, 4).nl();
		bb.append("Inner Score:          \t ").append(geneInnerScoreSum/geneInnerScoreCount, 4).nl();
		bb.append("Length:               \t ").append(lengthSum/(double)lengthCount, 2).nl();
		if(genomeSize>0){
			bb.append("Approx Genic Fraction:\t ").append(Tools.min(1.0, lengthSum/(double)genomeSize), 4).nl();
		}
		return bb.toString();
	}
	
	public JsonObject toJson(){
		JsonObject jo=new JsonObject();
		jo.addLiteral("Start Score", geneStartScoreSum/geneStartScoreCount, 4);
		jo.addLiteral("Stop Score", geneStopScoreSum/geneStopScoreCount, 4);
		jo.addLiteral("Inner Score", geneInnerScoreSum/geneInnerScoreCount, 4);
		jo.addLiteral("Length", lengthSum/(double)lengthCount, 2);
		if(genomeSize>0){
			jo.addLiteral("Approx Genic Fraction", Tools.min(1.0, lengthSum/(double)genomeSize), 4);
		}
		return jo;
	}
	
	long geneStartScoreCount=0;
	long geneStopScoreCount=0;
	long geneInnerScoreCount=0;
	long lengthCount=0;
	
	double geneStartScoreSum=0;
	double geneStopScoreSum=0;
	double geneInnerScoreSum=0;
	long lengthSum=0;
	
	long genomeSize=0;
	
	final int type;
	
}