diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyseResult.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyseResult.java index e3f1c36860d47bad87b9cc8585bbfbc21861a26f..fe13e79bef831c29316ae1ee6b080d7fb8f9cc25 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyseResult.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyseResult.java @@ -21,7 +21,7 @@ public class ZdnaAnalyseResult implements Localised { protected double zdnaGTRichness; protected float score; - protected float score10bp; + protected float scorePerc; @Override public int getMiddle() { diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyser.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyser.java index 816145570f255c623fabd66cb5d3f723f32d341c..e938b306848508c466da4b7ae279314fd5802272 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyser.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaAnalyser.java @@ -26,11 +26,11 @@ public class ZdnaAnalyser { * @param threshold minimal KV score of searched sequences. * @return arraylist of ZdnaAnalyseResults. */ - public ArrayList<ZdnaAnalyseResult> getResults(Window sequenceWindow, int minSequenceSize, float threshold, float gc, float gtac, float at, float oth) { + public ArrayList<ZdnaAnalyseResult> getResults(Window sequenceWindow, int minSequenceSize, float threshold, float gc, float gtac, float at) { GCscore = gc; // 1f; GT_ACscore = gtac;// 0.5f; ATscore = at; // 0.25f; - notPossibleZDNA = oth; // 0; + notPossibleZDNA = 0; ArrayList<ZdnaAnalyseResult> allResults = new ArrayList<>(); Pattern patternGC = Pattern.compile("(?=(GC|CG))"); @@ -55,7 +55,9 @@ public class ZdnaAnalyser { } else { if (len >= minSequenceSize) { float kvScore = score/2; - if (kvScore >= threshold) { + float maxPossibleScore = ((len-1) * Math.max(gc, Math.max(gtac, at))) / 2; + float scorePerc = (kvScore / maxPossibleScore) * 100; + if (scorePerc >= threshold) { int start = i - len + 2; StringBuilder seqB = new StringBuilder(); @@ -73,10 +75,10 @@ public class ZdnaAnalyser { // GT double countGT = patternGT.matcher(seq).results().count(); double richnessGT = countGT / pcLen * 100; - float score10bp = kvScore / len * 10; + ZdnaAnalyseResult zdnaResult = new ZdnaAnalyseResult( - null, start, len, seq, richnessGC, richnessGT, kvScore, score10bp*10); + null, start, len, seq, richnessGC, richnessGT, kvScore, scorePerc); allResults.add(zdnaResult); } diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaController.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaController.java index f026f422245e21c47c7d17d807433902e39c325d..fd699e20f23b219b5fda0aff5e24b9c9495b5532 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaController.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaController.java @@ -64,9 +64,6 @@ public class ZdnaController { @NotNull private float score_at = 0.25f; - @NotNull - private float score_oth = 0; - } @Data @@ -105,7 +102,6 @@ public class ZdnaController { .score_gc(request.getScore_gc()) .score_gtac(request.getScore_gtac()) .score_at(request.getScore_at()) - .score_oth(request.getScore_oth()) .build() ); diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaMapper.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaMapper.java index e705a6098dba055f0436078dee5162d37a0fb77b..2abd75115e481124f51527bb5040cd08f615e52c 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaMapper.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaMapper.java @@ -20,7 +20,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { "ZDNAGCRICHNESS varchar, " + "ZDNAGTRICHNESS varchar, " + "SCORE float, " + - "SCORE10BP float," + + "SCOREPERC float," + "PRIMARY KEY (ID))"; // language=SQL @@ -37,7 +37,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) ArrayList<ZdnaAnalyseResult> getAll(); @@ -51,7 +51,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) ArrayList<ZdnaAnalyseResult> getByWindow(Integer start, Integer end); @@ -65,7 +65,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) Cursor<ZdnaAnalyseResult> getCursor(); @@ -79,7 +79,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) ZdnaAnalyseResult getById(int id); @@ -91,7 +91,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { "ZDNAGCRICHNESS = #{zdnaGCRichness}, " + "ZDNAGTRICHNESS = #{zdnaGTRichness} " + "SCORE = #{score} " + - "SCORE10BP = #{score10bp} " + + "SCOREPERC = #{scorePerc} " + "WHERE ID = #{id}") void update(ZdnaAnalyseResult result); @@ -100,9 +100,9 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { void delete(int id); // language=SQL - @Insert("INSERT INTO ZDNA (ID, POSITION, LENGTH, SEQUENCE, ZDNAGCRICHNESS, ZDNAGTRICHNESS, SCORE, SCORE10BP)" + + @Insert("INSERT INTO ZDNA (ID, POSITION, LENGTH, SEQUENCE, ZDNAGCRICHNESS, ZDNAGTRICHNESS, SCORE, SCOREPERC)" + " VALUES " + - "(#{id}, #{position}, #{length}, #{sequence}, #{zdnaGCRichness}, #{zdnaGTRichness}, #{score}, #{score10bp})" + "(#{id}, #{position}, #{length}, #{sequence}, #{zdnaGCRichness}, #{zdnaGTRichness}, #{score}, #{scorePerc})" ) @Options(useGeneratedKeys = true, keyProperty = "id") void insert(ZdnaAnalyseResult result); @@ -123,7 +123,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) List<ZdnaAnalyseResult> getAllBetweenPositionOrderAsc( @Param("startPosition") int startPosition, @@ -141,7 +141,7 @@ public interface ZdnaMapper extends DataLocalisedMapper<ZdnaAnalyseResult> { @Result(property = "zdnaGCRichness", column = "ZDNAGCRICHNESS"), @Result(property = "zdnaGTRichness", column = "ZDNAGTRICHNESS"), @Result(property = "score", column = "SCORE"), - @Result(property = "score10bp", column = "SCORE10BP") + @Result(property = "scorePerc", column = "SCOREPERC") }) List<ZdnaAnalyseResult> getAllBetweenPositionOrderDesc( @Param("startPosition") int startPosition, diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaService.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaService.java index d4fa6516291331fe7543d200c8969ba0dd487a44..37fe7580a58869fde33057a34b0051b3425bf210 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaService.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/analyse/zdna/ZdnaService.java @@ -62,7 +62,6 @@ public class ZdnaService extends ModelService<Zdna> { float score_gc = analyse.getScore_gc(); float score_gtac = analyse.getScore_gtac(); float score_at = analyse.getScore_at(); - float score_oth = analyse.getScore_oth(); if (sequence.getLength() < minSequenceSize) { @@ -75,7 +74,7 @@ public class ZdnaService extends ModelService<Zdna> { String sequenceDataPlain = sequenceData.toPlain(); Window sequenceWindow = BufferedWindow.wrap(sequenceDataPlain); - ArrayList<ZdnaAnalyseResult> results = zdnaAnalyser.getResults(sequenceWindow, minSequenceSize, threshold, score_gc, score_gtac, score_at, score_oth); + ArrayList<ZdnaAnalyseResult> results = zdnaAnalyser.getResults(sequenceWindow, minSequenceSize, threshold, score_gc, score_gtac, score_at); results.forEach(zdnaMapper::insert); diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index b7e8d473a247e5ac0be8a617c173a74776db518d..c8778c4a7068e2e5829a0311b7840fa7dcb61679 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -94,7 +94,7 @@ security: jwt: header: Authorization secret: secret - expiration: 604800 + expiration: 21600 importDefaultUsers: true management: swagger: enabled