Search in sources :

Example 1 with AnalysisOutputFileInfo

use of ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo in project irida by phac-nml.

the class AnalysisController method getOutputFile.

/**
 * Read some lines or text from an {@link AnalysisOutputFile}.
 *
 * @param id       {@link AnalysisSubmission} id
 * @param fileId   {@link AnalysisOutputFile} id
 * @param limit    Optional limit to number of lines to read from file
 * @param start    Optional line to start reading from
 * @param end      Optional line to stop reading at
 * @param seek     Optional file byte position to seek to and begin reading
 * @param chunk    Optional number of bytes to read from file
 * @param response HTTP response object
 * @return JSON with file text or lines as well as information about the file.
 */
@RequestMapping(value = "/ajax/{id}/outputs/{fileId}", method = RequestMethod.GET)
@ResponseBody
public AnalysisOutputFileInfo getOutputFile(@PathVariable Long id, @PathVariable Long fileId, @RequestParam(defaultValue = "100", required = false) Long limit, @RequestParam(required = false) Long start, @RequestParam(required = false) Long end, @RequestParam(defaultValue = "0", required = false) Long seek, @RequestParam(required = false) Long chunk, HttpServletResponse response) {
    AnalysisSubmission submission = analysisSubmissionService.read(id);
    Analysis analysis = submission.getAnalysis();
    final Optional<AnalysisOutputFile> analysisOutputFile = analysis.getAnalysisOutputFiles().stream().filter(x -> Objects.equals(x.getId(), fileId)).findFirst();
    if (analysisOutputFile.isPresent()) {
        final AnalysisOutputFile aof = analysisOutputFile.get();
        final Path aofFile = aof.getFile();
        final ToolExecution tool = aof.getCreatedByTool();
        final AnalysisOutputFileInfo contents = new AnalysisOutputFileInfo();
        contents.setId(aof.getId());
        contents.setAnalysisSubmissionId(submission.getId());
        contents.setAnalysisId(analysis.getId());
        contents.setFilename(aofFile.getFileName().toString());
        contents.setFileExt(FileUtilities.getFileExt(aofFile.getFileName().toString()));
        contents.setFileSizeBytes(aof.getFile().toFile().length());
        contents.setToolName(tool.getToolName());
        contents.setToolVersion(tool.getToolVersion());
        try {
            final File file = aofFile.toFile();
            final RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
            randomAccessFile.seek(seek);
            if (seek == 0) {
                if (chunk != null && chunk > 0) {
                    contents.setText(FileUtilities.readChunk(randomAccessFile, seek, chunk));
                    contents.setChunk(chunk);
                    contents.setStartSeek(seek);
                } else {
                    final BufferedReader reader = new BufferedReader(new FileReader(randomAccessFile.getFD()));
                    final List<String> lines = FileUtilities.readLinesLimit(reader, limit, start, end);
                    contents.setLines(lines);
                    contents.setLimit((long) lines.size());
                    contents.setStart(start);
                    contents.setEnd(start + lines.size());
                }
            } else {
                if (chunk != null && chunk > 0) {
                    contents.setText(FileUtilities.readChunk(randomAccessFile, seek, chunk));
                    contents.setChunk(chunk);
                    contents.setStartSeek(seek);
                } else {
                    final List<String> lines = FileUtilities.readLinesFromFilePointer(randomAccessFile, limit);
                    contents.setLines(lines);
                    contents.setStartSeek(seek);
                    contents.setStart(start);
                    contents.setLimit((long) lines.size());
                }
            }
            contents.setFilePointer(randomAccessFile.getFilePointer());
        } catch (IOException e) {
            logger.error("Could not read output file '" + aof.getId() + "' " + e);
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            contents.setError("Could not read output file");
        }
        return contents;
    } else {
        response.setStatus(HttpServletResponse.SC_NOT_FOUND);
        return null;
    }
}
Also used : PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) AnalysisType(ca.corefacility.bioinformatics.irida.model.enums.AnalysisType) ProjectService(ca.corefacility.bioinformatics.irida.service.ProjectService) FileUtilities(ca.corefacility.bioinformatics.irida.ria.utilities.FileUtilities) Model(org.springframework.ui.Model) MetadataTemplateField(ca.corefacility.bioinformatics.irida.model.sample.MetadataTemplateField) DataTablesResponse(ca.corefacility.bioinformatics.irida.ria.web.components.datatables.DataTablesResponse) AnalysisSubmissionService(ca.corefacility.bioinformatics.irida.service.AnalysisSubmissionService) MetadataTemplate(ca.corefacility.bioinformatics.irida.model.sample.MetadataTemplate) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) TypeReference(com.fasterxml.jackson.core.type.TypeReference) Path(java.nio.file.Path) JsonParseException(com.fasterxml.jackson.core.JsonParseException) ProjectMetadataTemplateJoin(ca.corefacility.bioinformatics.irida.model.joins.impl.ProjectMetadataTemplateJoin) IridaWorkflowNotFoundException(ca.corefacility.bioinformatics.irida.exceptions.IridaWorkflowNotFoundException) AnalysisSubmission(ca.corefacility.bioinformatics.irida.model.workflow.submission.AnalysisSubmission) SequencingObjectService(ca.corefacility.bioinformatics.irida.service.SequencingObjectService) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableMap(com.google.common.collect.ImmutableMap) MediaType(org.springframework.http.MediaType) Collectors(java.util.stream.Collectors) AnalysesListingService(ca.corefacility.bioinformatics.irida.ria.web.services.AnalysesListingService) Principal(java.security.Principal) org.springframework.web.bind.annotation(org.springframework.web.bind.annotation) User(ca.corefacility.bioinformatics.irida.model.user.User) SampleService(ca.corefacility.bioinformatics.irida.service.sample.SampleService) JsonMappingException(com.fasterxml.jackson.databind.JsonMappingException) Authentication(org.springframework.security.core.Authentication) java.util(java.util) ExecutionManagerException(ca.corefacility.bioinformatics.irida.exceptions.ExecutionManagerException) UpdateAnalysisSubmissionPermission(ca.corefacility.bioinformatics.irida.security.permissions.analysis.UpdateAnalysisSubmissionPermission) Analysis(ca.corefacility.bioinformatics.irida.model.workflow.analysis.Analysis) EntityNotFoundException(ca.corefacility.bioinformatics.irida.exceptions.EntityNotFoundException) Controller(org.springframework.stereotype.Controller) MetadataEntry(ca.corefacility.bioinformatics.irida.model.sample.metadata.MetadataEntry) MetadataTemplateService(ca.corefacility.bioinformatics.irida.service.sample.MetadataTemplateService) ToolExecution(ca.corefacility.bioinformatics.irida.model.workflow.analysis.ToolExecution) MessageSource(org.springframework.context.MessageSource) Logger(org.slf4j.Logger) Files(java.nio.file.Files) AnalysisState(ca.corefacility.bioinformatics.irida.model.enums.AnalysisState) DataTablesRequest(ca.corefacility.bioinformatics.irida.ria.web.components.datatables.config.DataTablesRequest) IridaWorkflowsService(ca.corefacility.bioinformatics.irida.service.workflow.IridaWorkflowsService) HttpServletResponse(javax.servlet.http.HttpServletResponse) SequenceFilePair(ca.corefacility.bioinformatics.irida.model.sequenceFile.SequenceFilePair) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Sample(ca.corefacility.bioinformatics.irida.model.sample.Sample) Project(ca.corefacility.bioinformatics.irida.model.project.Project) ProjectAnalysisSubmissionJoin(ca.corefacility.bioinformatics.irida.model.workflow.submission.ProjectAnalysisSubmissionJoin) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) AnalysisOutputFile(ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisOutputFile) java.io(java.io) UserService(ca.corefacility.bioinformatics.irida.service.user.UserService) JobError(ca.corefacility.bioinformatics.irida.model.workflow.analysis.JobError) IridaWorkflow(ca.corefacility.bioinformatics.irida.model.workflow.IridaWorkflow) DataTablesParams(ca.corefacility.bioinformatics.irida.ria.web.components.datatables.DataTablesParams) Path(java.nio.file.Path) AnalysisSubmission(ca.corefacility.bioinformatics.irida.model.workflow.submission.AnalysisSubmission) ToolExecution(ca.corefacility.bioinformatics.irida.model.workflow.analysis.ToolExecution) Analysis(ca.corefacility.bioinformatics.irida.model.workflow.analysis.Analysis) AnalysisOutputFile(ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisOutputFile) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) AnalysisOutputFile(ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisOutputFile)

Example 2 with AnalysisOutputFileInfo

use of ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo in project irida by phac-nml.

the class AnalysisController method getAnalysisOutputFileInfo.

/**
 * Get {@link AnalysisOutputFileInfo}.
 *
 * @param submission {@link AnalysisSubmission} of {@code analysis}
 * @param analysis   {@link Analysis} to get {@link AnalysisOutputFile}s from
 * @param outputName Workflow output name
 * @return {@link AnalysisOutputFile} info
 */
private AnalysisOutputFileInfo getAnalysisOutputFileInfo(AnalysisSubmission submission, Analysis analysis, String outputName) {
    final ImmutableSet<String> BLACKLIST_FILE_EXT = ImmutableSet.of("zip");
    // set of file extensions for indicating whether the first line of the file should be read
    final ImmutableSet<String> FILE_EXT_READ_FIRST_LINE = ImmutableSet.of("tsv", "txt", "tabular", "csv", "tab");
    final AnalysisOutputFile aof = analysis.getAnalysisOutputFile(outputName);
    final Long aofId = aof.getId();
    final String aofFilename = aof.getFile().getFileName().toString();
    final String fileExt = FileUtilities.getFileExt(aofFilename);
    if (BLACKLIST_FILE_EXT.contains(fileExt)) {
        return null;
    }
    final ToolExecution tool = aof.getCreatedByTool();
    final String toolName = tool.getToolName();
    final String toolVersion = tool.getToolVersion();
    final AnalysisOutputFileInfo info = new AnalysisOutputFileInfo();
    info.setId(aofId);
    info.setAnalysisSubmissionId(submission.getId());
    info.setAnalysisId(analysis.getId());
    info.setOutputName(outputName);
    info.setFilename(aofFilename);
    info.setFileSizeBytes(aof.getFile().toFile().length());
    info.setToolName(toolName);
    info.setToolVersion(toolVersion);
    info.setFileExt(fileExt);
    if (FILE_EXT_READ_FIRST_LINE.contains(fileExt)) {
        addFirstLine(info, aof);
    }
    return info;
}
Also used : ToolExecution(ca.corefacility.bioinformatics.irida.model.workflow.analysis.ToolExecution) AnalysisOutputFile(ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisOutputFile) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo)

Example 3 with AnalysisOutputFileInfo

use of ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo in project irida by phac-nml.

the class AnalysisControllerTest method testGetOutputFileByteSizedChunks.

@Test
public void testGetOutputFileByteSizedChunks() {
    final Long submissionId = 1L;
    final MockHttpServletResponse response = new MockHttpServletResponse();
    when(analysisSubmissionServiceMock.read(submissionId)).thenReturn(TestDataFactory.constructAnalysisSubmission());
    // get analysis output file summary info
    final List<AnalysisOutputFileInfo> infos = analysisController.getOutputFilesInfo(submissionId);
    assertEquals("Expecting 5 analysis output file info items", 5, infos.size());
    final Optional<AnalysisOutputFileInfo> optInfo = infos.stream().filter(x -> Objects.equals(x.getOutputName(), "refseq-masher-matches")).findFirst();
    assertTrue("Should be a refseq-masher-matches.tsv output file", optInfo.isPresent());
    final AnalysisOutputFileInfo info = optInfo.get();
    final String firstLine = "sample\ttop_taxonomy_name\tdistance\tpvalue\tmatching\tfull_taxonomy\ttaxonomic_subspecies\ttaxonomic_species\ttaxonomic_genus\ttaxonomic_family\ttaxonomic_order\ttaxonomic_class\ttaxonomic_phylum\ttaxonomic_superkingdom\tsubspecies\tserovar\tplasmid\tbioproject\tbiosample\ttaxid\tassembly_accession\tmatch_id";
    assertEquals("First line of file should be read since it has a tabular file extension", firstLine, info.getFirstLine());
    final Long seekTo = 290L;
    final Long expFileSize = 61875L;
    assertEquals("FilePointer should be first character of second line of file", seekTo, info.getFilePointer());
    assertEquals("File size in bytes should be returned", expFileSize, info.getFileSizeBytes());
    final Long chunkSize = 10L;
    final AnalysisOutputFileInfo chunkInfo = analysisController.getOutputFile(submissionId, info.getId(), null, null, null, seekTo, chunkSize, response);
    assertEquals("Should get the first 10 characters of the 2nd line starting at file pointer position 290", "SRR1203042", chunkInfo.getText());
    final long expFilePointer = seekTo + chunkSize;
    assertEquals("After reading byte chunk of size x starting at position y, filePointer should be x+y", expFilePointer, chunkInfo.getFilePointer().longValue());
    String nextTextChunk = "\tSalmonella enterica subsp. enterica serovar Abony str. 0014";
    final AnalysisOutputFileInfo nextChunkInfo = analysisController.getOutputFile(submissionId, info.getId(), null, null, null, chunkInfo.getFilePointer(), (long) nextTextChunk.length(), response);
    assertEquals("Should be able to continue reading from last file pointer position", nextTextChunk, nextChunkInfo.getText());
    final AnalysisOutputFileInfo lastChunkOfFile = analysisController.getOutputFile(submissionId, info.getId(), null, null, null, expFileSize - chunkSize, chunkSize, response);
    final String lastChunkText = "_str..fna\n";
    assertEquals("Should have successfully read the last chunk of the file", lastChunkText, lastChunkOfFile.getText());
    final AnalysisOutputFileInfo chunkOutsideRangeOfFile = analysisController.getOutputFile(submissionId, info.getId(), null, null, null, expFileSize + chunkSize, chunkSize, response);
    assertEquals("Should return empty string since nothing can be read outside of file range", "", chunkOutsideRangeOfFile.getText());
    assertEquals("Should have seeked to an position of file size + chunkSize", expFileSize + chunkSize, (long) chunkOutsideRangeOfFile.getStartSeek());
    assertEquals("FilePointer shouldn't have changed from startSeek", expFileSize + chunkSize, (long) chunkOutsideRangeOfFile.getFilePointer());
}
Also used : UpdateAnalysisSubmissionPermission(ca.corefacility.bioinformatics.irida.security.permissions.analysis.UpdateAnalysisSubmissionPermission) AnalysisController(ca.corefacility.bioinformatics.irida.ria.web.analysis.AnalysisController) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) AnalysisType(ca.corefacility.bioinformatics.irida.model.enums.AnalysisType) ProjectService(ca.corefacility.bioinformatics.irida.service.ProjectService) MetadataTemplateService(ca.corefacility.bioinformatics.irida.service.sample.MetadataTemplateService) Lists(com.google.common.collect.Lists) Locale(java.util.Locale) AnalysisSubmissionService(ca.corefacility.bioinformatics.irida.service.AnalysisSubmissionService) TestDataFactory(ca.corefacility.bioinformatics.irida.ria.unit.TestDataFactory) Before(org.junit.Before) MessageSource(org.springframework.context.MessageSource) IridaWorkflowNotFoundException(ca.corefacility.bioinformatics.irida.exceptions.IridaWorkflowNotFoundException) AnalysisSubmission(ca.corefacility.bioinformatics.irida.model.workflow.submission.AnalysisSubmission) SequencingObjectService(ca.corefacility.bioinformatics.irida.service.SequencingObjectService) AnalysisState(ca.corefacility.bioinformatics.irida.model.enums.AnalysisState) IridaWorkflowDescription(ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowDescription) IridaWorkflowsService(ca.corefacility.bioinformatics.irida.service.workflow.IridaWorkflowsService) IOException(java.io.IOException) Test(org.junit.Test) IridaWorkflowInput(ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowInput) Mockito.when(org.mockito.Mockito.when) Objects(java.util.Objects) AnalysesListingService(ca.corefacility.bioinformatics.irida.ria.web.services.AnalysesListingService) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) List(java.util.List) UserService(ca.corefacility.bioinformatics.irida.service.user.UserService) Optional(java.util.Optional) SampleService(ca.corefacility.bioinformatics.irida.service.sample.SampleService) Assert(org.junit.Assert) ExtendedModelMap(org.springframework.ui.ExtendedModelMap) Mockito.mock(org.mockito.Mockito.mock) IridaWorkflow(ca.corefacility.bioinformatics.irida.model.workflow.IridaWorkflow) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.Test)

Example 4 with AnalysisOutputFileInfo

use of ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo in project irida by phac-nml.

the class AnalysisControllerTest method testGetOutputFileLines.

@Test
public void testGetOutputFileLines() {
    final Long submissionId = 1L;
    final MockHttpServletResponse response = new MockHttpServletResponse();
    when(analysisSubmissionServiceMock.read(submissionId)).thenReturn(TestDataFactory.constructAnalysisSubmission());
    // get analysis output file summary info
    final List<AnalysisOutputFileInfo> infos = analysisController.getOutputFilesInfo(submissionId);
    assertEquals("Expecting 5 analysis output file info items", 5, infos.size());
    final Optional<AnalysisOutputFileInfo> optInfo = infos.stream().filter(x -> Objects.equals(x.getOutputName(), "refseq-masher-matches")).findFirst();
    assertTrue("Should be a refseq-masher-matches.tsv output file", optInfo.isPresent());
    final AnalysisOutputFileInfo info = optInfo.get();
    final String firstLine = "sample\ttop_taxonomy_name\tdistance\tpvalue\tmatching\tfull_taxonomy\ttaxonomic_subspecies\ttaxonomic_species\ttaxonomic_genus\ttaxonomic_family\ttaxonomic_order\ttaxonomic_class\ttaxonomic_phylum\ttaxonomic_superkingdom\tsubspecies\tserovar\tplasmid\tbioproject\tbiosample\ttaxid\tassembly_accession\tmatch_id";
    assertEquals("First line of file should be read since it has a tabular file extension", firstLine, info.getFirstLine());
    final Long seekTo = 290L;
    assertEquals("FilePointer should be first character of second line of file", seekTo, info.getFilePointer());
    assertEquals("File size in bytes should be returned", Long.valueOf(61875), info.getFileSizeBytes());
    final Long limit = 3L;
    final AnalysisOutputFileInfo lineInfo = analysisController.getOutputFile(submissionId, info.getId(), limit, 0L, null, 0L, null, response);
    assertEquals(limit.intValue(), lineInfo.getLines().size());
    String expLine = "SRR1203042\tSalmonella enterica subsp. enterica serovar Abony str. 0014\t0.00650877\t0.0\t328/400\tBacteria; Proteobacteria; Gammaproteobacteria; Enterobacterales; Enterobacteriaceae; Salmonella; enterica; subsp. enterica; serovar Abony; str. 0014\tSalmonella enterica subsp. enterica\tSalmonella enterica\tSalmonella\tEnterobacteriaceae\tEnterobacterales\tGammaproteobacteria\tProteobacteria\tBacteria\tenterica\tAbony\t\tPRJNA224116\tSAMN01823751\t1029983\tGCF_000487615.2\t./rcn/refseq-NZ-1029983-PRJNA224116-SAMN01823751-GCF_000487615.2-.-Salmonella_enterica_subsp._enterica_serovar_Abony_str._0014.fna";
    assertEquals(expLine, lineInfo.getLines().get(0));
    // begin reading lines after first line file pointer position
    final AnalysisOutputFileInfo lineInfoRandomAccess = analysisController.getOutputFile(submissionId, info.getId(), limit, 0L, null, info.getFilePointer(), null, response);
    assertEquals("Using the RandomAccessFile reading method with seek>0, should give the same results as using a BufferedReader if both start reading at the same position", limit.intValue(), lineInfoRandomAccess.getLines().size());
    assertEquals("Using the RandomAccessFile reading method with seek>0, should give the same results as using a BufferedReader if both start reading at the same position", expLine, lineInfoRandomAccess.getLines().get(0));
}
Also used : UpdateAnalysisSubmissionPermission(ca.corefacility.bioinformatics.irida.security.permissions.analysis.UpdateAnalysisSubmissionPermission) AnalysisController(ca.corefacility.bioinformatics.irida.ria.web.analysis.AnalysisController) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) AnalysisType(ca.corefacility.bioinformatics.irida.model.enums.AnalysisType) ProjectService(ca.corefacility.bioinformatics.irida.service.ProjectService) MetadataTemplateService(ca.corefacility.bioinformatics.irida.service.sample.MetadataTemplateService) Lists(com.google.common.collect.Lists) Locale(java.util.Locale) AnalysisSubmissionService(ca.corefacility.bioinformatics.irida.service.AnalysisSubmissionService) TestDataFactory(ca.corefacility.bioinformatics.irida.ria.unit.TestDataFactory) Before(org.junit.Before) MessageSource(org.springframework.context.MessageSource) IridaWorkflowNotFoundException(ca.corefacility.bioinformatics.irida.exceptions.IridaWorkflowNotFoundException) AnalysisSubmission(ca.corefacility.bioinformatics.irida.model.workflow.submission.AnalysisSubmission) SequencingObjectService(ca.corefacility.bioinformatics.irida.service.SequencingObjectService) AnalysisState(ca.corefacility.bioinformatics.irida.model.enums.AnalysisState) IridaWorkflowDescription(ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowDescription) IridaWorkflowsService(ca.corefacility.bioinformatics.irida.service.workflow.IridaWorkflowsService) IOException(java.io.IOException) Test(org.junit.Test) IridaWorkflowInput(ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowInput) Mockito.when(org.mockito.Mockito.when) Objects(java.util.Objects) AnalysesListingService(ca.corefacility.bioinformatics.irida.ria.web.services.AnalysesListingService) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) List(java.util.List) UserService(ca.corefacility.bioinformatics.irida.service.user.UserService) Optional(java.util.Optional) SampleService(ca.corefacility.bioinformatics.irida.service.sample.SampleService) Assert(org.junit.Assert) ExtendedModelMap(org.springframework.ui.ExtendedModelMap) Mockito.mock(org.mockito.Mockito.mock) IridaWorkflow(ca.corefacility.bioinformatics.irida.model.workflow.IridaWorkflow) AnalysisOutputFileInfo(ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.Test)

Aggregations

AnalysisOutputFileInfo (ca.corefacility.bioinformatics.irida.ria.web.analysis.dto.AnalysisOutputFileInfo)4 IridaWorkflowNotFoundException (ca.corefacility.bioinformatics.irida.exceptions.IridaWorkflowNotFoundException)3 AnalysisState (ca.corefacility.bioinformatics.irida.model.enums.AnalysisState)3 AnalysisType (ca.corefacility.bioinformatics.irida.model.enums.AnalysisType)3 IridaWorkflow (ca.corefacility.bioinformatics.irida.model.workflow.IridaWorkflow)3 AnalysisSubmission (ca.corefacility.bioinformatics.irida.model.workflow.submission.AnalysisSubmission)3 AnalysesListingService (ca.corefacility.bioinformatics.irida.ria.web.services.AnalysesListingService)3 UpdateAnalysisSubmissionPermission (ca.corefacility.bioinformatics.irida.security.permissions.analysis.UpdateAnalysisSubmissionPermission)3 AnalysisSubmissionService (ca.corefacility.bioinformatics.irida.service.AnalysisSubmissionService)3 ProjectService (ca.corefacility.bioinformatics.irida.service.ProjectService)3 SequencingObjectService (ca.corefacility.bioinformatics.irida.service.SequencingObjectService)3 MetadataTemplateService (ca.corefacility.bioinformatics.irida.service.sample.MetadataTemplateService)3 SampleService (ca.corefacility.bioinformatics.irida.service.sample.SampleService)3 UserService (ca.corefacility.bioinformatics.irida.service.user.UserService)3 IridaWorkflowsService (ca.corefacility.bioinformatics.irida.service.workflow.IridaWorkflowsService)3 MessageSource (org.springframework.context.MessageSource)3 AnalysisOutputFile (ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisOutputFile)2 ToolExecution (ca.corefacility.bioinformatics.irida.model.workflow.analysis.ToolExecution)2 IridaWorkflowDescription (ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowDescription)2 IridaWorkflowInput (ca.corefacility.bioinformatics.irida.model.workflow.description.IridaWorkflowInput)2