when conducting a scientific research project , a considerable amount of time and effort is often expended in the process of designing effective protocols or methodology .
this process comprises a larger proportion of the work load in hypothesis - free or hypothesis - generating disciplines such as bioinformatics and computational genomics ( 1 ) , which generally involve knowledge discovery and data mining based on heuristic approaches .
research in these areas often requires the comparative testing of numerous software tools with the use of hundreds of parameters , and a multitude of input sequences from a variety of data sources .
the g - language genome analysis environment ( g - language gae ; http://www.g-language.org/ ) ( 2,3 ) has been developed as a workbench to expedite routine heuristic research processes in computational genomics .
it provides a set of tools , software libraries and interfaces for use primarily in bacterial genome analysis .
because the g - language gae is comprised of a set of perl libraries , it is compatible with bioperl , but it is 732 times faster than bioperl at parsing genbank files ( see http://www.g-language.org/wiki/benchmark for benchmarking details ) , and it has a more intuitive gateway interface .
for example , the g - language gae can parse and load sequence data from local flat files in numerous file formats , or from remote databases by using accession numbers , or from data objects created with bioperl ( 4 ) , all with a single gateway function with automatic interpretation of the data location and type .
moreover , g - language gae is equipped with an interactive perl / unix shell , which supports a persistent workspace , so a user does not need to write or edit a script in every trial - and - error routine , but instead can interactively test one method at a time .
the software package also contains more than 100 original analysis programs , including those for the identification of binding sites with the use of information theory , analysis of nucleotide composition bias , analysis of the distribution of characteristic oligonucleotides , analysis of codons and prediction of expression levels , and visualization of genomic information [ for a comprehensive review describing the detailed algorithms for each of these tools , see ref .
some of the analysis capabilities are trivial , such as the tools for global alignment and for basic statistics , and for some of the programs similar functionality is available in comprehensive suites like emboss ( 6 ) . on the other hand ,
the g - language gae contains a more comprehensive collection of tools for codon analysis than that found in most popular packages , such as codonw ( http://codonw.sourceforge.net/ ) , and a number of published tools are only available in this system : for example , accurate prediction of the origin and terminus of replication in bacteria using noise - reduction filtering with the fast fourier transform algorithm ( 7 ) , quantification of replication - related mutation or selection bias on bacterial chromosomes and plasmids ( 8,9 ) , measurement of codon bias by using the weighted sum of relative entropy ( 10 ) , accurate detection of the long - term host of a plasmid by measuring the mahalanobis distance of the genomic signatures ( 11 ) , interactive and zoomable chaos game representation ( 12 ) , and several visualization tools for genomic information using the google maps application programming interface ( api ) ( 13 ) . with the availability of thousands of software tools and an ever increasing wealth of genomic resources
the availability of tools as web services provides interoperability , as well as other advantages such as a lack of cost for installation and maintenance ( 14 ) .
the two major web service technologies that are widely adopted in the bioinformatics community are soap ( http://www.w3.org/tr/soap/ ) with web services interoperability ( ws - i ; http://www.ws-i.org ) guidelines and representational state transfer ( rest ; http://www.ics.uci.edu/fielding/pubs/dissertation/rest_arch_style.htm ) .
soap is a traditional web service protocol that exchanges structured information using xml - based messages .
soap requires the use of dedicated software libraries , and hence the messages are not meant to be human - readable .
numerous bioinformatics services are already available as soap - based web services , and a number of graphical client software packages for the construction of workflows utilize these services : for example , the taverna workbench ( 16 ) .
in contrast , rest is laissez faire approach without strict definitions for its protocol , that is recently revived in light of its advantages over soap .
basically , rest provides universal resource locator ( url)-based access over hypertext transfer protocol ( http ) , and therefore can be easily utilized with any tools that can access the web , such as web browsers .
moreover , each rest operation has a unique universal resource identifier ( uri ) , which can be used to represent the service as an online resource that can be utilized from other web sites as a hyperlink .
in short , soap is suited for operation - centric access by programming languages , and rest is suited for quick resource - centric access without the requirement of specialized tools .
therefore , we provide a total of 145 services encompassing 21 categories ( table 1 ) , in soap and/or rest interfaces . in the following sections ,
we describe the system architecture and provide usage examples of these services . 
 table 1.available servicesservice class ( number of web apis)descriptiong ( 39 ) , primitive ( 7 ) , utils ( 6)basic sequence manipulation and data accessalignment ( 2)sequence alignmentaminoacid ( 3)calculation of properties of amino acidscodon ( 19)calculation of codon usage and prediction of expression levelsconsensus ( 6)prediction of sequence motifs using molecular information theorygcskew ( 13)analysis of skews in genome composition , prediction of replication origin and terminusgenomemap ( 7 ) , graph / gmap ( 2)visualization of genomic informationoverlapping ( 1)identification of overlapping genespatsearch ( 15)analysis of oligomer frequencies , calculation of genomic signatureshelp ( 2)documentationstatistics ( 13)basic statisticswebservices ( 3 ) , eutils ( 2 ) , blast ( 1 ) , emboss ( 1 ) , cog ( 1 ) , operon ( 1 ) , pec ( 1)simplified interface to external web servicestotal ( 145 )
rest services are suited for resource - centric access and are extremely easy to use without the need for programming or specialized tools .
we therefore provide basic data parsing functionality as well as all 145 functions of the g - language gae in our set of rest services .
while the use of xml as an exchange format is sometimes recommended even for rest services , all of our services return the results in plain text for human - readability and simplicity , and status and error reports comply with the http status code : 200 for successful request , 404 for invalid request and 302 for url transfer to result image files .
each service operation is represented by two unique urls following a simple syntax , with the base url being either http://rest.g-language.org/ or http://useg.jp/. these two urls point to an identical server , and in the following descriptions we use the latter .
an overview of the url syntax is presented in figure 1 . parsing a flat file containing a dna sequence
requires three input fields : [ sequence ] , [ gene ] and [ feature name ] ( figure 1a ) .
for example , in order to obtain the start position of the reca gene in the escherichia coli k-12 mg1655 genome ( accession number refseq : nc_000913 or embl : u00096 ) , a user can access the corresponding unique url http://useg.jp/nc_000913/reca/start to obtain the position  2 820 730. the first field [ sequence ] can be ( i ) an accession number of one of the genbank files available on our server ( 1247 files containing complete genome and plasmid sequences , at the time of writing ; see http://useg.jp/organism_list/ for a comprehensive listing ) , ( ii ) built - in genomes in the g - language gae , such as ecoli , mgen , bsub , cyano , pyro , corresponding to e. coli , mycoplasma genitalium , bacillus subtilis , synechococcus sp . and pyrococcus furiosus , respectively , ( iii ) a uniform sequence address ( usa ) in the form of [ database name]:[accession number ] such as  refseq : nc_000913 to automatically retrieve a dna or protein sequence from uniprot ( swiss ) , genbank ( genbank ) , genpept ( genpept ) , embl ( embl ) and refseq ( refseq ) , or ( iv ) a temporary six digit hexadecimal i d given to an imported sequence that is in a format supported by bioperl , such as genbank , embl , fasta , fastq and swissprot , and has been uploaded using the function at http://useg.jp / upload/. therefore , input of 
ecoli ,  refseq : nc_000913 ,  embl : u00096 , or the temporary six - digit i d in the field [ sequence ] leads to identical results .
the second input field [ gene ] can be the common gene symbol ( e.g. reca ) , the canonical gene i d ( e.g. b2699 ) , or the feature i d in the g - language gae ( e.g. feature5804 or cds2646 ) . to obtain multiple entries of interest
, the [ sequence ] input can also be a wild - card ( * ) or a search field - value pair ; for example , to search for the keyword 
when multiple genes are specified in this way , results are given in multi - fasta format with gene names as sequence ids .
the last field [ feature name ] is the name of the feature key in genome flat files ( such as start , end , direction , translation , db_xref ) . 

, users can easily utilize the 145 analysis programs of the g - language gae by specifying the program name in the field [ method ] , and by appending optional parameters when necessary in the field [ option = value ] ( figure 1b and c ) .
for example , the retrieval of all the 100-bp nt sequences that are immediately upstream of the start codon of genes in e. coli , in a multi - fasta format , can be achieved using http://useg.jp/nc_000913/*/before_startcodon , gc skew analysis can be performed using http://useg.jp/nc_000913/gcskew/ , and a cumulative gc skew with a 1 kb window can be calculated using http://useg.jp/nc_000913/gcskew/cumulative = 1/window = 1000/. the genome sequence analysis programs often return the results in graphical form , so that the user can readily interpret the results ( figure 2 ) . 

( a ) gc skew graph calculated in all regions of the entire genome ( red ) , coding regions ( green ) , intergenic regions ( blue ) and third nucleotide in codons ( purple ) with genomicskew function in b. subtilis genome .
( c ) nucleotide frequency in regions of 100 bp around start and stop codons using all genes within the genome of b. subtilis using view_cds function .
strong conservation of nucleotides at start and stop codons , as well as conserved upstream shine 
( d ) chaos game representation visualized for synechococus sp . examples of graphical analysis results .
( a ) gc skew graph calculated in all regions of the entire genome ( red ) , coding regions ( green ) , intergenic regions ( blue ) and third nucleotide in codons ( purple ) with genomicskew function in b. subtilis genome .
( c ) nucleotide frequency in regions of 100 bp around start and stop codons using all genes within the genome of b. subtilis using view_cds function .
strong conservation of nucleotides at start and stop codons , as well as conserved upstream shine 
( d ) chaos game representation visualized for synechococus sp . here we have implemented our rest web service to directly return result text and images in arbitrary text and urls , mostly for intuitive usage by biologists from web browsers . on the other hand , restful resources should ideally be marked up with resource uris for semantic interoperability ( 17 ) , which will be our future work .
the g - language soap services include 77 operation - centric analyses , and exclude simple data access and manipulation services that are better handled with rest .
all services return the results synchronously without polling , and take either single scalar values ( 64 methods ) or lists ( 13 methods ) as their main input ( named according to the input type ) , followed by a hash of optional parameters ( named  params ) , as demonstrated in the following perl program .
as is the case for rest services , the input sequence can be a refseq or g - language gae i d , a usa of remote data , or a raw dna or protein sequence in a file format supported in bioperl .
the types of output values are scalar , list , or a url of the result file .
these services are based on soap 1.1 , and service descriptions are listed in web services definition language ( wsdl ) 1.1 at http://soap.g-language.org/g-language.wsdl .
the following is an example of a perl program that utilizes our soap service to calculate and visualize cumulative gc skew in the e. coli genome ; it accesses the 
$ soap = soap::lite->service(http://soap.g - language.org / g - language.wsdl  ) ; $ in0 = soap::data->new(name=>'in0 ' , value=>ecoli ) ; % param = ( -cumulative=>1 ) ; $ inputparams = soap::data->name(params')->type(map=>\%param ) ; # run the web service  gcskew  print $ soap->gcskew($in0 , $ inputparams ) ; one of the primary advantages of soap services is their ability to integrate with hundreds of other bioinformatics services that are already available with soap technology , in the form of workflows . because the wsdl file for our soap service includes the description of all 77 services within one file , users can readily incorporate all these services into the taverna workbench by loading this wsdl file .
moreover , nine example workflows utilizing g - language soap services have been submitted to the myexperiment web site ( http://www.myexperiment.org/ ) ( 18,19 ) that can be loaded in taverna , and users can download and customize these workflows according to their specific needs ( http://www.myexperiment.org/search?query=g-language&type=all ) . figure 3 shows one of the workflows loaded in taverna , namely the  bacteria analysis system ( id:779 in myexperiment ) , which runs 12 analysis services based on a given bacterial genome . 

this workflow calculates and graphs the dna sequence conservation around the start codon in terms of relative entropy ( base_relative_entropy ) , entropy ( base_entropy ) and information content ( base_information_content ) ( 20 ) , calculates the codon usage ( codon_usage ) , graphs the gc skew ( gcskew ) , cumulative gc skew ( gcskew_cumulative ) , gc skew in multiple regions of genome ( genomicskew ) ( 21 ) , visualizes the nucleotide composition around the coding regions ( view_cds ) , calculates the codon adaptation index and predicts gene expression levels ( cai ) ( 22 ) , visualizes the gc content ( gcwin ) , calculates the gc skew index ( gcsi ) ( 8) , and predicts the origin and terminus of replication ( find_ori_ter ) ( 7 ) .
this workflow calculates and graphs the dna sequence conservation around the start codon in terms of relative entropy ( base_relative_entropy ) , entropy ( base_entropy ) and information content ( base_information_content ) ( 20 ) , calculates the codon usage ( codon_usage ) , graphs the gc skew ( gcskew ) , cumulative gc skew ( gcskew_cumulative ) , gc skew in multiple regions of genome ( genomicskew ) ( 21 ) , visualizes the nucleotide composition around the coding regions ( view_cds ) , calculates the codon adaptation index and predicts gene expression levels ( cai ) ( 22 ) , visualizes the gc content ( gcwin ) , calculates the gc skew index ( gcsi ) ( 8) , and predicts the origin and terminus of replication ( find_ori_ter ) ( 7 ) .
the perl api for the g - language gae provides powerful features that aid programmatic sequence manipulation ; however , installation of the api needs expert knowledge because the api requires many external modules .
therefore , a more lightweight version of the g - language gae api has been developed as a wrapper around the rest services .
this module , named bio::glite , is available from the comprehensive perl archive network ( cpan ; http://www.cpan.org/ ) , and can be easily installed using the command 
users of this module can utilize the g - language rest services with the same usability as the original perl api .
complete documentation about each methods and services are available at ajax document center ( http://ws.g-language.org/gdoc/ ) .
a list of all 145 g - language rest services is available at http://useg.jp/method_list/gb/ and http://useg.jp/method_list/ mainly for programmatic access , and detailed documentation about each of the services , including service description , example usage , optional parameters and their default values can be viewed at http://useg.jp/help/[method ] , where [ method ] is the input field for the function name .
further documentation and usage examples are available at http://rest.g - language.org/. for soap services , example scripts in perl , ruby and python languages and detailed documentation , are available at http://www.g - language.org / wiki / soap/. the soap services have also been registered in the biocatalogue(http://www.biocatalogue.org / services/2623-glangsoapservice_651637 ) .
we have designed and implemented a set of web service interfaces to the g - language gae , which allow access to 145 analysis programs through rest and soap web service technologies .
the rest services enable quick and easy access to all programs from any web browser through unique urls , and thus the services can be accessed , in the form of hyperlinks , from other online resources .
the generic handling of sequence data , with automatic interpretation of multiple identifiers and file formats , allows easy linking to a wide variety of resources .
the 77 soap services enable programmatic access to the g - language gae by programs written in languages other than perl , such as ruby , python and java . by using workflow management software such as taverna
, all g - language soap services can be readily integrated with other bioinformatics web services that have rich graphical user interfaces .
20710158 from the japan society for the promotion of science ( jsps ) , and by funds from the yamagata prefectural government and tsuruoka city . funding for open access charge : funds from the yamagata prefectural government and tsuruoka city .
 g - language genome analysis environment ( g - language gae ) contains more than 100 programs that focus on the analysis of bacterial genomes , including programs for the identification of binding sites by means of information theory , analysis of nucleotide composition bias and the distribution of particular oligonucleotides , calculation of codon bias and prediction of expression levels , and visualization of genomic information . 
 we have provided a collection of web services for these programs by utilizing rest and soap technologies . 
 the rest interface , available at http://rest.g-language.org/ , provides access to all 145 functions of the g - language gae . 
 these functions can be accessed from other online resources . 
 all analysis functions are represented by unique universal resource identifiers . 
 users can access the functions directly via the corresponding universe resource locators ( urls ) , and biological web sites can readily embed the functions by simply linking to these urls . 
 the soap services , available at http://www.g-language.org/wiki/soap/ , provide language - independent programmatic access to 77 analysis programs . 
 the soap service web services definition language file can be readily loaded into graphical clients such as the taverna workbench to integrate the programs with other services and workflows . 
INTRODUCTION
REST SERVICES
SOAP SERVICES
APPLICATIONS
DOCUMENTATION
CONCLUSIONS
FUNDING