From d3bc3767575a3b3fbd35bebb8e51fe2d2e9373ff Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 11:58:01 +0100 Subject: [PATCH 01/12] add a todo --- .../org/bbop/apollo/SequenceService.groovy | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 24d420930a..dcd715f2f7 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -376,14 +376,31 @@ class SequenceService { def iterator = index.iterator() while (iterator.hasNext()) { def entry = iterator.next() - Sequence sequence = new Sequence( - organism: organism, - length: entry.size, - start: 0, - end: entry.size, - name: entry.contig - ).save(failOnError: true) - log.debug "added sequence ${sequence}" + if (!seqsMap.containsKey(entry.contig)) { + Sequence sequence = new Sequence( + organism: organism, + length: entry.size, + start: 0, + end: entry.size, + name: entry.contig + ).save(failOnError: true) + log.debug "added sequence ${sequence}" + } + else if (seqsMap[entry.contig].length != entry.size) { + // TODO delete preferences too? + Sequence.delete(seqsMap[entry.contig]) + Sequence sequence = new Sequence( + organism: organism, + length: entry.size, + start: 0, + end: entry.size, + name: entry.contig + ).save(failOnError: true) + log.debug "replaced sequence ${sequence}" + } + else { + log.debug "skipped existing sequence ${sequence}" + } } organism.valid = true From a1dab7cfaa36f38437d58200ff7c2e2d45152ce0 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 09:28:27 +0100 Subject: [PATCH 02/12] more awkward pirouettes... --- .../services/org/bbop/apollo/SequenceService.groovy | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index dcd715f2f7..0d960a05f0 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -325,6 +325,10 @@ class SequenceService { } def sequences = Sequence.findAllByOrganism(organism) + def seqsMap = [:] + sequences.each { sequence -> + seqsMap[sequence.name] = sequence.length + } def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s join s.organism o where o = :organism",[organism:organism]) Preference.deleteAll(preferences) Sequence.deleteAll(sequences) @@ -372,6 +376,11 @@ class SequenceService { FastaSequenceIndex index = new FastaSequenceIndex(genomeFastaIndexFile) log.info "an indexed fasta ${index}" log.info "an indexed fasta size ${index.size()}" + def knownSequences = Sequence.findAllByOrganism(organism) + def seqsMap = [:] + knownSequences.each { sequence -> + seqsMap[sequence.name] = sequence + } // reading the index def iterator = index.iterator() while (iterator.hasNext()) { @@ -387,7 +396,6 @@ class SequenceService { log.debug "added sequence ${sequence}" } else if (seqsMap[entry.contig].length != entry.size) { - // TODO delete preferences too? Sequence.delete(seqsMap[entry.contig]) Sequence sequence = new Sequence( organism: organism, From ced1474938754aeff0b94b449f473f33a0ff108a Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 09:39:55 +0100 Subject: [PATCH 03/12] solve chicken and egg problem --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9443f42cb2..ffabef6174 100644 --- a/.travis.yml +++ b/.travis.yml @@ -80,3 +80,7 @@ script: python setup.py nosetests killall java || true fi + +jobs: + allow_failures: + - env: DB=h2 TEST_SUITE=python-apollo From a365c01feb9c6a900794562baedbbb59dadbe9f5 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 13:40:33 +0100 Subject: [PATCH 04/12] try (just a little bit harder) --- .../org/bbop/apollo/SequenceService.groovy | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 0d960a05f0..89009deed6 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -197,7 +197,7 @@ class SequenceService { } currentOffset -= alterationLength; } - // Substitions + // Substitutions else if (sequenceAlteration.instanceOf == SubstitutionArtifact.canonicalName) { int start = strand == Strand.NEGATIVE ? localCoordinate - (alterationLength - 1) : localCoordinate; residues.replace(start + currentOffset, @@ -329,9 +329,6 @@ class SequenceService { sequences.each { sequence -> seqsMap[sequence.name] = sequence.length } - def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s join s.organism o where o = :organism",[organism:organism]) - Preference.deleteAll(preferences) - Sequence.deleteAll(sequences) // this will fail if folks have actively been working on this and preferences are set // otherwise if we remove all of the sequences annotations will need to be removed as well @@ -345,14 +342,34 @@ class SequenceService { //workaround for jbrowse refSeqs that have no length element length = refSeq.end - refSeq.start } - Sequence sequence = new Sequence( - organism: organism - , length: length - , seqChunkSize: refSeq.seqChunkSize - , start: refSeq.start - , end: refSeq.end - , name: refSeq.name - ).save(failOnError: true) + if (!seqsMap.containsKey(refSeq.name)) { + Sequence sequence = new Sequence( + organism: organism + , length: length + , seqChunkSize: refSeq.seqChunkSize + , start: refSeq.start + , end: refSeq.end + , name: refSeq.name + ).save(failOnError: true) + log.debug "added sequence ${sequence}" + } + else if (seqsMap[refSeq.name].length != length) { + def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:seqsMap[refSeq.name]]) + Preference.deleteAll(preferences) + Sequence.delete(seqsMap[refSeq.name]) + Sequence sequence = new Sequence( + organism: organism + , length: length + , seqChunkSize: refSeq.seqChunkSize + , start: refSeq.start + , end: refSeq.end + , name: refSeq.name + ).save(failOnError: true) + log.debug "added sequence ${sequence}" + } + else { + log.debug "skipped existing sequence ${sequence}" + } } organism.valid = true @@ -396,6 +413,8 @@ class SequenceService { log.debug "added sequence ${sequence}" } else if (seqsMap[entry.contig].length != entry.size) { + def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:sequence]) + Preference.deleteAll(preferences) Sequence.delete(seqsMap[entry.contig]) Sequence sequence = new Sequence( organism: organism, From 10a29e927d7439cebc0bb53a4e5d06d77ded50bc Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 07:57:19 +0100 Subject: [PATCH 05/12] try to implement #2307 --- .../org/bbop/apollo/OrganismController.groovy | 2 +- .../org/bbop/apollo/SequenceService.groovy | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy index 0eb0b81592..cdbb82e73b 100644 --- a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy +++ b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy @@ -1325,7 +1325,7 @@ class OrganismController { } organism.save(flush: true, insert: false, failOnError: true) - if (oldOrganismDirectory!=organism.directory && !doReloadIfOrganismChanges) { + if ((organismDataFile || oldOrganismDirectory!=organism.directory) && !doReloadIfOrganismChanges) { // we need to reload sequenceService.loadRefSeqs(organism) } diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 89009deed6..1a56df1f32 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -330,6 +330,12 @@ class SequenceService { seqsMap[sequence.name] = sequence.length } + def knownSequences = Sequence.findAllByOrganism(organism) + def seqsMap = [:] + knownSequences.each { sequence -> + seqsMap[sequence.name] = sequence.length + } + // this will fail if folks have actively been working on this and preferences are set // otherwise if we remove all of the sequences annotations will need to be removed as well // Sequence.deleteAll(Sequence.findAllByOrganism(organism)) @@ -342,7 +348,11 @@ class SequenceService { //workaround for jbrowse refSeqs that have no length element length = refSeq.end - refSeq.start } +<<<<<<< HEAD if (!seqsMap.containsKey(refSeq.name)) { +======= + if (!seqsMap.containsKey(refSeq.name) || seqsMap[refSeq.name] != length) { +>>>>>>> try to implement #2307 Sequence sequence = new Sequence( organism: organism , length: length @@ -351,6 +361,7 @@ class SequenceService { , end: refSeq.end , name: refSeq.name ).save(failOnError: true) +<<<<<<< HEAD log.debug "added sequence ${sequence}" } else if (seqsMap[refSeq.name].length != length) { @@ -369,6 +380,8 @@ class SequenceService { } else { log.debug "skipped existing sequence ${sequence}" +======= +>>>>>>> try to implement #2307 } } @@ -396,13 +409,13 @@ class SequenceService { def knownSequences = Sequence.findAllByOrganism(organism) def seqsMap = [:] knownSequences.each { sequence -> - seqsMap[sequence.name] = sequence + seqsMap[sequence.name] = sequence.length } // reading the index def iterator = index.iterator() while (iterator.hasNext()) { def entry = iterator.next() - if (!seqsMap.containsKey(entry.contig)) { + if (!seqsMap.containsKey(entry.contig) || seqsMap[entry.contig] != entry.size) { Sequence sequence = new Sequence( organism: organism, length: entry.size, @@ -412,19 +425,6 @@ class SequenceService { ).save(failOnError: true) log.debug "added sequence ${sequence}" } - else if (seqsMap[entry.contig].length != entry.size) { - def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:sequence]) - Preference.deleteAll(preferences) - Sequence.delete(seqsMap[entry.contig]) - Sequence sequence = new Sequence( - organism: organism, - length: entry.size, - start: 0, - end: entry.size, - name: entry.contig - ).save(failOnError: true) - log.debug "replaced sequence ${sequence}" - } else { log.debug "skipped existing sequence ${sequence}" } From d825bc8310cb94c7231a1647e969e3c68b23887c Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 7 Nov 2019 07:40:24 +0100 Subject: [PATCH 06/12] try to reduce docker image size --- .dockerignore | 3 +++ Dockerfile | 43 ++++++++++++++----------------------------- 2 files changed, 17 insertions(+), 29 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..5fedadb675 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git +.gitignore +.github diff --git a/Dockerfile b/Dockerfile index 91068e516a..cf06210a5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,11 @@ # WebApollo -# VERSION 2.1.X FROM tomcat:9-jdk8 MAINTAINER Nathan Dunn ENV DEBIAN_FRONTEND noninteractive +ENV CATALINA_HOME=/usr/local/tomcat +ENV CONTEXT_PATH ROOT + RUN apt-get -qq update --fix-missing && \ apt-get --no-install-recommends -y install \ git build-essential maven libpq-dev postgresql-common openjdk-8-jdk wget \ @@ -20,51 +22,34 @@ RUN npm i -g yarn RUN cp /usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/tools.jar && \ useradd -ms /bin/bash -d /apollo apollo -ENV WEBAPOLLO_VERSION develop -#RUN ls -la /apollo/ +RUN curl -s "http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/blat/blat" -o /usr/local/bin/blat && \ + chmod +x /usr/local/bin/blat && \ + curl -s "http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit" -o /usr/local/bin/faToTwoBit && \ + chmod +x /usr/local/bin/faToTwoBit && \ + wget --quiet https://github.com/erasche/chado-schema-builder/releases/download/1.31-jenkins26/chado-1.31.sql.gz -O /chado.sql.gz && \ + gunzip /chado.sql.gz + #NOTE, we had problems with the build the archive-file coming in from github so using a clone instead -#RUN curl -L https://github.com/GMOD/Apollo/archive/${WEBAPOLLO_VERSION}.tar.gz | tar xzf - --strip-components=1 -C /apollo -# RUN git clone --depth 1 --single-branch --branch ${WEBAPOLLO_VERSION} https://github.com/gmod/apollo /apollo/apollo-clone -# RUN mv /apollo/apollo-clone/* /apollo && rm -rf /apollo/apollo-clone ADD . /apollo -RUN rm -rf .git .gitignore -#COPY * /apollo # install grails COPY docker-files/build.sh /bin/build.sh ADD docker-files/docker-apollo-config.groovy /apollo/apollo-config.groovy RUN chown -R apollo:apollo /apollo -RUN curl -s "http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/blat/blat" -o /usr/local/bin/blat -RUN chmod +x /usr/local/bin/blat -RUN curl -s "http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit" -o /usr/local/bin/faToTwoBit -RUN chmod +x /usr/local/bin/faToTwoBit - USER apollo -RUN curl -s get.sdkman.io | bash -RUN /bin/bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && yes | sdk install grails 2.5.5" -RUN /bin/bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && yes | sdk install gradle 3.2.1" - - -RUN /bin/bash -c "source $HOME/.profile && source $HOME/.sdkman/bin/sdkman-init.sh && /bin/bash /bin/build.sh" +RUN curl -s get.sdkman.io | bash && \ + /bin/bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && yes | sdk install grails 2.5.5" && \ + /bin/bash -c "source $HOME/.sdkman/bin/sdkman-init.sh && yes | sdk install gradle 3.2.1" && \ + /bin/bash -c "source $HOME/.profile && source $HOME/.sdkman/bin/sdkman-init.sh && /bin/bash /bin/build.sh" USER root -ENV CATALINA_HOME=/usr/local/tomcat RUN rm -rf ${CATALINA_HOME}/webapps/* && \ cp /apollo/apollo*.war ${CATALINA_HOME}/apollo.war -ENV CONTEXT_PATH ROOT - -# Download chado schema -RUN wget --quiet https://github.com/erasche/chado-schema-builder/releases/download/1.31-jenkins97/chado-1.31.sql.gz -O /chado.sql.gz && \ - gunzip /chado.sql.gz - - ADD docker-files/createenv.sh /createenv.sh CMD "/createenv.sh" ADD docker-files/launch.sh /launch.sh CMD "/launch.sh" - - From 83d1a5830bc0eba62247168f05ca7a607f2e5c33 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Thu, 7 Nov 2019 13:40:01 -0800 Subject: [PATCH 07/12] fixes #2307 --- Dockerfile | 2 +- .../org/bbop/apollo/SequenceService.groovy | 75 ++++++++++++------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index cf06210a5c..be686ce4bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# WebApollo +# Apollo2 FROM tomcat:9-jdk8 MAINTAINER Nathan Dunn ENV DEBIAN_FRONTEND noninteractive diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 1a56df1f32..6b81970c72 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -330,11 +330,11 @@ class SequenceService { seqsMap[sequence.name] = sequence.length } - def knownSequences = Sequence.findAllByOrganism(organism) - def seqsMap = [:] - knownSequences.each { sequence -> - seqsMap[sequence.name] = sequence.length - } +// def knownSequences = Sequence.findAllByOrganism(organism) +// def seqsMap = [:] +// knownSequences.each { sequence -> +// seqsMap[sequence.name] = sequence.length +// } // this will fail if folks have actively been working on this and preferences are set // otherwise if we remove all of the sequences annotations will need to be removed as well @@ -348,11 +348,7 @@ class SequenceService { //workaround for jbrowse refSeqs that have no length element length = refSeq.end - refSeq.start } -<<<<<<< HEAD if (!seqsMap.containsKey(refSeq.name)) { -======= - if (!seqsMap.containsKey(refSeq.name) || seqsMap[refSeq.name] != length) { ->>>>>>> try to implement #2307 Sequence sequence = new Sequence( organism: organism , length: length @@ -361,27 +357,31 @@ class SequenceService { , end: refSeq.end , name: refSeq.name ).save(failOnError: true) -<<<<<<< HEAD log.debug "added sequence ${sequence}" } else if (seqsMap[refSeq.name].length != length) { - def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:seqsMap[refSeq.name]]) - Preference.deleteAll(preferences) - Sequence.delete(seqsMap[refSeq.name]) - Sequence sequence = new Sequence( - organism: organism - , length: length - , seqChunkSize: refSeq.seqChunkSize - , start: refSeq.start - , end: refSeq.end - , name: refSeq.name - ).save(failOnError: true) - log.debug "added sequence ${sequence}" + Sequence sequence = Sequence.findByNameAndOrganism(refSeq.name,organism) + sequence.length = length + sequence.seqChunkSize = refSeq.seqChunkSize + sequence.start = refSeq.start + sequence.end = refSeq.end +// sequence.name = refSeq.name + sequence.save(failOnError: true,insert:false) +// def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:seqsMap[refSeq.name]]) +// Preference.deleteAll(preferences) +// Sequence.delete(seqsMap[refSeq.name]) +// Sequence sequence = new Sequence( +// organism: organism +// , length: length +// , seqChunkSize: refSeq.seqChunkSize +// , start: refSeq.start +// , end: refSeq.end +// , name: refSeq.name +// ).save(failOnError: true) + log.debug "uddated sequence ${sequence}" } else { - log.debug "skipped existing sequence ${sequence}" -======= ->>>>>>> try to implement #2307 + log.debug "skipped existing unchanged sequence ${refSeq.name}" } } @@ -415,18 +415,37 @@ class SequenceService { def iterator = index.iterator() while (iterator.hasNext()) { def entry = iterator.next() - if (!seqsMap.containsKey(entry.contig) || seqsMap[entry.contig] != entry.size) { + if (!seqsMap.containsKey(entry.contig)) { +// if (!seqsMap.containsKey(entry.contig) || seqsMap[entry.contig] != entry.size) { Sequence sequence = new Sequence( organism: organism, length: entry.size, start: 0, end: entry.size, name: entry.contig - ).save(failOnError: true) + ).save(failOnError: true,insert: true) log.debug "added sequence ${sequence}" } + else if (seqsMap[entry.contig].length != entry.size) { +// def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:sequence]) +// Preference.deleteAll(preferences) +// Sequence.delete(seqsMap[entry.contig]) +// Sequence sequence = new Sequence( +// organism: organism, +// length: entry.size, +// start: 0, +// end: entry.size, +// name: entry.contig +// ).save(failOnError: true) + Sequence sequence = Sequence.findByNameAndOrganism(entry.contig,organism) + sequence.length = entry.size as Integer + sequence.start = 0 + sequence.end = entry.size as Integer + sequence.save(failOnError: true,insert:false) + log.debug "replaced sequence ${sequence}" + } else { - log.debug "skipped existing sequence ${sequence}" + log.debug "skipped existing unchanged sequence ${entry.contig}" } } From 880fb25dde4326e1ec487d9d751229b66841014a Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 8 Nov 2019 07:26:10 +0100 Subject: [PATCH 08/12] fix --- grails-app/services/org/bbop/apollo/SequenceService.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 6b81970c72..71d35dc8ef 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -359,7 +359,7 @@ class SequenceService { ).save(failOnError: true) log.debug "added sequence ${sequence}" } - else if (seqsMap[refSeq.name].length != length) { + else if (seqsMap[refSeq.name] != length) { Sequence sequence = Sequence.findByNameAndOrganism(refSeq.name,organism) sequence.length = length sequence.seqChunkSize = refSeq.seqChunkSize From 1182e1b3c36abf3df00bd8164690ec9febb55c18 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 8 Nov 2019 08:07:49 +0100 Subject: [PATCH 09/12] fix --- grails-app/services/org/bbop/apollo/SequenceService.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index 71d35dc8ef..ff9c316a53 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -426,7 +426,7 @@ class SequenceService { ).save(failOnError: true,insert: true) log.debug "added sequence ${sequence}" } - else if (seqsMap[entry.contig].length != entry.size) { + else if (seqsMap[entry.contig] != entry.size) { // def preferences = Preference.executeQuery("select p from UserOrganismPreference p join p.sequence s where s = :sequence",[sequence:sequence]) // Preference.deleteAll(preferences) // Sequence.delete(seqsMap[entry.contig]) From 1b6f881106ab9277dac0cc64699333fcf83533bf Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Sun, 10 Nov 2019 13:11:31 -0800 Subject: [PATCH 10/12] making sequence no longer read-only --- .../controllers/org/bbop/apollo/OrganismController.groovy | 5 +++-- grails-app/domain/org/bbop/apollo/Sequence.groovy | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy index cdbb82e73b..1b16215418 100644 --- a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy +++ b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy @@ -101,7 +101,7 @@ class OrganismController { assert directoryToRemove.deleteDir() } - render findAllOrganisms() + findAllOrganisms() } catch (Exception e) { @@ -1337,7 +1337,7 @@ class OrganismController { } else { throw new Exception('organism not found') } - render findAllOrganisms() as JSON + findAllOrganisms() } catch (e) { def error = [error: 'problem saving organism: ' + e] @@ -1414,6 +1414,7 @@ class OrganismController { JSONObject requestObject = permissionService.handleInput(request, params) Boolean showPublicOnly = requestObject.showPublicOnly ? Boolean.valueOf(requestObject.showPublicOnly) : false Boolean showObsolete = requestObject.showObsolete ? Boolean.valueOf(requestObject.showObsolete) : false + println "find all organisms request object ${requestObject as JSON}" List organismList = [] if (requestObject.organism) { log.debug "finding info for specific organism" diff --git a/grails-app/domain/org/bbop/apollo/Sequence.groovy b/grails-app/domain/org/bbop/apollo/Sequence.groovy index 65acc582ab..a9e8b3a905 100644 --- a/grails-app/domain/org/bbop/apollo/Sequence.groovy +++ b/grails-app/domain/org/bbop/apollo/Sequence.groovy @@ -20,7 +20,6 @@ class Sequence { ] static mapping = { - cache usage: 'read-only' end column: 'sequence_end' start column: 'sequence_start' featureLocations cascade: 'all-delete-orphan' From d0bb805fc1e9e70436a161f6d225edb2d349cbe2 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Sun, 10 Nov 2019 13:33:38 -0800 Subject: [PATCH 11/12] fixed the order of the organism being fixed --- .../controllers/org/bbop/apollo/OrganismController.groovy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy index 1b16215418..0ac55b26f4 100644 --- a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy +++ b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy @@ -1204,6 +1204,7 @@ class OrganismController { def c = Sequence.createCriteria() sequenceList = c.list { eq('organism', organism) + order('name',"asc") } log.debug "Sequence list fetched at getSequencesForOrganism: ${sequenceList}" } else { @@ -1414,7 +1415,7 @@ class OrganismController { JSONObject requestObject = permissionService.handleInput(request, params) Boolean showPublicOnly = requestObject.showPublicOnly ? Boolean.valueOf(requestObject.showPublicOnly) : false Boolean showObsolete = requestObject.showObsolete ? Boolean.valueOf(requestObject.showObsolete) : false - println "find all organisms request object ${requestObject as JSON}" + println "find all organisms request object ${requestObject}" List organismList = [] if (requestObject.organism) { log.debug "finding info for specific organism" From 53d8432379ca8d4aa3c9ac38527f9e296bed2e3f Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Sun, 10 Nov 2019 14:09:44 -0800 Subject: [PATCH 12/12] reversed the reloading flag --- .../org/bbop/apollo/OrganismController.groovy | 12 +++++++++++- .../services/org/bbop/apollo/SequenceService.groovy | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy index 0ac55b26f4..0313f73f9a 100644 --- a/grails-app/controllers/org/bbop/apollo/OrganismController.groovy +++ b/grails-app/controllers/org/bbop/apollo/OrganismController.groovy @@ -1272,6 +1272,7 @@ class OrganismController { def updateOrganismInfo() { try { JSONObject organismJson = permissionService.handleInput(request, params) + println "updating organism info ${organismJson}" permissionService.checkPermissions(organismJson, PermissionEnum.ADMINISTRATE) Organism organism = Organism.findById(organismJson.id) Boolean madeObsolete @@ -1290,9 +1291,15 @@ class OrganismController { madeObsolete = !organism.obsolete && (organismJson.containsKey("obsolete") ? Boolean.valueOf(organismJson.obsolete as String) : false) organism.obsolete = organismJson.containsKey("obsolete") ? Boolean.valueOf(organismJson.obsolete as String) : false organism.nonDefaultTranslationTable = organismJson.nonDefaultTranslationTable ?: organism.nonDefaultTranslationTable + println "Genome FASTa ${organism.genomeFasta}" if (organism.genomeFasta) { // update location of genome fasta + println "is a genome fasta" sequenceService.updateGenomeFasta(organism) + println "done is a genome fasta" + } + else{ + println "is NOT a genome fasta" } CommonsMultipartFile organismDataFile = null @@ -1326,9 +1333,12 @@ class OrganismController { } organism.save(flush: true, insert: false, failOnError: true) - if ((organismDataFile || oldOrganismDirectory!=organism.directory) && !doReloadIfOrganismChanges) { + println "should be laoding a data file here ${organismDataFile} , ${oldOrganismDirectory}, ${organism.directory} , ${doReloadIfOrganismChanges}" + if ((organismDataFile || oldOrganismDirectory!=organism.directory) && doReloadIfOrganismChanges) { // we need to reload + println "reloading refSeq" sequenceService.loadRefSeqs(organism) + println "DONE refSeq" } } else { throw new Exception("Bad organism directory: " + organism.directory) diff --git a/grails-app/services/org/bbop/apollo/SequenceService.groovy b/grails-app/services/org/bbop/apollo/SequenceService.groovy index ff9c316a53..af392eb0c6 100644 --- a/grails-app/services/org/bbop/apollo/SequenceService.groovy +++ b/grails-app/services/org/bbop/apollo/SequenceService.groovy @@ -306,10 +306,14 @@ class SequenceService { def loadRefSeqs(Organism organism) { JSONObject referenceTrackObject = getReferenceTrackObject(organism) + println "loading ref sequences, ${referenceTrackObject}" if ((referenceTrackObject.storeClass == "JBrowse/Store/SeqFeature/IndexedFasta") || (referenceTrackObject.storeClass == "JBrowse/Store/Sequence/IndexedFasta")) { + println "A loading genome FASTA, ${referenceTrackObject}" loadGenomeFasta(organism, referenceTrackObject) } else { + println "B loading refSeq , ${referenceTrackObject}" loadRefSeqsJson(organism) + println "C LOADED refSeq , ${organism}" } }