Skip to content

Commit b0af09e

Browse files
author
William Lai
committed
Generalize Genomic Coordinate
Make genomic coordinate interface and have BEDCoord and GFFCoord implement it. Also added GenericCoord object
1 parent 1651107 commit b0af09e

13 files changed

Lines changed: 183 additions & 20 deletions

File tree

src/objects/BEDCoord.java renamed to src/objects/CoordinateObjects/BEDCoord.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
package objects;
1+
package objects.CoordinateObjects;
22

33
import java.util.Comparator;
44

5-
public class BEDCoord {
5+
import objects.CoordinateObjects.GenomicCoord;
6+
7+
public class BEDCoord implements GenomicCoord {
68
private String CHROM = "";
79
private int START = 0;
810
private int STOP = 0;

src/objects/GFFCoord.java renamed to src/objects/CoordinateObjects/GFFCoord.java

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
package objects;
1+
package objects.CoordinateObjects;
22

33
import java.util.Comparator;
44

5-
public class GFFCoord {
5+
public class GFFCoord implements GenomicCoord {
66
private String CHROM = "";
7+
private String SOURCE = ".";
8+
private String FEATURE = ".";
79
private int START = 0;
810
private int STOP = 0;
11+
private double SCORE = 0;
912
private String DIR = "+";
13+
private String FRAME = ".";
14+
private String ATTRIBUTE = ".";
1015

11-
private String NAME = ".";
12-
private double SCORE = 0;
16+
public String LINE = "";
1317

1418
private double[] Fstrand = null;
1519
private double[] Rstrand = null;
@@ -18,16 +22,33 @@ public GFFCoord() {
1822

1923
}
2024

25+
public GFFCoord(String line) {
26+
String[] gff = line.split("\t");
27+
if(gff.length > -1) CHROM = gff[0];
28+
if(gff.length > 0) SOURCE = gff[1];
29+
if(gff.length > 1) FEATURE = gff[2];
30+
if(gff.length > 2) START = Integer.parseInt(gff[3]);
31+
if(gff.length > 3) STOP = Integer.parseInt(gff[4]);
32+
if(gff.length > 4) {
33+
try { SCORE = Double.parseDouble(gff[5]); }
34+
catch (NumberFormatException e) { SCORE = 0; }
35+
}
36+
if(gff.length > 5) DIR = gff[6];
37+
if(gff.length > 6) FRAME = gff[7];
38+
if(gff.length > 7) ATTRIBUTE = gff[8];
39+
LINE = line;
40+
}
41+
2142
public GFFCoord(String c, int sta, int sto, String di, String na) {
2243
CHROM = c;
2344
START = sta;
2445
STOP = sto;
2546
DIR = di;
26-
NAME = na;
47+
ATTRIBUTE = na;
2748
}
2849

2950
public GFFCoord(String na, double sco) {
30-
NAME = na;
51+
ATTRIBUTE = na;
3152
SCORE = sco;
3253
}
3354

@@ -80,11 +101,11 @@ public void setDir(String di) {
80101
}
81102

82103
public String getName() {
83-
return NAME;
104+
return ATTRIBUTE;
84105
}
85106

86107
public void setName(String na) {
87-
NAME = na;
108+
ATTRIBUTE = na;
88109
}
89110

90111
public double getScore() {
@@ -97,8 +118,7 @@ public void setScore(double sco) {
97118

98119
public String toString() {
99120
//chr1 cwpair . 45524 45525 3067.0 . . cw_distance=26
100-
101-
String line = CHROM + "\tscriptmanager\t.\t" + START + "\t" + STOP + "\t" + SCORE + "\t" + DIR + "\t" + NAME;
121+
String line = CHROM + "\t" + SOURCE + "\t" + FEATURE + "\t" + START + "\t" + STOP + "\t" + SCORE + "\t" + DIR + "\t" + FRAME + "\t" + ATTRIBUTE;
102122
return line;
103123
}
104124

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package objects.CoordinateObjects;
2+
3+
import java.util.Comparator;
4+
5+
public class GenericCoord implements GenomicCoord {
6+
private String CHROM = "";
7+
private int START = 0;
8+
private int STOP = 0;
9+
private String DIR = "+";
10+
11+
private String NAME = ".";
12+
private double SCORE = 0;
13+
14+
public GenericCoord() {
15+
16+
}
17+
18+
public GenericCoord(String c, long sta, long sto, String di) {
19+
CHROM = c;
20+
START = (int)sta;
21+
STOP = (int)sto;
22+
DIR = di;
23+
NAME = CHROM + "_" + START + "_" + STOP + "_" + DIR;
24+
}
25+
26+
public GenericCoord(String c, int sta, int sto, String di, String na) {
27+
CHROM = c;
28+
START = sta;
29+
STOP = sto;
30+
DIR = di;
31+
NAME = na;
32+
}
33+
34+
public String getChrom() {
35+
return CHROM;
36+
}
37+
38+
public void setChrom(String chr) {
39+
CHROM = chr;
40+
}
41+
42+
public int getStart() {
43+
return START;
44+
}
45+
46+
public void setStart(int sta) {
47+
START = sta;
48+
}
49+
50+
public int getStop() {
51+
return STOP;
52+
}
53+
54+
public void setStop(int sto) {
55+
STOP = sto;
56+
}
57+
58+
public String getDir() {
59+
return DIR;
60+
}
61+
62+
public void setDir(String di) {
63+
DIR = di;
64+
}
65+
66+
public String getName() {
67+
return NAME;
68+
}
69+
70+
public void setName(String na) {
71+
NAME = na;
72+
}
73+
74+
public double getScore() {
75+
return SCORE;
76+
}
77+
78+
public void setScore(double sco) {
79+
SCORE = sco;
80+
}
81+
82+
public String toString() {
83+
String line = CHROM + "\t" + START + "\t" + STOP + "\t" + NAME + "\t" + SCORE + "\t" + DIR;
84+
return line;
85+
}
86+
87+
public static Comparator<GenericCoord> PeakChromComparator = new Comparator<GenericCoord>() {
88+
public int compare(GenericCoord node1, GenericCoord node2) {
89+
return node1.getChrom().compareTo(node2.getChrom());
90+
}
91+
};
92+
93+
public static Comparator<GenericCoord> PeakPositionComparator = new Comparator<GenericCoord>() {
94+
public int compare(GenericCoord node1, GenericCoord node2) {
95+
int PeakStart1 = node1.getStart();
96+
int PeakStart2 = node2.getStart();
97+
if (PeakStart1 > PeakStart2) return 1;
98+
else if (PeakStart1 < PeakStart2) return -1;
99+
else return 0;
100+
}
101+
};
102+
103+
public static Comparator<GenericCoord> ScoreComparator = new Comparator<GenericCoord>() {
104+
public int compare(GenericCoord node1, GenericCoord node2) {
105+
double PeakStart1 = node1.getScore();
106+
double PeakStart2 = node2.getScore();
107+
if (PeakStart1 < PeakStart2) return 1;
108+
else if (PeakStart1 > PeakStart2) return -1;
109+
else return 0;
110+
}
111+
};
112+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package objects.CoordinateObjects;
2+
3+
public interface GenomicCoord {
4+
public String getChrom();
5+
public void setChrom(String chr);
6+
7+
public int getStart();
8+
public void setStart(int sta);
9+
10+
public int getStop();
11+
public void setStop(int sto);
12+
13+
public double getScore();
14+
public void setScore(double sco);
15+
16+
public String getDir();
17+
public void setDir(String di);
18+
19+
public String getName();
20+
public void setName(String na);
21+
22+
public String toString();
23+
24+
}

src/scripts/BAM_Statistics/SEStats.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,4 +138,8 @@ private static String getTimeStamp() {
138138
String time = new Timestamp(date.getTime()).toString();
139139
return time;
140140
}
141+
142+
public static void main(String[] args) {
143+
System.out.println("Hello World");
144+
}
141145
}

src/scripts/BAM_Statistics/SignalDuplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import htsjdk.samtools.SamReaderFactory;
88
import htsjdk.samtools.ValidationStringency;
99
import htsjdk.samtools.util.CloseableIterator;
10+
import objects.CoordinateObjects.GFFCoord;
1011

1112
import java.awt.BorderLayout;
1213
import java.io.File;
@@ -30,7 +31,6 @@
3031
import javax.swing.JLayeredPane;
3132
import javax.swing.JTabbedPane;
3233

33-
import objects.GFFCoord;
3434
import charts.LineChart;
3535

3636
@SuppressWarnings("serial")

src/scripts/Coordinate_Analysis/FilterBEDbyProximity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
import javax.swing.JScrollPane;
1919
import javax.swing.JTextArea;
2020

21-
import objects.BEDCoord;
21+
import objects.CoordinateObjects.BEDCoord;
22+
2223

2324
@SuppressWarnings({"serial"})
2425
public class FilterBEDbyProximity extends JFrame{

src/scripts/Coordinate_Manipulation/BED_Manipulation/SortBED.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.HashMap;
99
import java.util.Scanner;
1010

11-
import objects.BEDCoord;
11+
import objects.CoordinateObjects.BEDCoord;
1212
import util.JTVOutput;
1313

1414
public class SortBED {

src/scripts/Coordinate_Manipulation/GFF_Manipulation/SortGFF.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.HashMap;
99
import java.util.Scanner;
1010

11-
import objects.GFFCoord;
11+
import objects.CoordinateObjects.GFFCoord;
1212
import util.JTVOutput;
1313

1414
public class SortGFF {

src/scripts/Sequence_Analysis/DNAShapefromBED.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import htsjdk.samtools.SAMException;
44
import htsjdk.samtools.reference.IndexedFastaSequenceFile;
5+
import objects.CoordinateObjects.BEDCoord;
56

67
import java.awt.BorderLayout;
78
import java.io.File;
@@ -25,7 +26,6 @@
2526
import javax.swing.SpringLayout;
2627

2728
import charts.CompositePlot;
28-
import objects.BEDCoord;
2929
import util.DNAShapeReference;
3030
import util.FASTAUtilities;
3131

0 commit comments

Comments
 (0)