Search in sources :

Example 1 with SequenceFileAnalysisException

use of ca.corefacility.bioinformatics.irida.exceptions.SequenceFileAnalysisException in project irida by phac-nml.

the class SampleServiceImpl method getTotalBasesForSample.

/**
 * {@inheritDoc}
 */
@Override
@Transactional(readOnly = true)
@PreAuthorize("hasRole('ROLE_ADMIN') or hasPermission(#sample, 'canReadSample')")
public Long getTotalBasesForSample(Sample sample) throws SequenceFileAnalysisException {
    checkNotNull(sample, "sample is null");
    long totalBases = 0;
    List<SampleSequencingObjectJoin> sequencesForSample = ssoRepository.getSequencesForSample(sample);
    for (SampleSequencingObjectJoin join : sequencesForSample) {
        for (SequenceFile sequenceFile : join.getObject().getFiles()) {
            final AnalysisFastQC sequenceFileFastQC = analysisRepository.findFastqcAnalysisForSequenceFile(sequenceFile);
            if (sequenceFileFastQC == null || sequenceFileFastQC.getTotalBases() == null) {
                throw new SequenceFileAnalysisException("Missing FastQC analysis for SequenceFile [" + sequenceFile.getId() + "]");
            }
            totalBases += sequenceFileFastQC.getTotalBases();
        }
    }
    return totalBases;
}
Also used : SequenceFileAnalysisException(ca.corefacility.bioinformatics.irida.exceptions.SequenceFileAnalysisException) SequenceFile(ca.corefacility.bioinformatics.irida.model.sequenceFile.SequenceFile) SampleSequencingObjectJoin(ca.corefacility.bioinformatics.irida.model.sample.SampleSequencingObjectJoin) AnalysisFastQC(ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisFastQC) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

SequenceFileAnalysisException (ca.corefacility.bioinformatics.irida.exceptions.SequenceFileAnalysisException)1 SampleSequencingObjectJoin (ca.corefacility.bioinformatics.irida.model.sample.SampleSequencingObjectJoin)1 SequenceFile (ca.corefacility.bioinformatics.irida.model.sequenceFile.SequenceFile)1 AnalysisFastQC (ca.corefacility.bioinformatics.irida.model.workflow.analysis.AnalysisFastQC)1 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)1 Transactional (org.springframework.transaction.annotation.Transactional)1