source: trunk/grails-app/controllers/nl/tno/massSequencing/FastaController.groovy

Last change on this file was 71, checked in by robert@…, 8 years ago

Made some textual changes

File size: 2.5 KB
Line 
1package nl.tno.massSequencing
2
3import org.codehaus.groovy.grails.commons.ConfigurationHolder
4import org.hibernate.SessionFactory
5import grails.converters.*;
6
7class FastaController {
8        def fileService
9        def fastaService
10        def sessionFactory
11        def classificationService
12       
13        def deleteData = { 
14                // load study with id specified by param.id
15                def sequenceData
16               
17                try {
18                        sequenceData = SequenceData.get(params.id as Long)
19                } catch( Exception e ) {}
20
21                if (!sequenceData) {
22                        flash.error = "No sequencedata found with id: $params.id"
23                        redirect( controller: 'study' )
24                        return
25                }
26
27                def entityId
28                def entityType
29               
30                switch( params.entityType ) {
31                        case "run":
32                                entityId = sequenceData.sample.run?.id;
33                                entityType = "run"
34                                break;
35                        case "assay":
36                        default:
37                                entityType = "assay";
38                                entityId = sequenceData.sample.assay.id;
39                                break;
40                }
41                 
42                def numFiles = sequenceData.numFiles();
43                def sample = sequenceData.sample;
44                 
45                // Set flushmode to auto, since otherwise the sequencedata will
46                // not be removed
47                sessionFactory.getCurrentSession().setFlushMode( org.hibernate.FlushMode.AUTO );
48               
49                sample.removeFromSequenceData( sequenceData );
50                sequenceData.delete(flush:true);
51                sample.resetStats();
52                sample.save();
53               
54                // Recalculate the number of sequences for this sample
55                AssaySample.recalculateNumSequences( sample );
56               
57                // Update classification since some sequences have been removed
58                classificationService.updateClassificationForAssaySample( sample );
59               
60                flash.message = numFiles + " file" + (numFiles != 1 ? "s have" : " has" ) + " been deleted from this sample"
61
62                redirect( controller: entityType, action: 'show', id: entityId )
63        }
64       
65        protected Assay getAssay(def assayId) {
66                // load assay with id specified by param.id
67                def assay
68                try {
69                        assay = Assay.get(assayId as Long)
70                } catch( Exception e ) {
71                        flash.error = "Incorrect id given: " + assayId
72                        return null
73                }
74
75                if (!assay) {
76                        flash.error = "No assay found with id: " + assayId
77                        return null
78                }
79               
80                if (!assay.study.canRead( session.user ) ) {
81                        flash.error = "You don't have the right authorizaton to access assay " + assay.name
82                        return null
83                }
84               
85                return assay
86        }
87       
88        protected Run getRun(def runId) {
89                // load run with id specified by param.id
90                def run
91                try {
92                        run = Run.get(runId as Long)
93                } catch( Exception e ) {
94                        flash.error = "Incorrect id given: " + runId
95                        return null
96                }
97
98                if (!run) {
99                        flash.error = "No run found with id: " + runId
100                        return null
101                }
102
103                return run
104        }
105}
Note: See TracBrowser for help on using the repository browser.