Last modified 2 months ago Last modified on 06/12/11 09:51:18

Before upgrading, we recommend you back up your existing changes first in case of any problems. For example:

> tar -cvf my_intermine.tar svn/intermine_checkout

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_98
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions


Upgrade to InterMine 0.98

See release notes for InterMine 0.98

This release of InterMine contains a major shift in the userprofile upgrade process. The new code is incompatible with older userprofile databases. If you release a webapp using an old userprofile database, the webapp will be unusable and you will be prompted to run an ant task. You must run the ant task using the same database that created the saved lists.

After upgrading, the procedure for making a new release of your mine changes. You no longer have to write and read the userprofile XML. See below for details.

And, as always, make sure you have good backups of your databases.

Userprofile Upgrade

  1. make backups of your databases
  2. Run the load-bagvalues-table task in the /webapp directory, pointing to the production database that created the saved lists and the current userprofile database.
    1. This task should create the table bagvalues in the userprofile db and load the contents of the lists.
      • NOTE: if the userprofile database already has a table bagvalues, this task does not need to be run again
    2. Make sure your webapp is stopped.
    3. Important: use the same production db that created the saved lists.
    4. After the task is complete, run these queries to make sure the table was created and updated correctly
      1. Verify that the bagvalues table has been generated and the task has loaded all the lists by running these queries in userprofile database:
        select count(distinct savedbagid) from bagvalues;
        
        # should return the same value as this query
        
        select count(*) from savedbag;
        
      2. If the above queries do not produce identical results, it may be because your userprofile contains empty lists. To verify this is the case, get the IDs of the lists and verify they are empty.
        # get all missing lists (in userprofile)
        select osbid from savedbag where ID NOT IN (select savedbagid from bagvalues);
        
        # verify lists are empty (in production database)
        select * from osbag_int where bagid = {osbIDs from above query}
        
        # if this is not the case, contact your nearest InterMine technical support engineer
        

New procedure for releasing a webapp with a new production database

Prior to InterMine 0.98, these were the steps for releasing a webapp with a new production database:

  1. build new production database
  2. write userprofile XML
  3. createdb userprofile
  4. ant build-db-userprofile
  5. read userprofile XML
  6. release webapp

After you switch to InterMine 0.98, lists are upgraded automatically:

  1. build new production database
  2. release webapp

There are some queries you can run to make sure everything has been updated correctly. We recommend you run these queries the first time, just to be certain the upgrade went smoothly.

See UserProfile for details.

Widget Change

The helper class for the Chromosome Distribution widget has moved. Update the extra attribute class definition in webconfig-model.xml to be org.intermine.bio.util.BioUtil instead of org.intermine.bio.web.logic.BioUtil.

Configure new features

  1. Region search
    • in struts-config-form-model.xml, add extendedRegionSize property to the genomicRegionSearchForm entry:
      <form-bean name="genomicRegionSearchForm" type="org.intermine.bio.web.struts.GenomicRegionSearchForm">
        <form-property name="organism" type="java.lang.String"/>
        <form-property name="featureTypes" type="java.lang.String[]"/>
        <form-property name="pasteInput" type="java.lang.String"/>
        <form-property name="fileInput" type="org.apache.struts.upload.FormFile"/>
        <form-property name="whichInput" type="java.lang.String"/>
        <form-property name="dataFormat" type="java.lang.String" initial="isNotInterBaseCoordinate"/>
        <!-- add new property -->
        <form-property name="extendedRegionSize" type="java.lang.String"/>
      </form-bean>
      
    • add to web.properties
      # replace genomicRegionSearch.hidden = false
      genomicRegionSearch.display = true
      # Exclude feature types for all organisms, comma separated
      genomicRegionSearch.featureTypesExcluded.global = GeneFlankingRegion,YouNameItFeatureType
      # Exclude feature types for specified organism, semi-colon separated
      genomicRegionSearch.featureTypesExcluded.byOrganism = D. melanogaster:GeneFlankingRegion,YouNameItClass;
      # Query fields when export results as csv/tsv
      genomicRegionSearch.query.SequenceFeature.views = {0}.primaryIdentifier,{0}.symbol,{0}.chromosomeLocation.locatedOn.primaryIdentifier,{0}.chromosomeLocation.start,{0}.chromosomeLocation.end,{0}.organism.shortName
      
  2. Add config to enable BED export
    • add to struts-config-model.xml
      <action path="/bedExportAction" name="bedExportForm"
              type="org.intermine.web.struts.TableExportAction" parameter="method"/>
      
    • add to tiles-defs-model.xml
      <definition name="bedExportOptions.tile" path="/model/bedExportOptions.jsp"
        controllerUrl="/initSequenceFeatureExportOptions.do" />
      
    • add to struts-config-form-model.xml
       <form-bean name="bedExportForm" type="org.intermine.bio.web.struts.BEDExportForm"/> 
      
  3. New attribute for external links - dataset. Will only display link when the object has a matching dataset value. For example, the below config will add a link to the pathway report page to KEGG - but only for pathways created by the KEGG datasource.
    attributelink.KEGG.Pathway.*.identifier.url=http://www.genome.jp/dbget-bin/www_bget?map<<attributeValue>>
    attributelink.KEGG.Pathway.*.identifier.dataset=KEGG pathways data set
    
  4. Add config to enable region search webservices; Add the following to 'YOURMINE/webapp/resources/web-model.xml':
    <servlet>
      <servlet-name>genomic-region-to-list</servlet-name>
      <servlet-class>org.intermine.bio.webservice.GenomicRegionSearchServlet</servlet-class>
      <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>genomic-region-to-list</servlet-name>
      <url-pattern>/service/regions/list</url-pattern>
    </servlet-mapping>
    
    <servlet>
      <servlet-name>genomic-region-to-gff3</servlet-name>
      <servlet-class>org.intermine.bio.webservice.GenomicRegionGFF3Servlet</servlet-class>
      <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>genomic-region-to-gff3</servlet-name>
      <url-pattern>/service/regions/gff3</url-pattern>
    </servlet-mapping>
    
    
    <servlet>
      <servlet-name>genomic-region-to-fasta</servlet-name>
      <servlet-class>org.intermine.bio.webservice.GenomicRegionFastaServlet</servlet-class>
      <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>genomic-region-to-fasta</servlet-name>
      <url-pattern>/service/regions/fasta</url-pattern>
    </servlet-mapping>
    
    <servlet>
      <servlet-name>genomic-region-to-bed</servlet-name>
      <servlet-class>org.intermine.bio.webservice.GenomicRegionBedServlet</servlet-class>
      <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>genomic-region-to-bed</servlet-name>
      <url-pattern>/service/regions/bed</url-pattern>
    </servlet-mapping>
    

Upgrade to InterMine 0.97

See release notes for InterMine 0.97

To upgrade from InterMine version 0.94 or later there is only one change to your Mine configuration or sources. You can perform an svn switch to the new branch. You can deploy a webapp from the InterMine 0.97 code to access a database built using versions 0.94 or later without making any changes. If upgrading from an earlier version see the detailed notes on upgrading to 0.94 below.

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_97
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

There are a few config changes needed to take advantage of the new functionality offered in the new version of InterMine.

  1. Displayers
  2. User tracking - No config to update, but you will be prompted to run Run the ant task update-templatetrack-table the first time you re-release your webapp.
  3. Genome Region Search - There are several config files to update, see the GenomeRegionSearch for the entire list.
  4. If you have made any model changes, you might have to run the upgrade script to update the model in the userprofile as well. You only have to do this if the model changes effect the userprofile, eg. saved or template queries, lists.
  5. InterMine links - remove bagdisplayer orthologueLinkDisplayer.tile from webconfig-model.xml and add these entries to your struts config:
    # add to webapp/resources/struts-config-model.xml
    <action path="/initFriendlyMineLinkDisplayer" type="org.intermine.bio.web.FriendlyMineLinkController"/>
    
    # add to webapp/resources/tiles-defs-model.xml
    <definition name="friendlyMineLinkDisplayer.tile" path="/model/friendlyMineLinkDisplayer.jsp" controllerUrl="/initFriendlyMineLinkDisplayer.do"/>
    
  6. Web services - We have added biological webservices (GFF3 and FASTA), which requires additional servlet configuration.

Create a new file called "web-model.xml" in the webapp/resources directory of your mine with the following content (see an example):

<servlet>
  <servlet-name>gff3-query</servlet-name>
  <servlet-class>org.intermine.bio.webservice.GFF3QueryServlet</servlet-class>
  <init-param>
     <param-name>debug</param-name>
     <param-value>true</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>gff3-query</servlet-name>
  <url-pattern>/service/query/results/gff3</url-pattern>
</servlet-mapping>

<servlet>
  <servlet-name>gff3-lists</servlet-name>
  <servlet-class>org.intermine.bio.webservice.GFF3ListServlet</servlet-class>
  <init-param>
     <param-name>debug</param-name>
     <param-value>true</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>gff3-lists</servlet-name>
  <url-pattern>/service/list/results/gff3</url-pattern>
</servlet-mapping>

<servlet>
  <servlet-name>fasta-query</servlet-name>
  <servlet-class>org.intermine.bio.webservice.FastaQueryServlet</servlet-class>
  <init-param>
     <param-name>debug</param-name>
     <param-value>true</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>fasta-query</servlet-name>
  <url-pattern>/service/query/results/fasta</url-pattern>
</servlet-mapping>

And add the following lines to your properties file (the file called web.properties in the top level of your mine's project directory. See FlyMine's here: FlyMine's web.properties (this allows webservices to announce what extra services they now provide, in addition to the core webservice resources).

# The paths that optional webservice servlets are configured to
resource.path.query.gff3 = /query/results/gff3
resource.path.query.fasta = /query/results/fasta 

Upgrade to InterMine 0.96

See release notes for InterMine 0.96

To upgrade from InterMine 0.94, 0.94.1 or 0.95 there is only one change to your Mine configuration or sources. You can perform an svn switch to the new branch. You can deploy a webapp from the InterMine 0.96 code to access a database built using 0.94, 0.94.1 or 0.95 without making any changes. If upgrading from an earlier version see the detailed notes on upgrading to 0.94 below.

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_96
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

To upgrade your Cytoscape plugin:

  • You must update your Struts config for Cytoscape to the following to make the plugin work correctly:
    # MINE/webapp/resources/struts-config-model.xml
    <action path="/initCytoscapeNetworkDisplayer"
            type="org.intermine.bio.web.struts.CytoscapeNetworkController"/>
    
    <action path="/cytoscapeNetworkExport"
            type="org.intermine.bio.web.struts.CytoscapeNetworkExportAction"/>
    
    <action path="/cytoscapeNetworkAjax"
            type="org.intermine.bio.web.struts.CytoscapeNetworkAjaxAction"/>
    
    # MINE/webapp/resources/tiles-defs-model.xml
    <definition name="cytoscapeNetworkDisplayer.tile" path="/model/cytoscapeNetworkDisplayer.jsp"
            controllerUrl="/initCytoscapeNetworkDisplayer.do"/>
    
  • And change the name of the tile in the webconfig-model.xml file in the gene and/or protein entries:
      <class className="org.intermine.model.bio.Gene">
        <fields>
          <fieldconfig fieldExpr="primaryIdentifier" />
          ...
        </fields>
        <longdisplayers>      
          <displayer src="cytoscapeNetworkDisplayer.tile"/>
          ...
        </longdisplayers>
      </class>
    

Upgrade to InterMine 0.95

See release notes for InterMine 0.95

To upgrade from InterMine 0.94 or 0.94.1 there are no changes needed to your Mine configuration or sources. You can simply perform an svn switch to the new branch. You can deploy a webapp from the InterMine 0.95 code to access a database built using 0.94 or 0.94.1 without making any changes. If upgrading from an earlier version see the detailed notes on upgrading to 0.94 below.

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_95
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

Upgrade to InterMine 0.94.1

See release notes for InterMine 0.94.1

To upgrade from InterMine 0.94 to 0.94.1 there are no changes needed to your Mine configuration or sources. You can simply perform an svn switch to the new branch. If upgrading from earlier version see the detailed notes on upgrading to 0.94 below.

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_94_1
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

Upgrade to InterMine 0.94

See release notes for InterMine 0.94

InterMine 0.94 includes a major update to the way InterMine generates its data model and queries.

  1. Backup your userprofile database.
  2. Export your userprofile database
    • In <MINE_NAME>/webapp run:
      ant write-userprofile-xml
      
      This creates a file: build/userprofile.xml
    • Copy this file to your home directory.
    • Make a backup copy of this file somewhere else (just in case!).
    • See  UserProfilePorting for detailed instructions.
  3. Checkout the new InterMine branch:
    > cd [your svn directory]
    > svn co svn://subversion.flymine.org/branches/intermine_0_94 intermine_0_94
    
    • We recommend that you keep your current InterMine directory as-is, copying over customised files as needed.
  4. Copy over your /MINE_NAME directory from your 0.93 directory to your new 0.94 directory.
    > cp -r svn/intermine_0_93/MINE_NAME svn/intermine_0_94/
    
  5. Itemise any changes you have made to the core InterMine code, carefully merge changes into new checkout.
  6. Generate a list of SO terms used by your model. Save this list as a plain text file as:
    # used by the build system to generate so_additions.xml
    ~/svn/intermine_0_94/MINE_NAME/dbmodel/resources/so_term_list.txt
    
  7. Update any additions files you have that need changing.
  8. Update property files. Replace ${mine-dir} with your mine name, eg flymine
    1. Update MINE/dbmodel/build.xml to look like this: includeConf(trunk/bio/skeletons/mine/dbmodel/build.xml)?
    2. Update MINE/dbmodel/project.properties to look like this: includeConf(trunk/bio/skeletons/mine/dbmodel/project.properties)?
    3. Edit the config file for the update script to point to your SVN directory
      # update this file with the config for your mine
      ~/svn/intermine/scripts/resources/updater.config
      
    4. Then run the upgrade script:
      > cd ~/svn/intermine_0_94/intermine/scripts
      > ./update_to_0.94 build
      
      • This will update your build.xml file and your project.properties file in your dbmodel directory.
      • See: UpgradeScript
    5. Then update your mine.properties file in your "~/.intermine" directory: you need to change
      "org.postgresql.jdbc3.Jdbc3PoolingDataSource" to "org.postgresql.ds.PGPoolingDataSource"
      
  9. As this is a new release, you should make a new database and properties file, eg:
    # create a new database
    > createdb malariamine-dev
    # create a new properties file, update with new database name
    > nano ~/.intermine/malariamine.properties.dev # replace nano with your editor
    
  10. Update your keys file, dbmodel/resources/genomic_keyDefs.properties, with new model:
    1. DataSet = name
    2. Ontology.key_name=name
    3. Remove Comment.source
    4. Remove Synonym.type
    5. Location.key_all = subject, object, end, start, strand, startIsPartial, endIsPartial
      • replace with: Location.key_all = feature, locatedOn, end, start, strand
  11. Generate the new model by running the following commands:
    > cd [$MINE]/dbmodel
    > ant -Drelease=dev clean build-db -v
    
    • View the generated XML files:
      # the automatically generated SO file - generated from dbmodel/resources/so_term_list.txt
      less dbmodel/build/model/so_additions.xml
      # your new, updated model
      less dbmodel/build/model/genomic_model.xml
      
  12. Edit the config file to point to your new model and the dumped out userprofile.xml, if you have not already done so. Then update all the path-strings in your files to reflect the model changes with the upgrade script:
    > cd ~/svn/intermine_0_94/intermine/scripts
    > ./update_to_0.94 paths
    
  13. You should review your changes, and possibly repeat the previous step until you are completely happy. The userprofile is now ready to be re-imported into a new user profile database.
  14. Configure new search:
    1. synonym-update - delete from your project.xml file
    2. create-search-index - add to your project.xml file
    3. create config file here:
      MINE_NAME/dbmodel/resources/keyword_search.properties
      
    4. note the index is cached but will be slow for the first search as it extracts the index again.
  15. Run a full build and release a webapp. Run all tests and data integrity checks.

Upgrade notes

  1. There have been major changes to the ways queries are represented in xml (see XMLFormatChanges0.94)
  2. There is a new constraint type (Multi-Value constraints) that allows list-like behaviour via the webservice.
  3. Synonyms vs. CrossReferences
    • A CrossReference is a new class added this release. It is an identifier that links an object in InterMine with an external database
      • As a rule, we get these identifiers directly from the source (ensembl, uniprot, flybase, etc).
      • ZFIN is going to extend this class to add sequence, see the "Sequence Information" section of their gene report page.
      • This is different from a synonym which is simply an alias for older identifiers.
      • The search now indexes all identifier fields, so converters do not need to create synonyms for those any more.
  4. The default behaviour of the project-build script has changed: the previous behaviour of the "-t" flag (to resume previous builds from DB dumps) is now the default, and if you wish to use the old default behaviour you should use "-T".
  5. Notation for outer joins has changed in Queries from a ":" to an attribute of the query (for its xml representation see XMLFormatChanges0.94)
  6. shortcuts.xml has been deleted
  7. Each SequenceFeature has a reference to a sequence ontology term
    1. add Ontology key to each of your sources
    2. This reference is set automatically in the converter ONLY if reference is not already set.
  8. Updated postgres driver means that in ".intermine/MINE_NAME.properties, this:
    # old value
    org.postgresql.jdbc3.Jdbc3PoolingDataSource
    
    # new value for 0.94
    org.postgresql.ds.PGPoolingDataSource
    
  9. To constrain TreeFam to only use the specified taxon IDs, update its entry in your project XML file:
    • "treefam.organisms" - load all genes and homologues
    • "treefam.homologues" - these genes will ONLY be loaded if they are homologues for genes of organisms in the "treefam.organisms" list
    • for example:
         <source name="treefam" type="treefam">
            <property name="src.data.dir" location="/shared/data/treefam/current"/>
            <property name="src.data.dir.includes" value="ortholog.txt.table"/>
            <property name="geneFile" value="/shared/data/treefam/current/genes.txt.table"/>
            <property name="treefam.organisms" value="7227 6239 7165 4932"/>
            <property name="treefam.homologues" value="9606 10090 10116 7955"/>
          </source>
      
  10. To enable galaxy export
    • add these to your web.properties file, replacing FlyMine with your Mine name:
      # in web.properties
      galaxy.baseurl.default = http://main.g2.bx.psu.edu
      galaxy.url.value = /tool_runner?tool_id=flymine
      galaxy.welcomeMessage = <b>Welcome to FlyMine, GALAXY users!</b><br/><br/>You can run queries by \
      clicking on the 'Templates' tab at the top of this page.&nbsp;&nbsp;You can send the query results \
      to Galaxy from the 'EXPORT' menu in the results page.
      
    • update Struts config
      # MINE/webapp/resources/struts-config-model.xml
      <action path="/initGalaxyExportOptions"
              type="org.intermine.bio.web.struts.GalaxyExportOptionsController"/>
      <action path="/galaxyExportAction" name="galaxyExportForm"
              type="org.intermine.bio.web.struts.GalaxyExportAction" parameter="method"/>
      
      # MINE/webapp/resources/tiles-defs-model.xml
      <definition name="galaxyExportOptions.tile" path="/model/galaxyExportOptions.jsp"
              controllerUrl="/initGalaxyExportOptions.do"/>
      
      # MINE/webapp/resources/struts-config-model-form.xml
      <form-bean name="galaxyExportForm" type="org.intermine.bio.web.struts.GalaxyExportForm"/>
      
  1. delimiters can be configured now in web.properties. add the "list.upload.delimiters" attribute, if not then it will default to use newline, tab, comma and space.
    # in web.properties
    # valid delimiters for list upload.  SPACE is always valid
    list.upload.delimiters = \n\t,
    
  2. To add the cytoscape viewer
    • load interactions as modelled in FlyMine
      • IntAct
      • BioGRID
    • add this to your webconfig-model.xml file in the gene and/or protein entries
        <class className="org.intermine.model.bio.Gene">
          <fields>
            <fieldconfig fieldExpr="primaryIdentifier" />
            ...
          </fields>
          <longdisplayers>      
            <displayer src="cytoscapeInteractionsDisplayer.tile"/>
            ...
          </longdisplayers>
        </class>
      
    • update Struts config
      # MINE/webapp/resources/struts-config-model.xml
      <action path="/initCytoscapeInteractionsDisplayer"
              type="org.intermine.bio.web.struts.CytoscapeInteractionsController"/>
      
      <action path="/cytoscapeNetworkExport"
              type="org.intermine.bio.web.struts.CytoscapeNetworkExportAction"/>
      
      # MINE/webapp/resources/tiles-defs-model.xml
      <definition name="cytoscapeInteractionsDisplayer.tile" path="/model/cytoscapeInteractionsDisplayer.jsp"
              controllerUrl="/initCytoscapeInteractionsDisplayer.do"/>
      
      
  3. To configure CrossReference, see WebProperties.
  4. Configure what type of objects are annotated by editing "bio/sources/go-annotation/main/resources/go-annotation_config.properties"
  5. Add SO to your project.xml file to get the names and descriptions of sequence ontology terms:
    <source name="so" type="so">
      <property name="src.data.file" location="../../bio/sources/so/so.obo"/>
    </source>
    
  6. Model change made in 0.94.1 - GO evidence are now associated with publications.

Upgrade to InterMine 0.93

See release notes for InterMine 0.93

The are some minor updates you may need to make in your checkout when upgrading from 0.92 to 0.93. If upgrading from an earlier version see the detailed notes for upgrading to 0.92 below.

First, follow this procedure to get version 0.93 then see the upgrade notes below:

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

You could either svn switch your current checkout to the new branch (recommended) or make a new checkout with a different directory name and copy your changes across.

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_93
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolve them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

Changes to make in 0.93

Once you have switched your Mine over to 0.93 you should make these changes as necessary:

  1. If you have written your own widgets in Java you will need to update the package of the InterMineBag class to:
    import org.intermine.api.profile.InterMineBag;
    
  2. To enable orthologue links between Mines, add this line to MINE/webapp/resources/struts-config-model.xml
       <action path="/initOrthologueLinkDisplayer"
            type="org.intermine.bio.web.OrthologueLinkController"/>
    
  3. To enable orthologue links between Mines, add this line to MINE/webapp/resources/tiles-defs-model.xml
    <definition name="orthologueLinkDisplayer.tile" path="/model/orthologueLinkDisplayer.jsp"
            controllerUrl="/initOrthologueLinkDisplayer.do"/>
    
  4. Add this to web.properties. These used to be hardcoded in JSP, they are HTML META information that is added to the site. The description will show up in Google search results.
    # web.properties
    meta.keywords = [comma separated keywords for your site]
    meta.description = [Description of you Mine, this gets displayed in Google search results]
    

Upgrade to InterMine 0.92

See release notes for InterMine 0.92

Notes on changes

  • If upgrading from a branch before 0.9 please follow the instructions for upgrading to 0.9 first (see below). Note that there is a change to the way integration keys can be configured but this is backwards compatible with anything already set up.
  • If upgrading from 0.91 to 0.92 there should be no changes required to existing Mines or sources.
  • The integration priorities file, e.g. xxxmine/dbmodel/resources/genomic_priorities.properties now gets validated. When starting integration the validation checks that each source name that appears in the priorities file exists in project.xml so you may need to make some corrections the first time you start a build.
    • This will affect any commented out lines, i.e. this will be flagged as an invalid source:
      BioEntity.name = \
      #  interpro, \
      uniprot, \
      
  • If you have an existing Mine database built with 0.9 and release a webapp with 0.92 the GO enrichment will not work. In 0.92 the query we use to fetch data for the GO enrichment widget has changed to use the parents collection introduced in 0.91.

Note - If you're not sure which version you currently have in an svn checkout you can type svn info somewhere in your checkout and look at the URL value.

To get the new code, follow the procedure:

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

You could either svn switch your current checkout to the new branch (recommended) or make a new checkout with a different directory name and copy your changes across.

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_92
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolved them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

Upgrade to InterMine 0.91

See release notes for InterMine 0.91

If upgrading from a branch before 0.9 please follow the instructions for upgrading to 0.9 first (see below). If upgrading from 0.9 to 0.91 there should be no changes required to existing Mines or sources. To get the new code, follow the procedure:

  • we recommend you back up your existing changes first in case of any problems. For example:
    > tar -cvf my_intermine.tar svn/intermine_checkout
    

You could either svn switch your current checkout to the new branch (recommended) or make a new checkout with a different directory name and copy your changes across.

To perform an svn switch:

  • Once you have made a backup of your current InterMine, in the root directory of your check out (e.g. svn/dev) do:
    > svn switch svn://subversion.flymine.org/branches/intermine_0_91
    
  • You should see a large number of update statements.
  • If there are any conflicts, where you have changed the same parts of files that have been updated you will need to resolved them manually. Once you are done run:
    > svn resolved filename
    

To perform a new checkout see the checkout instructions

Upgrade to InterMine 0.9

We have made several changes to XML formats, database storage and configuration files all aimed at making InterMine easier to set up. We recommend rebuilding your InterMine databases from scratch with the new code.

Several changes need to made to your Mine and Sources:

project.xml

You can now create sources in sub-directories of bio/sources or in a location outside your InterMine checkout. Specify the locations to look for sources in new source.location properties in project.xml. You need to add at least:

  <project type="bio">
    ...
    <property name="source.location" location="../bio/sources"/>
    ...

The available sources have been re-organised such that e.g. FlyMine specific sources are in bio/sources/flymine/, the common sources should all be in the top level bio/sources but you may need to add more than one source.location property.

dbmodel

  1. Update the dbmodel/project.properties to change the order of extra.model.paths.start from:
    extra.model.paths.start = bio/core/genomic_additions.xml bio/sources/so/so_additions.xml
    
    To:
    extra.model.paths.start = bio/sources/so/so_additions.xml bio/core/genomic_additions.xml
    
  2. Update the following lines in dbmodel/resources/genomic_keyDefs.properties for some changes in the model. From:
    Synonym.key_synonym = subject, value, type, source
    ...
    OntologyRelation.key=parentTerm, childTerm, type
    
    To:
    Synonym.key_synonym = subject, value, type
    ...
    OntologyRelation.key=parentTerm, childTerm, relationship
    
  3. In dbmodel/resources/objectstoresummary.config.properties file, replace FlyMine.model.genomic with InterMine.model.bio, like so:
    org.flymine.model.genomic.DataSet.fields = title
    org.flymine.model.genomic.DataSource.fields = name
    ...
    
    org.intermine.model.bio.DataSet.fields = title
    org.intermine.model.bio.DataSource.fields = name
    ...
    
  4. Also in dbmodel/resources/objectstoresummary.config.properties file, remove GOAnnotation.autocomplete:
    org.flymine.model.genomic.GOAnnotation.autocomplete = name
    
    Replace with:
    org.intermine.model.bio.GOTerm.autocomplete = name
    
  5. You can only set the priority for a field once, you can't set the priority for a field in a class and then set it again in its parent class. Depending on which sources you load, you may have duplicate entries in your dbmodel/resources/genomic_priorities file. For example, BioEntity.primaryIdentifier and BioEntity.name can only be set once, eg. in Protein.name or BioEntity.name but not in both. Remove duplicate entries:
     BioEntity.primaryIdentifier = \
      flybase, \
      uniprot, \
      *
    
     BioEntity.name = \
      uniprot, \
      *
    
    Protein.name = \
      uniprot, \
      *
    
    Gene.primaryIdentifier = \
      wormbase, \
      uniprot, \
      *
    
    To:
    Protein.name = \
      uniprot, \
      *
    
    Gene.primaryIdentifier = \
      wormbase, \
      uniprot, \
      *
    

Additions XML files

The package of the biological data model has changed from org.flymine.model.genomic to org.intermine.model.bio. However the full package no longer needs to be specified in model additions files. So, for example, you should change:

<classes>
  ...
  <class name="org.flymine.model.genomic.Gene"
      extends="org.flymine.model.genomic.BioEntity" is-interface="true">
    <collection name="pathways" 
      referenced-type="org.flymine.model.genomic.Pathway" reverse-reference="genes"/>
  </class>
  ...
</classes>

To:

<classes>
  ... 
  <class name="Gene" extends="BioEntity" is-interface="true">
    <collection name="pathways" referenced-type="Pathway" reverse-reference="genes"/>
  </class>
  ...
</classes>

Loading FASTA

The fasta source requires that you specify class names of feature types to create in the project.xml file. These need to be updated to reflect the new package name. For example, change:

<source name="flybase-dpse-gene-fasta" type="fasta">
  ...
  <property name="fasta.className" value="org.flymine.model.genomic.Gene"/>
  ...
</source>

To:

<source name="flybase-dpse-gene-fasta" type="fasta">
  ...
  <property name="fasta.className" value="org.intermine.model.bio.Gene"/>
  ...
</source>

webapp

The package of the biological data model has changed from org.flymine.model.genomic to org.intermine.model.bio, you will need to search and replace the package name in webconfig-model.xml.

userprofile

To transfer an existing userprofile database from an old release you will need to write it out as XML from the old branch of code you were using then read the XML in using the new InterMine release. This will update the format that query XML is stored in. See instructions here.