TIP BioKbPlugin is not installed on Foswiki.org.

BioKbPlugin

Create a knowledgebase for a biological system of choice

Introduction

BioKbPlugin is designed to provide a set of functions to establish a biological knowledgebase (hence BioKb), starting from a seed of data derived from common online biological resources. Initially written for TWiki with PatternSkin in mind (this work published in BMC Bioinformatics- please cite if you use this for your research), this version was written within Foswiki, and employs the cleaner interface of QuickMenuSkin, with some significant mofidifications in the form of overrides in template files. The project for which this code was initially developed is RAASWiki, which is now in early development (13/1/10), and I would encourage you to look there to see if you like the results.

A series of administration topics are provided by BioKb, which allow control of topic structure for all topics created through BioKbPlugin functions, and specify, for example, the root URLs to which IDs can be added to create links to external databases.

Functions are provided for population of the wiki in several ways, in addition to those available natively in Foswiki:

  • Form-based
  • Automatic by providing external IDs
  • Interactive- add by selecting results from remote searches

The envisaged application of this is to populate a wiki with some seed data, which can later be manually annotated and built upon in a more manual way. Automatic generation a 'data topic' imposes some consistent, core structure that can be parsed easily (via special included functions). This is made use of to allow a form to be re-generated from topics built in this way, allowing editing by non-technical users, bypassing the requirement of wiki syntax use. This data topic is then embedded within a normal topic, allowing the subject of the data to be annotated and disucussed in a more 'wiki' way.

Feedback

Disclaimer: I am not a computer scientist :-). I'd welcome any constructive criticism, especially if it comes with the offer of help in expanding functionality or tidying-up (e.g. see template issues below).

Usage

Initialisation

The below assumes you have a functional Foswiki installation (BioKb was developed with Foswiki version 1.07) and that you have successfully installed BioKb by following the instructions below.

  1. Log in to Foswiki as member of AdminGroup
  2. Create a new web in ManagingWebs, emplying the _BioKbPlugin as the template web. This will provide many of the utility topics necessary for BioKbPlugin use, as well as a set of starting content for the front page, a web summary topic, etc.
  3. Seed your wiki with basic data, employing the functions at AdminSeed (only KEGG for now), or via the topic creation functions provided in the menu bar
  4. Create more topic types in AdminFormFields, following the examples already present. These types will be added to the 'create' menu. If you attach images and assign them to topic types, they will be used to represent that topic type- for example in BrowseSite. If you include a 'Synonyms' field (copy from other examples), then terms placed in that field will be added to the dictionary and used for linking-back.
  5. Follow the instructions on your WebHome to produce the desired appearance
  6. Modify WebTopBar to produce the desired text in your header
  7. Check the permissions specified in WebPreferences to ensure that your users can edit the wiki. Default behaviour of BioKb is to not allow edits by guest users, but all non-admin topics are edittable after registration (though for data topics this is through the form function).

Administration

A number of other functions are provided for admin purposes post-seeding.

  • <YOUR_BIOKB_WEB>/AdminDictionary : Your wiki's dictionary is maintained here, and determines which terms link to which topics. Any terms put in a 'Synonyms' field of a new topic will automatically be added to this list, but there may be times where a manual edit to remove particular terms is useful.
  • <YOUR_BIOKB_WEB>/AdminDatabaseURLs : The place where the root URLs defining link-outs are placed. A manual edit will affect links created in all new topics, but if you want to correct old ones, click the button which takes you to <YOUR_BIOKB_WEB>/AdminEditDatabaseURLs and provides a form with which to make changes.
  • <YOUR_BIOKB_WEB>/AdminContentLimits : Define the KEGG organism prefixes to specify model organisms to be considered, and whose genes will be included in Gene topics etc.

Style sheet

Much of the BioKb appearance is defined by a style sheet, attached to this topic, and specified via a preference in WebPreferences. Creating a new topic type in AdminFormFields will lead to a css tag being added automatically where appropriate. E.g. creating 'Animal Model' caused assoicated divs etc to be given the 'animal_model' CSS class. You will, however, have to edit the CSS file to apply properties to any new topic types (maybe there's a better way of doing this- it's on the list).

Examples

The code for BioKbPlugin was developed alongside an application: a collaborative database/wiki on the renin angiotensin system: RAASWiki. Below is shown the summary screen present at BrowseSite in every BioKbPlugin web.

raaswiki.png
Illustration of the 'Browse' summary page of a BioKb Foswiki web

Known issuies

As an initial release, there are a number of features still to be incorporated into BioKb, and problems to be tackled.

  • A greater number of remote sources for seed data
  • A number of more computationally intensive operations take too long to perform without feedback to the user. More user-feedback will be incorporated for these processes.
  • QuickMenuSkin: I like the appearance and economy of QuickMenuSkin, but adapted it for my needs- so there are a lot of overrides in the BioKb cover used by BioKbPlugin. There are also some things which may or may not be bugs, which I worked my way around. I have a poor grasp of exactly how the templates work, but I believe that there are some lines in QuickMenuSkin's 'view' template that should by rights be in its 'foswiki' template, for inclusion in all pages. If, after you install BioKbPlugin (and dependencies), and the display looks odd, try the following (backing up before you do):

    • remove these lines from view.quickmenu.tmpl (in FOSWIKI_ROOT/templates):

%TMPL:P{"htmldoctype"}%
%TMPL:P{"head"}%
%TMPL:P{"bodystart"}%
%TMPL:P{"main"}%
%TMPL:P{"bodyend"}%

    • remove the indicated lines from foswiki.quickmenu.tmpl:

this one --->> %TMPL:DEF{"oops"}%
%TMPL:P{"htmldoctype"}%
%TMPL:P{"head"}%
%TMPL:P{"bodystart"}%
%TMPL:P{"main"}%
%TMPL:P{"bodyend"}%
this one --->> %TMPL:END%

    • remove this line from foswiki.quickmenu.tmpl (inside the styles:default definition):

remove %TMPL:INCLUDE{"css.tmpl"}% from within the styles:default definition

I know this is messy, but I didn't have time when writing this to enter into discussion with the author to fix things up (seemed to be quite a lot needed fixing), and I was hacking for my own reasons anyway- for example to include a custom title bar. Assuming I haven't miss-identified bugs, will try and rectify this soon.

Installation Instructions

  • Make sure the dependencies listed below are present. I've had problems getting SOAP::Lite to work with versions greater than 0.60 due to a seeming lack of taint safety. Maybe that's resolved with more recent versions than I was trying though.

  • You should be able to install BioKbPlugin via Foswiki's configuration script, provided all the dependencies are satisfied. As usual, executing the installer manually from your Foswiki root may help, and CPAN is your friend for perl dependencies.

  • BioKb utilises a number of publicly available accessory files to derive annotations, which we cannot distribute, but which need to be stored locally to prevent constant calls to remote servers. The following should be downloaded and placed in the BioKb working directory (usually at /working/work_areas/BioKbPlugin/), and will be used to assemble topic content:
  • BioKb makes use of several JavaScript functions, all of which are the original work of other people, but which we include with BioKb for convenience. Graphic checkboxes are provided by Fancy-Form, which employs the MooTools JavaScript framework.

Info

Many thanks to the following sponsors for supporting this work:
  • Much of this work has been funded by the British Heart Foundation

Author(s): JonathanManning
Copyright: © JonathanManning 2009
License: GPL (Gnu General Public License)
Version: 6031 (2010-01-12)
Change History:  
Dependencies:
NameVersionDescription
XML::Simple2.18Required
XML::LibXML>=1.69Required
LWP::Simple>=5.810Required
Scalar::Util>=1.19Required
Time::Local>=1.18Required
Cwd>=3.2501Required
Clone>=0Required
SOAP::Lite0.60Required
Foswiki::Plugins::VotePlugin>=0Required
Foswiki::Plugins::SpreadSheetPlugin>=0Required
Foswiki::QuickMenuSkin>=0Required
Foswiki::Contrib::RatingContrib>=0Lines-of-stars rating module
Foswiki::TwistyPlugin>=0Required
Foswiki::IfDefinedPlugin>=0Required
Foswiki::DateTimePlugin>=0Required
Foswiki::ImagePlugin>=0Required
Foswiki::SubscribePlugin>=0Required
Foswiki::SocialBookmarkingAddOn>=0Required
Home page: http://foswiki.org/bin/view/Extensions/BioKbPlugin
Support: http://foswiki.org/bin/view/Support/BioKbPlugin

I Attachment Action Size Date Who Comment
BioKbPlugin.md5md5 BioKbPlugin.md5 manage 156 bytes 13 Jan 2010 - 13:20 JonathanManning  
BioKbPlugin.sha1sha1 BioKbPlugin.sha1 manage 180 bytes 13 Jan 2010 - 13:20 JonathanManning  
BioKbPlugin.tgztgz BioKbPlugin.tgz manage 435 K 13 Jan 2010 - 13:19 JonathanManning  
BioKbPlugin.zipzip BioKbPlugin.zip manage 451 K 13 Jan 2010 - 13:19 JonathanManning  
BioKbPlugin_installerEXT BioKbPlugin_installer manage 8 K 13 Jan 2010 - 13:19 JonathanManning  
_BioKb_accept2.pngpng _BioKb_accept2.png manage 2 K 13 Jan 2010 - 11:44 JonathanManning Tick image
_BioKb_not2.pngpng _BioKb_not2.png manage 2 K 13 Jan 2010 - 11:44 JonathanManning cancel image
biokb.csscss biokb.css manage 8 K 13 Jan 2010 - 11:44 JonathanManning CSS file for BioKb webs
checkAllToggle.jsjs checkAllToggle.js manage 313 bytes 13 Jan 2010 - 11:44 JonathanManning Toggle 'check all' javascript
dynamicFormField.jsjs dynamicFormField.js manage 434 bytes 13 Jan 2010 - 11:45 JonathanManning Javascript for adding/removing form fields
igp_400_raaswiki.pngpng igp_400_raaswiki.png manage 115 K 13 Jan 2010 - 11:45 JonathanManning RAASWiki screenshot
igp_800_raaswiki.pngpng igp_800_raaswiki.png manage 333 K 13 Jan 2010 - 11:45 JonathanManning RAASWiki screenshot
kegg_to_ncbi.txttxt kegg_to_ncbi.txt manage 37 K 13 Jan 2010 - 11:45 JonathanManning Handy file for KEGG to NCBI ID conversion. Will need to be updated on occasion by fetching the latest from KeGG
moocheck.jsjs moocheck.js manage 5 K 13 Jan 2010 - 11:45 JonathanManning Replace checkboxes with images
mootools.jsjs mootools.js manage 22 K 13 Jan 2010 - 11:46 JonathanManning The mootools javascript framework
morbidmapEXT morbidmap manage 351 K 13 Jan 2010 - 11:46 JonathanManning File from OMIM for working out some rough disease-gene associations
raaswiki.pngpng raaswiki.png manage 220 K 13 Jan 2010 - 11:46 JonathanManning RAASWiki screenshot
Topic revision: r5 - 22 Dec 2012, GeorgeClark
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy