From ce2cab659a1572b52e636f4e51952d0b6eef44b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Petrovi=C4=8D?= <mifo.petrovic@gmail.com> Date: Sat, 8 Feb 2025 19:59:48 +0100 Subject: [PATCH] remove not working palindrome analyser (unfinished) --- .../analyse/palindrome/PalindromeAnalyse.java | 72 ------- .../PalindromeAnalyseController.java | 144 ------------- .../PalindromeAnalyseRepository.java | 27 --- .../palindrome/PalindromeAnalyseService.java | 139 ------------- .../detector/AtatPalindromeDetector.java | 91 --------- .../detector/CompositePalindromeDetector.java | 189 ------------------ .../detector/PalindromeDetector.java | 13 -- .../detector/PalindromeDetectorBuilder.java | 13 -- .../detector/PalindromeMatcher.java | 16 -- .../detector/Simple2PalindromeDetector.java | 86 -------- .../detector/SimplePalindromeDetector.java | 83 -------- .../analyse/palindrome/model/NumberRange.java | 62 ------ .../palindrome/model/PalindromeModel.java | 129 ------------ .../palindrome/model/StabilityModel.java | 23 --- .../stability/NNModelStabilityCalculator.java | 78 -------- .../stability/StabilityCalculator.java | 13 -- .../dnaAnalyser/overlay/OverlayService.java | 3 - 17 files changed, 1181 deletions(-) delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyse.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseController.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseRepository.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseService.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/AtatPalindromeDetector.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/CompositePalindromeDetector.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetector.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetectorBuilder.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeMatcher.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/Simple2PalindromeDetector.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/SimplePalindromeDetector.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/NumberRange.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/PalindromeModel.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/StabilityModel.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/NNModelStabilityCalculator.java delete mode 100644 src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/StabilityCalculator.java diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyse.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyse.java deleted file mode 100644 index 80a9f61..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyse.java +++ /dev/null @@ -1,72 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.StabilityModel; -import cz.mendelu.dnaAnalyser.sequence.Sequence; -import cz.mendelu.dnaAnalyser.user.User; -import cz.mendelu.dnaAnalyser.utils.analyse.model.Analyse; -import cz.mendelu.dnaAnalyser.utils.model.Identifiable; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import javax.persistence.Entity; -import javax.persistence.Transient; -import java.util.Date; -import java.util.Set; -import java.util.UUID; - -@Data -@Entity -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class PalindromeAnalyse extends Analyse implements Identifiable { - - /* - public PalindromeModel() { - super(PalindromeModel.class.getPackage().getName()); - } - */ - - private String mismatches; - @Transient - private int size; - @Transient - private int mismatche; - @Transient - private int spacer; - @Transient - private String spacers; - @Transient - private int position; - @Transient - private StabilityModel stabilityModel; - - public PalindromeAnalyse() { - } - - @Builder - private PalindromeAnalyse(UUID id, Date created, Sequence sequence, User owner, Set<String> tags, Date finished, String title, Long resultCount, Integer size, String spacers, Integer spacer, String mismatches, Integer mismatche, int position) { - super((id != null) ? id : UUID.randomUUID(), created, sequence, owner, tags, finished, title, resultCount); - this.size = size; - this.spacers = spacers; - this.spacer = spacer; - this.mismatches = mismatches; - this.mismatche = mismatche; - this.position = position; - } - - /* - public NumberRange sizeAsNumberRange() { - return (size == null) ? null : new NumberRange(size); - } - - public NumberRange spacerAsNumberRange() { - return (spacer == null) ? null : new NumberRange(spacer); - } - - public NumberRange mismatchesAsNumberRange() { - return (mismatches == null) ? null : new NumberRange(mismatches); - } - */ -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseController.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseController.java deleted file mode 100644 index d5daa3c..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseController.java +++ /dev/null @@ -1,144 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.StabilityModel; -import cz.mendelu.dnaAnalyser.sequence.SequenceService; -import cz.mendelu.dnaAnalyser.utils.controller.DeleteMapping; -import cz.mendelu.dnaAnalyser.utils.controller.GetMapping; -import cz.mendelu.dnaAnalyser.utils.controller.*; -import cz.mendelu.dnaAnalyser.utils.controller.PostMapping; -import cz.mendelu.dnaAnalyser.utils.controller.PutMapping; -import cz.mendelu.dnaAnalyser.utils.swagger.ApiPaginationParams; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.core.Authentication; -import org.springframework.web.bind.annotation.*; -import springfox.documentation.annotations.ApiIgnore; - -import javax.validation.Valid; -import java.util.List; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - -@RestController -@Api(tags = "api/analyse/palindrome") -@RequestMapping("api/analyse/palindrome") -public class PalindromeAnalyseController { - - @Data - static class PalindromeAnalyseRequest { - - private List<UUID> sequences; - - private Boolean dinucleotide; - - private String size = "6-30"; - - private String spacer = "0-10"; - - private String mismatches = "0,1"; - - private Set<String> tags; - - private StabilityModel stabilityModel; - - } - - - @Autowired - private PalindromeAnalyseService palindromeAnalyseService; - - @Autowired - private SequenceService sequenceService; - - @GetMapping - @ResponseStatus(HttpStatus.OK) - @PreAuthorize("isAutheticated()") - @ApiPaginationParams - @ApiOperation("Get page with PalindromeModel analysis") - public ResponsePage<PalindromeModel> getPageWithPalindromeAnalysis( - PaginationParam paginationParam, - SortParam sortParam, - TagFilterParam tagFilterParam - ){ - - throw new UnsupportedOperationException("Not implemented yet."); - } - - @GetMapping("/tag") - @ResponseStatus(HttpStatus.OK) - @PreAuthorize("isAuthenticated()") - @ApiPaginationParams - @ApiOperation("Get all tags defined for sequences") - public ResponsePage<String> getPageWithTags( - PaginationParam paginationParam, - SortParam sortParam - ) { - throw new UnsupportedOperationException("Not implemented yet."); - } - - @GetMapping("/{id}") - @ResponseStatus(HttpStatus.OK) - @PreAuthorize("isAuthenticated()") - @ApiOperation("Get one PalindromeModel analyse by ID.") - public Response<PalindromeModel> getOnePalindromeAnalyse( - @PathVariable UUID id) - { - throw new UnsupportedOperationException("Not implemented yet."); - } - - @PostMapping() - @ResponseStatus(HttpStatus.CREATED) - @PreAuthorize("isAuthenticated()") - @ApiOperation("Create palindrome analyze.") - public ResponseList<PalindromeAnalyse> postPalindromeAnalyse( - @ApiIgnore Authentication authentication, - @RequestBody @Valid PalindromeAnalyseRequest request - ) { - - List<PalindromeAnalyse> analysis = request.getSequences() - .stream() - .map(uuid -> - palindromeAnalyseService.executePalindromeAnalyse(null /* - PalindromeModel.builder() - .sequence(sequenceService.findOne(uuid)) - .owner(AuthenticationUtils.toUser(authentication)) - .tags(request.getTags()) - .mismatches(request.getMismatches()) - .size(request.getSize()) - .spacer(request.getSpacer()) - .stabilityModel(request.getStabilityModel()) - .build() */ - ) - ).collect(Collectors.toList()); - - return ResponseList.responseList(analysis); - } - - @PutMapping("/{id}/tags") - @ResponseStatus(HttpStatus.ACCEPTED) - @PreAuthorize("isAuthenticated()") - @ApiOperation("Modify tags") - public Response<PalindromeModel> modifyTags( - @PathVariable UUID id, - @RequestBody TagModifyRequest request) - { - throw new UnsupportedOperationException("Not implemented yet."); - } - - @DeleteMapping("/{id}") - @ResponseStatus(HttpStatus.NO_CONTENT) - @PreAuthorize("isAuthenticated()") - @ApiOperation("Delete one PalindromeModel analyse by ID") - public void deletePalindrome( - @PathVariable UUID id) - { - throw new UnsupportedOperationException("Not implemented yet."); - } - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseRepository.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseRepository.java deleted file mode 100644 index 079d0ec..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome; - -import cz.mendelu.dnaAnalyser.utils.repository.BaseRepository; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import java.util.Optional; -import java.util.UUID; - -@Repository -public interface PalindromeAnalyseRepository extends BaseRepository<PalindromeAnalyse, UUID> { - - @Query("select a from PalindromeAnalyse as a join a.owner o where o.id = ?#{principal.id}") - Page<PalindromeAnalyse> findAll(Pageable pageable); - - @Query("select a from PalindromeAnalyse as a join a.owner o join a.tags t where t = :tag and o.id = ?#{principal.id}") - Page<PalindromeAnalyse> findAll(Pageable pageable, @Param("tag") String tag); - - @Query("select a from PalindromeAnalyse as a join a.owner o where a.id = :id and o.id = ?#{principal.id}") - Optional<PalindromeAnalyse> findById(@Param("id") UUID id); - - @Query("select t from PalindromeAnalyse as s join s.owner o join s.tags t where o.id = ?#{principal.id}") - Page<String> findAllTags(Pageable pageable); -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseService.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseService.java deleted file mode 100644 index 0706fda..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/PalindromeAnalyseService.java +++ /dev/null @@ -1,139 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.detector.AtatPalindromeDetector; -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; -import cz.mendelu.dnaAnalyser.batch.BatchService; -import cz.mendelu.dnaAnalyser.sequence.NucleicBuffer; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceDataRepository; -import lombok.Data; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.*; - -@Service -public class PalindromeAnalyseService { - - private static final Logger LOG = LoggerFactory.getLogger(PalindromeAnalyseService.class); - - private List<PalindromeModel> palindromes = new LinkedList<>(); - - private boolean cycleMode = false; - - //@Autowired - //private PalindromeDataSessionService palindromDataSessionService; - - @Autowired - private PalindromeAnalyseRepository palindromeRepository; - - @Autowired - private SequenceDataRepository sequenceDataRepository; - - @Autowired - private BatchService batchService; - - public PalindromeAnalyse executePalindromeAnalyse(PalindromeAnalyse palindromeAnalyse) { - palindromeAnalyse = palindromeRepository.save(palindromeAnalyse); - batchService.createBatch(palindromeAnalyse.getOwner(), palindromeAnalyse); - /* .execute(analyse->{ - - Sequence sequence = analyse.getSequence(); - SequenceData sequenceData = sequenceDataRepository.load(sequence); - - //inicializace promÄ›nnĂ˝ch potĹ™ebnĂ˝ch pro algoritmus - int size = analyse.getSize(); - boolean atatFilter = analyse.isAtatFilter(); - boolean cycle = analyse.isCycle(); - String mismatcheString = analyse.getMismatches(); - String spacerString = analyse.getSpacers(); - - NumberRange mm = new NumberRange(mismatcheString); //prevedu mismatche a spacer - NumberRange sp = new NumberRange(spacerString); - - final SortedSet<Integer> spacers = sp.getValues(); - final SortedSet<Integer> mismatches = mm.getValues(); - - SqlSession sqlSession = palindromDataSessionService.openDataSession(analyse); - - analyse.finishNow(); - sqlSession.commit(); - analyse = palindromeRepository.save(analyse); //na konci uloĹľĂm - return analyse; - }).start(); - -*/ - return palindromeAnalyse; - } - - private boolean isSubSequenceToCompare(SequenceData sequence, int nextSequencePosition, int size, boolean cycleMode) { - return (cycleMode) - ? true - : sequence.getLength() > nextSequencePosition + size; - } - - private NucleicBuffer getSubSequence(SequenceData sequence, int nextSequencePosition, int size) { - return sequence.getBuffer(nextSequencePosition, size); - } - - public List<PalindromeModel> findPalindromes(final int size, SortedSet<Integer> spacers, SortedSet<Integer> mismatches, SequenceData sequence, boolean cycleMode, boolean atatFilter) { - Integer nextSequencePosition, mismatche; - NucleicBuffer testedSequence, oppositSequence, nextSequence; - - int searchToPosition = sequence.getLength(); - for (int i = 0; i < searchToPosition; i++) { // v cyklu prochazim cely genom - - testedSequence = getSubSequence(sequence, i, size); //vezme se část sekvence z celĂ© sekvence a ta se testuje - - LOG.debug("tested = {} ", testedSequence); - if (atatFilter && AtatPalindromeDetector.isAtat(testedSequence)) continue; - - oppositSequence = testedSequence.revert(); //otoÄŤĂ se testovaná podsekvence - // LOG.debug("OppositSeq = {} ", oppositSequence.getLength()); - - for (int spacer : spacers) { // Postupne natahuji mezeru a porovnavam shodu - nextSequencePosition = i + size + spacer; - - if (isSubSequenceToCompare(sequence, nextSequencePosition, size, cycleMode)) { //zde je problĂ©m, neprocházĂ - nextSequence = getSubSequence(sequence, nextSequencePosition, size); - - if (atatFilter && AtatPalindromeDetector.isAtat(testedSequence)) continue; - LOG.debug("opposite = {} ", oppositSequence); - LOG.debug("next = {} ", nextSequence); - - mismatche = oppositSequence.mismatches(nextSequence); // mismatche null.. proÄŤ??? ZDE JE HLAVNĂŤ problĂ©m - LOG.debug("mismatche = {} ", mismatche); - if (mismatche != null && mismatches.contains(mismatche)) { // Pokud jsem nalezl odpovidaji sekvenci pridam ji do vysledku - - PalindromeModel p = (new PalindromeModel(sequence, i, size, spacer, mismatche)); - palindromes.add(p); - break; - } - } - } - } - return palindromes; - } - - - - @Data - private static class Palindrome { - private SequenceData sequenceData; - private int position; - private int mismatche; - private int spacer; - private int size; - - public Palindrome(SequenceData sequenceData, int position, int mismatche, int spacer, int size) { - this.sequenceData = sequenceData; - this.position = position; - this.mismatche = mismatche; - this.spacer = spacer; - this.size = size; - } - } - - } diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/AtatPalindromeDetector.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/AtatPalindromeDetector.java deleted file mode 100644 index 6b03d03..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/AtatPalindromeDetector.java +++ /dev/null @@ -1,91 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; -import cz.mendelu.dnaAnalyser.sequence.NucleicBuffer; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; -import cz.mendelu.dnaAnalyser.sequence.nucleotide.Nucleotide; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Iterator; -import java.util.SortedSet; - -/** - * Created by xkoloma1 on 03.03.2016. - */ -public class AtatPalindromeDetector implements PalindromeDetector { - - private static final Logger LOG = LoggerFactory.getLogger(AtatPalindromeDetector.class); - - public static boolean isAtat(NucleicBuffer nucleicBuffer) { - if (nucleicBuffer.getLength() == 0) { - return false; - } - - Nucleotide current, expects = nucleicBuffer.next().supplement(nucleicBuffer.getType()); - while (nucleicBuffer.hasNext()) { - current = nucleicBuffer.next(); - if (expects != current) { - return false; - } - expects = current.supplement(nucleicBuffer.getType()); - } - return true; - } - - - private final int minSize, maxSize, maxSpacer; - - public AtatPalindromeDetector(SortedSet<Integer> size, SortedSet<Integer> spacers) { - this.minSize = size.first(); - this.maxSize = size.last(); - this.maxSpacer = spacers.last() - (spacers.last() % 2); - } - - @Override - public PalindromeMatcher findPalindrome(SequenceData sequence) { - SimplePalindromeDetector.SimplePalindromeMatcher result = new SimplePalindromeDetector.SimplePalindromeMatcher(); - if(sequence.getLength() < minSize * 2) { - return result; //TODO nebo radeji vyvolat vyjimku? - } - - Iterator<Nucleotide> i = sequence.iterator(); - Nucleotide current, expects = i.next().supplement(sequence.getType()); - int start = 0, length = 0; - - while (i.hasNext()) { - current = i.next(); - length++; - if (expects != current) { - // Testuji zda sekvence atat je dostatecna na vytvoreni palindromu - if (length >= (minSize * 2)) { - result.add(newPalindrome(sequence, start, length)); - } - start += length; - length = 0; - } - expects = current.supplement(sequence.getType()); - } - - // Pridani palindromu na konci genomu. - if (length >= minSize * 2) { - result.add(newPalindrome(sequence, start, length)); - } - return result; - } - - @Override - public void setAtatFilter(boolean atatFilter) { - // Ignore - } - - private PalindromeModel newPalindrome(SequenceData sequence, int start, int length) { - length -= (length % 2); // DĂ©lka musĂ bĂ˝t sudĂ© ÄŤĂslo! - int size = Math.min(length / 2, maxSize); - int remainder = Math.max(0, length - (size * 2)); - int spacer = Math.min(remainder, maxSpacer); - spacer -= (spacer % 2); // DĂ©lka spaceru musĂ bĂ˝t takĂ© sudĂ© ÄŤĂslo. - return new PalindromeModel(sequence, start, size, spacer, 0); - } - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/CompositePalindromeDetector.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/CompositePalindromeDetector.java deleted file mode 100644 index 52e47ba..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/CompositePalindromeDetector.java +++ /dev/null @@ -1,189 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; - - -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * Created by xkoloma1 on 06.10.2015. - */ -public class CompositePalindromeDetector implements PalindromeDetector { - - public static PalindromeDetectorBuilder palindromeDetectorBuilder() { - return (size, spacers, mismatches) -> { - List<PalindromeDetector> palindromeDetectors = size.stream() - .map(s -> new Simple2PalindromeDetector(s, spacers, mismatches)) - .collect(Collectors.toList()); - - AtatPalindromeDetector atatPalindromeDetector = new AtatPalindromeDetector(size, spacers); - - return new CompositePalindromeDetector(palindromeDetectors, atatPalindromeDetector); - }; - } - - private List<PalindromeDetector> palindromeDetectors; - private AtatPalindromeDetector atatPalindromeDetector; - private boolean usadAtatPalindromeDetector = true; - - private PalindromeMergeEvalutor evalutor = (f, s) -> f.getSize() - f.getMismatches() <= s.getSize() - s.getMismatches(); - - public CompositePalindromeDetector(List<PalindromeDetector> palindromeDetectors, AtatPalindromeDetector atatPalindromeDetector) { - this.palindromeDetectors = palindromeDetectors; - this.atatPalindromeDetector = atatPalindromeDetector; - } - - @Override - public PalindromeMatcher findPalindrome(SequenceData sequence) { - PalindromeMatcher result = palindromeDetectors.parallelStream() - .map(pd -> pd.findPalindrome(sequence)) /* VYBER JEDEN Z NASLEDUJICH DVOU RADKU */ - .reduce(null, (a, b) -> merge(a, b)); // Redukce podle stredu palindromu - //.reduce(null, (a, b) -> sum(a, b)); // Jednoduche spojeni vsech vysledku do jednoho za ucelem demonstrace na clanek - if (usadAtatPalindromeDetector) - result = merge(result, atatPalindromeDetector.findPalindrome(sequence)); - - Map<Object, PalindromeModel> filter = spaceRiseFilter(result); - return new MergePalindromeMatcher(filter); - } - - /** - * Tento filter odstranĂ palindromy, kterĂ© jsou na stejnĂ©m mĂstÄ› a vnikly nárustem spaceru. Tedy ebÄ› jejich části - * (sekvence i oposite) zaÄŤĂnajĂ na stejnmĂ©m mĂstÄ›. - * @param result - * @return - */ - private Map<Object, PalindromeModel> spaceRiseFilter(PalindromeMatcher result) { - Map<Object, PalindromeModel> filter = new HashMap<>(); - result.forEach(palindrome -> { - int palindromeStart = palindrome.getPosition(); - int oppositeStart = palindromeStart + palindrome.getSequence().getLength() + palindrome.getSpacer().getLength(); - FilterSignature signature = new FilterSignature(palindromeStart, oppositeStart); - // Otestuji, jestli mam jiz ulozeny podezdeli palindrom, - if (filter.containsKey(signature)) { // Pokud mam, tak vyhodnotim ten lepsi - PalindromeModel oldPalindromeModel = filter.get(signature); - if (palindrome.getSequence().getLength() > oldPalindromeModel.getSequence().getLength()) { - filter.put(signature, palindrome); - } - } else { // Jinak pouze pridam do mapy - filter.put(signature, palindrome); - } - }); - return filter; - } - - @Override - public void setAtatFilter(boolean atatFilter) { - palindromeDetectors.forEach(p -> p.setAtatFilter(atatFilter)); - usadAtatPalindromeDetector = atatFilter; - } - - private MergePalindromeMatcher merge(PalindromeMatcher a, PalindromeMatcher b) { - MergePalindromeMatcher result = new MergePalindromeMatcher(); - if (a != null) { - result.merge(a); - } - if (b != null) { - result.merge(b); - } - return result; - } - - private PalindromeMatcher sum(PalindromeMatcher a, PalindromeMatcher b) { - return new PalindromeMatcher() { - private List<PalindromeModel> sum = new LinkedList<>(); - { - if (a != null) a.forEach(p -> sum.add(p)); - if (b != null) b.forEach(p -> sum.add(p)); - } - - @Override - public int getCount() { - return sum.size(); - } - - @Override - public Stream<PalindromeModel> stream() { - return sum.stream(); - } - - @Override - public Iterator<PalindromeModel> iterator() { - return sum.iterator(); - } - }; - } - - class MergePalindromeMatcher implements PalindromeMatcher { - - private Map<Object, PalindromeModel> map = new HashMap<>(); - - public MergePalindromeMatcher() {} - - public MergePalindromeMatcher(Map<Object, PalindromeModel> map) { - this.map = map; - } - - private void merge(PalindromeMatcher matcher) { - matcher.forEach(p -> { - if (map.containsKey(p.getMidlePosition())) { - PalindromeModel o = map.get(p.getMidlePosition()); - if (evalutor.evaluate(o, p)) { - map.put(p.getMidlePosition(), p); - } - } else { - map.put(p.getMidlePosition(), p); - } - }); - } - - - @Override - public int getCount() { - return map.size(); - } - - @Override - public Stream<PalindromeModel> stream() { - return map.values().stream(); - } - - @Override - public Iterator<PalindromeModel> iterator() { - return map.values().iterator(); - } - } - - public interface PalindromeMergeEvalutor { - - boolean evaluate(PalindromeModel first, PalindromeModel second); - - } - - private static final class FilterSignature { - - public final int palindromeStart; - public final int oppositeStart; - - public FilterSignature(int palindromeStart, int oppositeStart) { - this.palindromeStart = palindromeStart; - this.oppositeStart = oppositeStart; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - FilterSignature that = (FilterSignature) o; - return palindromeStart == that.palindromeStart && - oppositeStart == that.oppositeStart; - } - - @Override - public int hashCode() { - return Objects.hash(palindromeStart, oppositeStart); - } - } -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetector.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetector.java deleted file mode 100644 index 116218d..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetector.java +++ /dev/null @@ -1,13 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; - -/** - * Created by Honza on 24. 7. 2015. - */ -public interface PalindromeDetector { - - PalindromeMatcher findPalindrome(SequenceData sequence); - - void setAtatFilter(boolean atatFilter); -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetectorBuilder.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetectorBuilder.java deleted file mode 100644 index 68a691e..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeDetectorBuilder.java +++ /dev/null @@ -1,13 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import java.util.SortedSet; - -/** - * Created by xkoloma1 on 06.10.2015. - */ -public interface PalindromeDetectorBuilder { - - PalindromeDetector getPalindromeDetector(SortedSet<Integer> size, SortedSet<Integer> spacers, SortedSet<Integer> mismatches); - - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeMatcher.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeMatcher.java deleted file mode 100644 index 4fe6bdb..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/PalindromeMatcher.java +++ /dev/null @@ -1,16 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; - -import java.util.stream.Stream; - -/** - * Created by Honza on 29. 7. 2015. - */ -public interface PalindromeMatcher extends Iterable<PalindromeModel> { - - int getCount(); - - Stream<PalindromeModel> stream(); - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/Simple2PalindromeDetector.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/Simple2PalindromeDetector.java deleted file mode 100644 index 34b0a61..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/Simple2PalindromeDetector.java +++ /dev/null @@ -1,86 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; -import cz.mendelu.dnaAnalyser.sequence.NucleicBuffer; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.SortedSet; - -/** - * Created by xkoloma1 on 27. 7. 2015. - */ -public class Simple2PalindromeDetector implements PalindromeDetector { - - private static final Logger LOG = LoggerFactory.getLogger(Simple2PalindromeDetector.class); - - private final int size; - - private final SortedSet<Integer> spacers; - - private final SortedSet<Integer> mismatches; - - private boolean cycleMode = false; - - private boolean atatFilter = true; - - public Simple2PalindromeDetector(int size, SortedSet<Integer> spacers, SortedSet<Integer> mismatches) { - LOG.debug("Create: size = {}, spacer = {}, mismatches = {}", size, spacers, mismatches); - this.size = size; - this.spacers = spacers; - this.mismatches = mismatches; - } - - @Override - public void setAtatFilter(boolean atatFilter) { - this.atatFilter = atatFilter; - } - - @Override - public PalindromeMatcher findPalindrome(SequenceData sequence) { - SimplePalindromeDetector.SimplePalindromeMatcher palindromeMatcher = new SimplePalindromeDetector.SimplePalindromeMatcher(); - Integer nextSequencePosition, mismatche; - NucleicBuffer testedSequence, oppositSequence, nextSequence; - int searchToPosition = sequence.getLength(); /* Pokud je povoleno cyklicke - hledánĂ, je sekvence prohledana az nakonec, jinak se prohledani zastavi pred tak, aby nebyli nalezeny - palindromy mimo delku sekvence. */ - - for (int i = 0; i < searchToPosition; i++) { // Cyklu prochazim cely genom - testedSequence = getSubSeqvence(sequence, i); - - // pokud se maji filtrovat atat sekvence, jsou atomaticky vyrazeny z vysledku. - if (atatFilter && AtatPalindromeDetector.isAtat(testedSequence)) continue; - - oppositSequence = testedSequence.revert(); - - for (int spacer : spacers) { // Postupne natahuji mezeru a porovnavam shodu - nextSequencePosition = i + size + spacer; - if (isSubSeqvenceToComapere(sequence, nextSequencePosition)) { - nextSequence = getSubSeqvence(sequence, nextSequencePosition); - - // pokud je dalšà sekvence, jsou atomaticky vyrazeny z vysledku. - if (atatFilter && AtatPalindromeDetector.isAtat(testedSequence)) continue; - mismatche = oppositSequence.mismatches(nextSequence); - if (mismatche != null && mismatches.contains(mismatche)) { // Pokud jsem nalezl odpovidaji sekvenci pridam ji do vysledku - palindromeMatcher.add(new PalindromeModel(sequence, i, size, spacer, mismatche)); - break; // Ukonceni cyklu zvytsujiho mezeru - } - } - } - } - LOG.debug("AnalysePalindrome for size {} done, found {}", size, palindromeMatcher.getCount()); - return palindromeMatcher; - } - - private boolean isSubSeqvenceToComapere(SequenceData sequence, int nextSequencePosition) { - return (cycleMode) - ? true - : sequence.getLength() < nextSequencePosition + size; - } - - private NucleicBuffer getSubSeqvence(SequenceData sequence, int nextSequencePosition) { - return sequence.getBuffer(nextSequencePosition, size); - } - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/SimplePalindromeDetector.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/SimplePalindromeDetector.java deleted file mode 100644 index e7b5693..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/detector/SimplePalindromeDetector.java +++ /dev/null @@ -1,83 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.detector; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; - -import cz.mendelu.dnaAnalyser.sequence.NucleicBuffer; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.stream.Stream; - -/** - * Created by xkoloma1 on 27. 7. 2015. - */ -public class SimplePalindromeDetector implements PalindromeDetector { - - private static final Logger LOG = LoggerFactory.getLogger(SimplePalindromeDetector.class); - - private final int size; - - private final int spacer; - - private final int mismatches; - - public SimplePalindromeDetector(int size, int spacer, int mismatches) { - LOG.debug("Create: size = {}, spacer = {}, mismatches = {}", size, spacer, mismatches); - this.size = size; - this.spacer = spacer; - this.mismatches = mismatches; - } - - @Override - public PalindromeMatcher findPalindrome(SequenceData sequence) { - SimplePalindromeMatcher palindromeMatcher = new SimplePalindromeMatcher(); - Integer mismatche; - NucleicBuffer testedSequence, oppositeSequence, nextSequence; - if(sequence.getLength() >= (size + spacer + size)) { - for (int i = 0; i < sequence.getLength() - (size + spacer + size - 1); i++) { - testedSequence = sequence.getBuffer(i, size); - oppositeSequence = testedSequence.revert(); - nextSequence = sequence.getBuffer(i + size + spacer, size); - mismatche = oppositeSequence.mismatches(nextSequence); - if (mismatche != null && mismatche == mismatches) { - palindromeMatcher.add(new PalindromeModel(sequence, i, size, spacer, mismatches)); - } - } - } - LOG.info("AnalysePalindrome done, found: {}", palindromeMatcher.getCount()); - return palindromeMatcher; - } - - @Override - public void setAtatFilter(boolean atatFilter) { - // Ignore - } - - public static class SimplePalindromeMatcher implements PalindromeMatcher { - - private List<PalindromeModel> palindromeModels = new LinkedList<>(); - - void add(PalindromeModel palindromeModel) { - palindromeModels.add(palindromeModel); - } - - @Override - public int getCount() { - return palindromeModels.size(); - } - - @Override - public Stream<PalindromeModel> stream() { - return palindromeModels.stream(); - } - - @Override - public Iterator<PalindromeModel> iterator() { - return palindromeModels.iterator(); - } - } -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/NumberRange.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/NumberRange.java deleted file mode 100644 index 42829f7..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/NumberRange.java +++ /dev/null @@ -1,62 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.model; - -import java.util.Collections; -import java.util.NavigableSet; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Created by xkoloma1 on 28. 7. 2015. - */ -public class NumberRange { - - private static final Pattern RE_NUMBER = Pattern.compile("^\\d+$"); - private static final Pattern RE_RANGE = Pattern.compile("^(\\d+)-(\\d+)$"); - - private final String input; - - private final NavigableSet<Integer> values; - - public NumberRange(int min, int max) { - this.input = min + "-" + max; - this.values = new TreeSet<>(); - - for (int i = min; i <= max; i++) { - values.add(i); - } - } - - public NumberRange(String input) { - this.input = input.trim(); - this.values = new TreeSet<>(); - - String[] parts = input.trim().split("\\s*,\\s*"); - Matcher matcher; - for (String part : parts) { - matcher = RE_NUMBER.matcher(part); - if (matcher.find()) { - values.add(Integer.parseInt(part)); - continue; - } - - matcher = RE_RANGE.matcher(part); - if (matcher.find()) { - int min = Integer.parseInt(matcher.group(1)); - int max = Integer.parseInt(matcher.group(2)); - for (int i = min; i <= max; i++) { - values.add(i); - } - continue; - } - } - } - - public NavigableSet<Integer> getValues() { - return Collections.unmodifiableNavigableSet(values); - } - - public String toString() { - return input; - } -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/PalindromeModel.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/PalindromeModel.java deleted file mode 100644 index 7ff0755..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/PalindromeModel.java +++ /dev/null @@ -1,129 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.model; - - -import cz.mendelu.dnaAnalyser.sequence.NucleicBuffer; -import cz.mendelu.dnaAnalyser.sequence.data.SequenceData; -import cz.mendelu.dnaAnalyser.sequence.nucleotide.Nucleotide; -import lombok.Data; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -/** - * Created by Honza on 24. 7. 2015. - */ -public class PalindromeModel implements Iterable<PalindromeModel.Entry>/*, SubSequence*/ { - - public static final int SIZE_MARGIN = 5; - - private final SequenceData sequenceData; - - private final int position; - private final int size; - private final int spacer; - private final int mismatches; - - public PalindromeModel(SequenceData sequenceData, int positions, int size, int spacer, int mismatches) { - this.sequenceData = sequenceData; - this.position = positions; - this.size = size; - this.spacer = spacer; - this.mismatches = mismatches; - } - - /* - public Sequence getBefore() { - int beforePosition = (position < SIZE_MARGIN) ? 0 : position - SIZE_MARGIN; - int beforeSize = (position < SIZE_MARGIN) ? position : SIZE_MARGIN; - return genom.getSequence(beforePosition, beforeSize); - } - - */ - public NucleicBuffer getSequence() { - return sequenceData.getBuffer(position, size); - } - - - public NucleicBuffer getSpacer() { - return sequenceData.getBuffer(position + size, spacer); - } - - - public NucleicBuffer getOpposite() { - return sequenceData.getBuffer(position + size + spacer, size); - } - /* - public Sequence getAfter() { - int afterPosition = position + size + spacer + size; - int afterSize = (afterPosition > genom.getLength()) // Otestuji, zda pozice konce nalezeneho palindromu nekonci na zacatku genomu, jinymy slovy zda se nejedna o cyklu - ? SIZE_MARGIN // Jde o cyklicky genom -> plna delka - : (genom.getLength() > afterPosition + SIZE_MARGIN) // Nejde, pak vyberu zbytek do konce - ? SIZE_MARGIN // Tady nezasahu je do konce - : genom.getLength() - afterPosition; // Tady zasahuje a beru jen cast - return genom.getSequence(afterPosition, afterSize); - } - */ - - public float getMidlePosition() { - return position + size + (spacer / 2f); - } - - - @Override - public Iterator<Entry> iterator() { - List<Entry> entries = new ArrayList<>(); - Iterator<Nucleotide> seq = getSequence(); - Iterator<Nucleotide> ops = getOpposite().revert(); - // Nejprve vytvorim dvojice z sekvence a jejiho protejsku - while (seq.hasNext() && ops.hasNext()) { - entries.add(new Entry(seq.next(), ops.next())); - } - // Pote pridam spacer, ale bez protejsku - getSpacer().forEachRemaining(nuclid -> entries.add(new Entry(nuclid, Nucleotide.NONE))); - - // Z vytvorene sekvence vradim iterator - // + obalim zamcenym listem, abych zabranil odsranovani polozek - return Collections.unmodifiableList(entries).iterator(); - } - - public Iterator<Entry> linearFormIterator() { - List<Entry> entries = new ArrayList<>(); - getSequence().forEachRemaining(b -> entries.add(new Entry(b, b.supplement(sequenceData.getType())))); - getSpacer().forEachRemaining(b -> entries.add(new Entry(b, b.supplement(sequenceData.getType())))); - getOpposite().forEachRemaining(b -> entries.add(new Entry(b, b.supplement(sequenceData.getType())))); - // Z vytvorene sekvence vradim iterator - // + obalim zamcenym listem, abych zabranil odsranovani polozek - return Collections.unmodifiableList(entries).iterator(); - } - - - public long getMismatches() { - return mismatches; - } - - public int getPosition() { - return position; - } - - public int getDirection() { - return 0; - } - - public int getSize() { - return size; - } - - public int getLength() { - return 2 * size + spacer; - } - - @Data - public static class Entry { - - private final Nucleotide nuclid; - - private final Nucleotide oposite; - } -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/StabilityModel.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/StabilityModel.java deleted file mode 100644 index 69a61b8..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/model/StabilityModel.java +++ /dev/null @@ -1,23 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.model; - - -import cz.mendelu.dnaAnalyser.analyse.palindrome.stability.NNModelStabilityCalculator; -import cz.mendelu.dnaAnalyser.analyse.palindrome.stability.StabilityCalculator; - -import java.util.function.Supplier; - -public enum StabilityModel { - - NN_MODEL_STABILITY(NNModelStabilityCalculator::new); - - private Supplier<StabilityCalculator> supplier; - - StabilityModel(Supplier<StabilityCalculator> supplier) { - this.supplier = supplier; - } - - public StabilityCalculator stabilityCalculator() { - return supplier.get(); - } - -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/NNModelStabilityCalculator.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/NNModelStabilityCalculator.java deleted file mode 100644 index 5506d78..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/NNModelStabilityCalculator.java +++ /dev/null @@ -1,78 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.stability; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class NNModelStabilityCalculator implements StabilityCalculator { - - private static final Map<String, Double> table = new HashMap<>(); - static { - table.put("AA/TT", -1.00); - table.put("AT/TA", -0.88); - table.put("AC/TG", -1.45); - table.put("AG/TC", -1.00); - - table.put("TA/AT", -0.58); - table.put("TT/AA", -1.00); - table.put("TC/AG", -1.00); - table.put("TG/AC", -1.45); - - table.put("CA/GT", -1.45); - table.put("CT/GA", -1.28); - table.put("CC/GG", -1.84); - table.put("CG/GC", -2.17); - - table.put("GA/CT", -1.30); - table.put("GT/CA", -1.44); - table.put("GC/CG", -2.24); - table.put("GG/CC", -1.84); - - table.put("G-C", 0.98); - table.put("C-G", 0.98); - table.put("A-T", 1.03); - table.put("T-A", 1.03); - } - - @Override - public double calculateCruciForm(PalindromeModel palindromeModel) { - return calculate(palindromeModel.iterator()); - } - - @Override - public double calculateLinearForm(PalindromeModel palindromeModel) { - return calculate(palindromeModel.linearFormIterator()); - } - - private double calculate(Iterator<PalindromeModel.Entry> i) { - PalindromeModel.Entry first = i.next(); - PalindromeModel.Entry second; - - double sum = table.getOrDefault(makeKey(first), 0.0); - while (i.hasNext()) { - second = i.next(); - String key = makeKey(first, second); - double value = table.getOrDefault(key, 0.0); - sum += value; - first = second; - } - sum += table.getOrDefault(makeKey(first), 0.0); - return sum; - } - - private String makeKey(PalindromeModel.Entry first, PalindromeModel.Entry second) { - return first.getNuclid().name() - + second.getNuclid().name() - + "/" - + first.getOposite().name() - + second.getOposite().name(); - } - - private String makeKey(PalindromeModel.Entry entry) { - return entry.getNuclid().name() - + "-" - + entry.getOposite().name(); - } -} diff --git a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/StabilityCalculator.java b/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/StabilityCalculator.java deleted file mode 100644 index c39b02f..0000000 --- a/src/main/java/cz/mendelu/dnaAnalyser/analyse/palindrome/stability/StabilityCalculator.java +++ /dev/null @@ -1,13 +0,0 @@ -package cz.mendelu.dnaAnalyser.analyse.palindrome.stability; - -import cz.mendelu.dnaAnalyser.analyse.palindrome.model.PalindromeModel; - -/** - * Created by xkoloma1 on 19.11.2015. - */ -public interface StabilityCalculator { - - double calculateCruciForm(PalindromeModel palindromeModel); - - double calculateLinearForm(PalindromeModel palindromeModel); -} \ No newline at end of file diff --git a/src/main/java/cz/mendelu/dnaAnalyser/overlay/OverlayService.java b/src/main/java/cz/mendelu/dnaAnalyser/overlay/OverlayService.java index 4877410..521c8a0 100644 --- a/src/main/java/cz/mendelu/dnaAnalyser/overlay/OverlayService.java +++ b/src/main/java/cz/mendelu/dnaAnalyser/overlay/OverlayService.java @@ -3,7 +3,6 @@ package cz.mendelu.dnaAnalyser.overlay; import cz.mendelu.dnaAnalyser.analyse.g4hunter.G4Hunter; import cz.mendelu.dnaAnalyser.analyse.g4hunter.G4HunterService; import cz.mendelu.dnaAnalyser.analyse.g4hunter.quadruplex.*; -import cz.mendelu.dnaAnalyser.analyse.palindrome.PalindromeAnalyse; import cz.mendelu.dnaAnalyser.analyse.rloopr.*; import cz.mendelu.dnaAnalyser.sequence.annotation.Annotation; import cz.mendelu.dnaAnalyser.sequence.annotation.AnnotationService; @@ -163,8 +162,6 @@ public class OverlayService { } }else if (analyse instanceof Rloop){ result = rloopDataSessionService.annotationOverlay(RloopMapper.class, annotation, session, result, groupBy, labelGroupBy, intervals, groupIntervals, from, to); - }else if (analyse instanceof PalindromeAnalyse){ - //TODO PalindromeDataSessionService? } return result; -- GitLab