Skip to content

Commit

Permalink
Merge pull request #100 from sundarvenkata-EBI/fix/eva2964_incorrect_…
Browse files Browse the repository at this point in the history
…pagination

EVA-2964 - Fix incorrect pagination
  • Loading branch information
sundarvenkata-EBI authored Sep 12, 2022
2 parents 5445e5d + a5b649d commit cb8c80d
Show file tree
Hide file tree
Showing 22 changed files with 102 additions and 988 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,6 @@ public void putChromosomeChecksumsByAccession(
handler.putChromosomeChecksumsByAccession(accession, md5, trunc512);
}

@ApiOperation(value = "Add MD5 and TRUNC512 checksums to all scaffolds by accession.",
notes = "Given an INSDC or RefSeq accession along with a MD5 or a TRUNC512 checksum, this endpoint will " +
"add the given checksums to all scaffolds that match the given INSDC or RefSeq accession.")
@PutMapping(value = "scaffolds/{accession}/checksum")
public void putScaffoldChecksumsByAccession(
@PathVariable @ApiParam(value = "INSDC or Refseq scaffold accession. Eg: NC_000001.11") String accession,
@RequestParam(required = false) @ApiParam("The MD5 checksum associated with the scaffolds.") String md5,
@RequestParam(required = false) @ApiParam("The TRUNC512 checksum associated with the scaffolds.") String trunc512) {
handler.putScaffoldChecksumsByAccession(accession, md5, trunc512);
}

@ApiOperation(value = "Delete an assembly from local database using its GenBank or RefSeq accession.",
notes = "Given an assembly's accession this endpoint will delete the assembly that matches that " +
"accession from the local database. The accession can be either a INSDC or RefSeq accession and" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,15 @@

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.web.PagedResourcesAssembler;
import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.PagedModel;
import org.springframework.stereotype.Service;

import uk.ac.ebi.eva.contigalias.entities.AssemblyEntity;
import uk.ac.ebi.eva.contigalias.service.AssemblyService;
import uk.ac.ebi.eva.contigalias.service.ChromosomeService;
import uk.ac.ebi.eva.contigalias.service.ScaffoldService;

import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import static uk.ac.ebi.eva.contigalias.controller.BaseHandler.convertToPage;
import static uk.ac.ebi.eva.contigalias.controller.BaseHandler.generatePagedModelFromPage;

@Service
public class AdminHandler {
Expand All @@ -42,18 +35,14 @@ public class AdminHandler {

private final ChromosomeService chromosomeService;

private final ScaffoldService scaffoldService;

private final PagedResourcesAssembler<AssemblyEntity> assemblyAssembler;

@Autowired
public AdminHandler(AssemblyService assemblyService,
ChromosomeService chromosomeService,
ScaffoldService scaffoldService,
PagedResourcesAssembler<AssemblyEntity> assemblyAssembler) {
this.assemblyService = assemblyService;
this.chromosomeService = chromosomeService;
this.scaffoldService = scaffoldService;
this.assemblyAssembler = assemblyAssembler;
}

Expand All @@ -76,8 +65,4 @@ public void putAssemblyChecksumsByAccession(String accession, String md5, String
public void putChromosomeChecksumsByAccession(String accession, String md5, String trunc512) {
chromosomeService.putChromosomeChecksumsByAccession(accession, md5, trunc512);
}

public void putScaffoldChecksumsByAccession(String accession, String md5, String trunc512) {
scaffoldService.putScaffoldChecksumsByAccession(accession, md5, trunc512);
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import uk.ac.ebi.eva.contigalias.dus.ENABrowserFactory;
import uk.ac.ebi.eva.contigalias.entities.AssemblyEntity;
import uk.ac.ebi.eva.contigalias.entities.ChromosomeEntity;
import uk.ac.ebi.eva.contigalias.entities.ScaffoldEntity;
import uk.ac.ebi.eva.contigalias.entities.SequenceEntity;

import java.io.IOException;
Expand All @@ -37,7 +36,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Stream;

@Repository("ENADataSource")
public class ENAAssemblyDataSource implements AssemblyDataSource {
Expand Down Expand Up @@ -97,10 +95,6 @@ public void addENASequenceNamesToAssembly(Optional<AssemblyEntity> optional) thr
sourceAssembly.getChromosomes() : Collections.emptyList(),
Objects.nonNull(targetAssembly.getChromosomes()) ?
targetAssembly.getChromosomes() : Collections.emptyList());
addENASequenceNames(Objects.nonNull(sourceAssembly.getScaffolds()) ?
sourceAssembly.getScaffolds() : Collections.emptyList(),
Objects.nonNull(targetAssembly.getScaffolds()) ?
targetAssembly.getScaffolds() : Collections.emptyList());
}
}
}
Expand All @@ -109,10 +103,7 @@ public void addENASequenceNamesToAssembly(Optional<AssemblyEntity> optional) thr
public boolean hasAllEnaSequenceNames(AssemblyEntity assembly) {
List<ChromosomeEntity> chromosomes = Objects.nonNull(assembly.getChromosomes()) ?
assembly.getChromosomes() : Collections.emptyList();
List<ScaffoldEntity> scaffolds = Objects.nonNull(assembly.getScaffolds()) ?
assembly.getScaffolds() : Collections.emptyList();
return Stream.concat(chromosomes.stream(), scaffolds.stream())
.allMatch(sequence -> sequence.getEnaSequenceName() != null);
return chromosomes.stream().allMatch(sequence -> sequence.getEnaSequenceName() != null);
}

private void addENASequenceNames(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import uk.ac.ebi.eva.contigalias.entities.AssemblyEntity;
import uk.ac.ebi.eva.contigalias.entities.ChromosomeEntity;
import uk.ac.ebi.eva.contigalias.entities.ScaffoldEntity;

import java.io.BufferedReader;
import java.io.IOException;
Expand Down Expand Up @@ -80,7 +79,7 @@ public AssemblyEntity getAssemblyEntity() throws IOException {

/**
* Parses lines in assembly report containing Scaffold metadata. This array is used to set metadata to corresponding
* fields in {@link ScaffoldEntity}.
* fields in {@link ChromosomeEntity}.
*
* @param columns An array of fields in a line of the assembly report file not starting with "#".
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import uk.ac.ebi.eva.contigalias.entities.AssemblyEntity;
import uk.ac.ebi.eva.contigalias.entities.ChromosomeEntity;
import uk.ac.ebi.eva.contigalias.entities.ScaffoldEntity;
import uk.ac.ebi.eva.contigalias.entities.SequenceEntity;

import java.io.IOException;
import java.io.InputStreamReader;
Expand Down Expand Up @@ -71,6 +71,7 @@ protected void parseChromosomeLine(String[] columns) {
assemblyEntity = new AssemblyEntity();
}
chromosomeEntity.setAssembly(this.assemblyEntity);
chromosomeEntity.setContigType(SequenceEntity.ContigType.CHROMOSOME);

List<ChromosomeEntity> chromosomes = this.assemblyEntity.getChromosomes();
if (chromosomes == null) {
Expand All @@ -81,7 +82,7 @@ protected void parseChromosomeLine(String[] columns) {
}

protected void parseScaffoldLine(String[] columns) {
ScaffoldEntity scaffoldEntity = new ScaffoldEntity();
ChromosomeEntity scaffoldEntity = new ChromosomeEntity();

scaffoldEntity.setGenbank(columns[0]);
scaffoldEntity.setEnaSequenceName(columns[1]);
Expand All @@ -90,11 +91,12 @@ protected void parseScaffoldLine(String[] columns) {
assemblyEntity = new AssemblyEntity();
}
scaffoldEntity.setAssembly(this.assemblyEntity);
scaffoldEntity.setContigType(SequenceEntity.ContigType.SCAFFOLD);

List<ScaffoldEntity> scaffolds = this.assemblyEntity.getScaffolds();
List<ChromosomeEntity> scaffolds = this.assemblyEntity.getChromosomes();
if (scaffolds == null) {
scaffolds = new LinkedList<>();
assemblyEntity.setScaffolds(scaffolds);
assemblyEntity.setChromosomes(scaffolds);
}
scaffolds.add(scaffoldEntity);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import uk.ac.ebi.eva.contigalias.entities.AssemblyEntity;
import uk.ac.ebi.eva.contigalias.entities.ChromosomeEntity;
import uk.ac.ebi.eva.contigalias.entities.ScaffoldEntity;
import uk.ac.ebi.eva.contigalias.entities.SequenceEntity;

import java.io.IOException;
import java.io.InputStreamReader;
Expand Down Expand Up @@ -108,6 +108,7 @@ protected void parseChromosomeLine(String[] columns) {
assemblyEntity = new AssemblyEntity();
}
chromosomeEntity.setAssembly(this.assemblyEntity);
chromosomeEntity.setContigType(SequenceEntity.ContigType.CHROMOSOME);

List<ChromosomeEntity> chromosomes = this.assemblyEntity.getChromosomes();
if (chromosomes == null) {
Expand All @@ -118,7 +119,7 @@ protected void parseChromosomeLine(String[] columns) {
}

protected void parseScaffoldLine(String[] columns) {
ScaffoldEntity scaffoldEntity = new ScaffoldEntity();
ChromosomeEntity scaffoldEntity = new ChromosomeEntity();

scaffoldEntity.setGenbankSequenceName(columns[0]);
scaffoldEntity.setGenbank(columns[4]);
Expand All @@ -135,11 +136,12 @@ protected void parseScaffoldLine(String[] columns) {
assemblyEntity = new AssemblyEntity();
}
scaffoldEntity.setAssembly(this.assemblyEntity);
scaffoldEntity.setContigType(SequenceEntity.ContigType.SCAFFOLD);

List<ScaffoldEntity> scaffolds = this.assemblyEntity.getScaffolds();
List<ChromosomeEntity> scaffolds = this.assemblyEntity.getChromosomes();
if (scaffolds == null) {
scaffolds = new LinkedList<>();
assemblyEntity.setScaffolds(scaffolds);
assemblyEntity.setChromosomes(scaffolds);
}
scaffolds.add(scaffoldEntity);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,6 @@ public class AssemblyEntity {
@OneToMany(mappedBy = "assembly", cascade = CascadeType.ALL)
private List<ChromosomeEntity> chromosomes;

@JsonIgnore
@ApiModelProperty(value = "List of all scaffolds of the assembly present in the database.")
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy = "assembly", cascade = CascadeType.ALL)
private List<ScaffoldEntity> scaffolds;

public AssemblyEntity() {
}

Expand Down Expand Up @@ -167,15 +161,6 @@ public AssemblyEntity setChromosomes(List<ChromosomeEntity> chromosomes) {
return this;
}

public List<ScaffoldEntity> getScaffolds() {
return scaffolds;
}

public AssemblyEntity setScaffolds(List<ScaffoldEntity> scaffolds) {
this.scaffolds = scaffolds;
return this;
}

@Override
public String toString() {
StringBuilder builder = new StringBuilder();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
Expand Down Expand Up @@ -59,6 +61,15 @@ public class SequenceEntity {
@ApiModelProperty(value = "Sequence's TRUNC512 checksum value.")
private String trunc512checksum;

public enum ContigType {
SCAFFOLD,
CHROMOSOME
}

@ApiModelProperty(value = "Type of contig: chromosome (or) scaffold")
@Enumerated(EnumType.STRING)
private ContigType contigType;

@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModelProperty(value = "Assembly that this sequence belongs to.")
@ManyToOne(cascade = CascadeType.ALL)
Expand Down Expand Up @@ -132,6 +143,14 @@ public SequenceEntity setTrunc512checksum(String trunc512checksum) {
return this;
}

public ContigType getContigType() {
return contigType;
}

public void setContigType(ContigType contigType) {
this.contigType = contigType;
}

public AssemblyEntity getAssembly() {
return assembly;
}
Expand Down

This file was deleted.

Loading

0 comments on commit cb8c80d

Please sign in to comment.