diff --git a/backend/pom.xml b/backend/pom.xml
index cc7d96026406ff4a297f9b9c2c5a4932c5139649..1d3edb9d9ba9ad779f23befeee88d0039d01913c 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -133,6 +133,10 @@
1.10.19
test
-
+
+ net.sourceforge.argparse4j
+ argparse4j
+ 0.8.1
+
\ No newline at end of file
diff --git a/backend/src/main/java/de/thm/genomeData/sql/DBConnector.java b/backend/src/main/java/de/thm/genomeData/sql/DBConnector.java
index f19f93255d2567ac960ffbf7e60ca1e354c3948b..8f233223880b77be33b84036868f6ab8521aac3d 100644
--- a/backend/src/main/java/de/thm/genomeData/sql/DBConnector.java
+++ b/backend/src/main/java/de/thm/genomeData/sql/DBConnector.java
@@ -27,6 +27,7 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
+import java.util.stream.Collectors;
public class DBConnector {
private Connection conn;
@@ -82,8 +83,10 @@ public class DBConnector {
public List getAllTracks(String whereClause) {
List entries = new ArrayList<>();
- if(conn == null)
- throw new RuntimeException("No connection to the database");
+ if(conn == null) {
+ logger.warn("No connection to the database");
+ return Collections.emptyList();
+ }
String sql = "SELECT * FROM enhort_view " + whereClause;
@@ -123,8 +126,12 @@ public class DBConnector {
*/
public SortedMap> getAllCellLines() {
+
SortedMap> celllines = new TreeMap<>();
+ if(conn == null)
+ return celllines;
+
try {
// get all cellliens without children
String parents = "SELECT cell_line FROM cell_lines";
diff --git a/backend/src/main/java/de/thm/genomeData/tracks/FileLoader.java b/backend/src/main/java/de/thm/genomeData/tracks/FileLoader.java
index 0e5d058675facdd38aad9265a647569c8c091b60..ca09b6ddffdf9c511704dac15bbf0d039a8cb7a7 100644
--- a/backend/src/main/java/de/thm/genomeData/tracks/FileLoader.java
+++ b/backend/src/main/java/de/thm/genomeData/tracks/FileLoader.java
@@ -51,8 +51,12 @@ class FileLoader implements Callable> {
private final TrackEntry trackEntry;
public FileLoader(TrackEntry entry) {
+ Path basePath;
- Path basePath = BackendServer.basePath;
+ if(BackendServer.basePath != null)
+ basePath = BackendServer.basePath;
+ else
+ basePath = new File("").toPath();
this.path = basePath.resolve(new File(entry.getFilepath()).toPath());
this.assembly = Genome.Assembly.valueOf(entry.getAssembly());
@@ -194,8 +198,11 @@ class FileLoader implements Callable> {
lines.close();
- if (linecount != counter)
- logger.error("File " + file.getName() + " has " + counter + " lines, but db says it has " + linecount + " lines.");
+ if (linecount != counter && BackendServer.customtrackpath == null)
+ logger.warn("File " + file.getName() + " has " + counter + " lines, but db says it has " + linecount + " lines.");
+
+ if (BackendServer.customtrackpath != null && linecount < counter)
+ logger.error("File " + file.getName() + " has " + counter + " lines, the current set limit is " + linecount + " lines.");
// Check read files //
diff --git a/backend/src/main/java/de/thm/genomeData/tracks/TrackFactory.java b/backend/src/main/java/de/thm/genomeData/tracks/TrackFactory.java
index d2e45326298df8c7927145e899bba606d753d557..bcc6c579c3346078779cb5bf66f522bede4e0bfe 100644
--- a/backend/src/main/java/de/thm/genomeData/tracks/TrackFactory.java
+++ b/backend/src/main/java/de/thm/genomeData/tracks/TrackFactory.java
@@ -107,51 +107,48 @@ public final class TrackFactory {
List allTracks;
- DBConnector connector = new DBConnector();
- connector.connect();
-
- if (System.getenv("HOME").contains("menzel")) {
-
- allTracks = connector.getAllTracks("WHERE name like '%ontigs'");
- allTracks = connector.getAllTracks(" WHERE directory like '%genetic%' and genome_assembly = 'hg19' ORDER BY lines ASC ");
- /*
- allTracks.addAll(connector.getAllTracks("WHERE genome_assembly = 'hg19' and directory like '%encode%HeLa%'"));
- allTracks.addAll(connector.getAllTracks("WHERE genome_assembly = 'hg19' and directory like '%custom%'"));
- //allTracks = connector.getAllTracks("WHERE bed_filename = 'SRX062365.05.bed'");
- //allTracks = connector.getAllTracks(" WHERE genome_assembly = 'hg19' ORDER BY lines ASC LIMIT 3000");
- */
- } else {
-
- //allTracks = connector.getAllTracks("WHERE (cell_line NOT like '%GM%' or cell_line like '%GM12878' or name like '%POLR%')");
- allTracks = connector.getAllTracks("WHERE (name not like '%POLR%' or name not like '%expression%')");
- /*
- allTracks = connector.getAllTracks(" WHERE directory like '%genetic%' and genome_assembly = 'hg19' ORDER BY lines ASC ");
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like 'HeLa%'"));
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like 'K-562'"));
- //allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%PS%'"));
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%CD%'"));
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%GM12878%'"));
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%Hep-G2%'"));
- allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%A-549%'"));
- */
- }
+ if (BackendServer.dbfilepath != null){
+ DBConnector connector = new DBConnector();
+ connector.connect();
+
+ if (System.getenv("HOME").contains("menzel")) {
+
+ allTracks = connector.getAllTracks("WHERE name like '%ontigs'");
+ allTracks = connector.getAllTracks(" WHERE directory like '%genetic%' and genome_assembly = 'hg19' ORDER BY lines ASC ");
+ /*
+ allTracks.addAll(connector.getAllTracks("WHERE genome_assembly = 'hg19' and directory like '%encode%HeLa%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE genome_assembly = 'hg19' and directory like '%custom%'"));
+ //allTracks = connector.getAllTracks("WHERE bed_filename = 'SRX062365.05.bed'");
+ //allTracks = connector.getAllTracks(" WHERE genome_assembly = 'hg19' ORDER BY lines ASC LIMIT 3000");
+ */
+ } else {
+
+ //allTracks = connector.getAllTracks("WHERE (cell_line NOT like '%GM%' or cell_line like '%GM12878' or name like '%POLR%')");
+ allTracks = connector.getAllTracks("WHERE (name not like '%POLR%' or name not like '%expression%')");
+ /*
+ allTracks = connector.getAllTracks(" WHERE directory like '%genetic%' and genome_assembly = 'hg19' ORDER BY lines ASC ");
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like 'HeLa%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like 'K-562'"));
+ //allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%PS%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%CD%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%GM12878%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%Hep-G2%'"));
+ allTracks.addAll(connector.getAllTracks("WHERE cell_line like '%A-549%'"));
+ */
+ }
- logger.info("Trying to load " + allTracks.size() + " tracks");
- this.tracks.addAll(loadByEntries(allTracks));
+ logger.info("Trying to load " + allTracks.size() + " tracks");
+ this.tracks.addAll(loadByEntries(allTracks));
+ }
List customTracks = new ArrayList<>();
+
// Add custom tracks
- if (System.getenv("HOME").contains("menzel")) {
+ if (BackendServer.customtrackpath != null) {
try {
- String customtrackpath;
-
- if (System.getenv("HOME").contains("menzel")) {
- customtrackpath = "/home/menzel/Desktop/THM/promotion/enhort/dat/stefan/custom";
- } else {
- customtrackpath = BackendServer.customtrackpath;
- }
+ String customtrackpath = BackendServer.customtrackpath;
Files.walk(Paths.get(customtrackpath))
.filter(Files::isRegularFile)
diff --git a/backend/src/main/java/de/thm/run/AnalysisHelper.java b/backend/src/main/java/de/thm/run/AnalysisHelper.java
index dc618aff8a3cba466a4616fa3aa772f13108616f..20d30ef16b35e5c8acd65615ff931a552a5bb1b2 100644
--- a/backend/src/main/java/de/thm/run/AnalysisHelper.java
+++ b/backend/src/main/java/de/thm/run/AnalysisHelper.java
@@ -145,12 +145,15 @@ class AnalysisHelper {
private ResultCollector runAnalysisWithBg(Sites sites, Sites sitesBg, List