BACKGROUND
as a result of the “genomic revolution”, high-throughput  functional genomics experiments that measure the thousands of gene products  in cells have become ubiquitous  <cit> .
dna sequencing technologies are commoditizing and democratizing transcriptome analysis by sequencing  <cit> , further increasing the volume of transcriptome data.
while getting the data is becoming less onerous, turning these massive datasets into knowledge, however, requires computational systems biology modelling approaches and is still challenging.
one approach for modelling functional genomics datasets is to use canonical networks or pathways such as those provided by ingenuity  <cit>  and ariadne  <cit> .
a complementary approach is to take advantage of the gene ontology  <cit> .
the go has become the de facto standard for describing the molecular functions, biological processes, and cellular locations of gene products and is based on a structured, controlled vocabulary  <cit>  that is computationally compliant.
in such a context, the go may be used to identify which classes of gene products are represented, or over-represented, in functional genomics datasets.
this has been done in one of three main ways: by “go-slimming”, by enrichment analysis or, less commonly, by hypothesis-testing.
the go consortium provides pre-defined “go slim sets”, which are reduced representations of the three go ontologies   <cit> .
use of go slims forces the analysis to be conducted at a pre-determined and very shallow conceptual level and thus does not make use of the full power of the go.
at the time of writing there were at least  <dig> computational tools for go enrichment analysis  and these can be classified as belonging to one of three classes based on the algorithms used by each tool: singular enrichment analysis, gene set enrichment analysis, and modular enrichment analysis  <cit> .
regardless of their enrichment analysis classification, all go enrichment analysis tools primarily focus on giving the user high level functional categories of go terms significantly represented in the input gene set.
although useful to identify functional profiles of differentially-expressed gene products, neither go slims nor go enrichment analyses methods support hypothesis-testing, especially based on user-specified hypothesis terms.
while discovery-based approaches open up new areas and stimulate new hypotheses, ht functional genomics data should not be limited to discovery-based science.
ht functional genomics data can be used, equally well as reductionist data, to test hypotheses.
the go is ideal for hypothesis testing as it is designed to capture the explicit experimental data in the published literature in a computationally-amenable way.
initial tool development to support hypothesis testing using the go include the gene class expression tool  <cit>  and egon  <cit> .
the broad approach for these tools is to statistically determine if go terms are differentially expressed between different gene data sets.
the adoption of go-based functional genomics analysis tools has been slow because many assume a level of go annotation of gene products that does not exist for many species, datasets or, microarray platforms, and/or require computer programming skills.
furthermore when the go has been used for analyzing microarray data to find under- or over-represented go terms associated with a dataset  <cit> , these analyses are not based on the microarray quantitative values but rather on counts of go terms.
the results do not represent the true proportions of genes negatively- or positively-affecting a particular process or function.
here we describe, gomodeler, a computational tool that does not compare gene lists against each other but rather is based on the hypotheses chosen by the user at the beginning of an experiment.
gomodeler uses the go, in combination with quantitative ht functional genomics data, to quantify the effects of input gene identifiers on the hypothesis terms.
the results are presented in tabular and graphical formats.
a qualitative table shows the individual effect of each gene on each hypothesis term and a quantitative table shows the overall effect of the entire gene dataset on each of the hypothesis terms.
the net effects from the quantitative table are then summarised in a graphical output.
the advantages of this tool are the following: 1) it allows the user to specify hypothesis terms; 2) it makes use of the detailed gene annotation and the hierarchical structure of the go to determine effects; 3) it allows the user to supplement information obtained from the go with their own expertise; and 4) it generates informative tabular and graphical summaries of the net effects of genes.
methods
input requirements
gomodeler requires the user to provide two input files as shown in figure  <dig>  the gene expression file is a text file containing a list of gene identifier/gene expression value pairs, one per line, with the identifier and the expression value separated by a comma.
identifiers accepted by gomodeler are uniprot accessions, gene names, and genbank accessions.
alternatively, the gene expression file can contain sequences in fasta format where the last line of each sequence is followed by a line containing a comma and an expression value.
the gene expression values can be provided as fold changes , expression differences  or the logarithm of fold changes ).
we assume that the gene expression values submitted by the user are a comparison of expression of a treatment and control or of two different conditions.
if the data is from single-channel microarrays, we assume that the user has already processed the data to yield expression differences, ratios, or logarithms of ratios.
for quantitative analysis, we require the following conditions to hold for the gene expression values:
<dig>  up-regulation is indicated by positive expression values.
<dig>  down-regulation is indicated by negative expression values.
<dig>  no change in expression is indicated by a value of zero.
expression values provided as fold changes are automatically converted to log <dig>  to ensure that these requirements hold.
the second input file, the hypothesis file, is a text file containing a list of hypothesis terms of interest to the user, one term per line .
the hypothesis go term  builder uses the hypothesis file to create a hypothesis go term  file as described below.
if the user already knows which go term identifiers are associated with each hypothesis term or if they have previously used the hgt builder to create an hgt file, they can upload the hgt file directly.
each line of the hgt file contains a hypothesis term and a list of one or more associated go terms separated by commas .
the hypothesis go term builder uses the porter stemmer  <cit>  <cit>  to extract stems for the hypothesis terms submitted by the user.
for example, if the user submits inflammation as a hypothesis term, the stemmer would produce inflam.
this enables matches to go term names such as “inflammatory response”.
the tool then searches all go term names, descriptions, and synonyms for the specified hypothesis term stems.
the results of the search are returned as a list of go records with check boxes .
the user can view additional details about each go term by clicking on the term name before making his/her choice.
if there are no go identifiers returned for a search term, the user is given a link to amigo  <cit> , where they can conduct a more extensive search.
the interface also provides a text box where the user can enter additional go identifiers that were not found by the interface.
the interface verifies that these additional go identifiers are valid and not obsolete.
the go identifiers selected by the user or input in the text box are used to create the hgt file.
after the file has been created, the user has the option of saving the file before starting the analysis.
gomodeler retrieves maximal go annotation for each gene identifier listed in the gene expression file using the agbase goanna tool  <cit> .
the process of creating the input file for goanna varies depending on the type of gene identifier provided by the user as shown in the flow chart in figure  <dig>  goanna accepts fasta sequences or uniprot accessions.
genbank accessions are mapped to fasta sequences and gene names are mapped to uniprot accessions.
goanna conducts a blast search using standard goanna parameters and retrieves go identifiers for each input sequence.
the user also needs to select the species of interest.
gomodeler uses the species selected by the user to narrow the subsequent goanna search to the most relevant species likely to have substantial go annotation.
for example, if the user selects “chicken”, goanna searches chicken, mouse, and human databases.
table  <dig> gives a list of the species currently supported and the databases searched for each of these species.
a gene information file is created containing the original information in the gene expression file along with the go identifiers found for each gene.
the user is also asked to specify a “default effect of unsigned go terms” and “default method for conflict resolution of contradictory go terms.” these parameters are discussed in detail in the following section.
mapping go terms to effects
the go terms in the gene information file and the hgt file are the basis for the analysis conducted by gomodeler.
the first step of the analysis is to match the go identifiers for each gene in the gene information file to the go identifiers related to each hypothesis term.
figure  <dig> describes the algorithm for the matching process.
for each gene, gomodeler first matches each associated go id with all the go ids of each hypothesis term.
if an exact match is found, the associated go name is parsed to determine an effect value {+ <dig>  − <dig>  0} as described below.
if no exact match is found, the match function recursively calls itself with the parents of the gene go id and the hypothesis term go id list as arguments to search for matches against generalizations of the gene go term with the hypothesis go terms.
this operation is valid because the “true path rule” of the go states that the path from a child to all its parents is always true- that is, if a particular go term applies to a gene product, then all ancestors of that go term also apply to the gene product  <cit> .
after the matching process, go term names are parsed to determine effects.
although the go is a controlled vocabulary, the specific words “positive” and “negative” are not always used explicitly to describe effects.
for example, the term go: <dig>  implies a positive effect while the terms go: <dig> , and go: <dig>  imply negative effects.
if a name contains the words positive, pro, stimulates, increases/d or upregulates, an effect value of + <dig> is assigned.
if the name contains the words negative, anti, suppresses, inhibits, decreases/d or downregulates, an effect of − <dig> is assigned.
if the go term does not specify either positive or negative effects, the assigned effect will depend on the “default effect of unsigned go terms” specified by the user.
if the user selects “no effect” then the final effect for “unsigned terms” will be  <dig>  if the user selects “positive” all matched terms where gomodeler cannot assign a positive or negative effect are assumed to have a positive effect .
for example, the term go: <dig>  is an unsigned term that could be assumed, based on common usage in manuscripts, to have a positive effect.
this problem is created, and needs to be accounted for, because go biocurators annotate only explicitly written facts and do not infer further  <cit> .
in some cases, go terms with contradictory effects will be found for the same gene-hypothesis term pair.
this is quite reasonable as gene product effects are commonly context dependent.
regardless, in this case, the conflict resolution method specified by the user is used to determine the effect.
conflict resolution methods supported are: positives override, negatives override, and the greater of positives and negatives.
at the conclusion of the matching process, effect_listi,j will contain all of the effects found for gene i and hypothesis term j.
summarizing effects
gomodeler generates a qualitative table, a quantitative table  and a graphical summary of the net effects of the gene set on each of the hypothesis terms.
the qualitative table depicts the individual qualitative effect qli,j of each gene gi on each of the hypothesis terms hj where qli,j ∈ {− <dig>   <dig>  + <dig>  undefined}.
positive effects are highlighted in green and negative effects are highlighted in red.
if qlij is defined, the quantitative effect of each gene is computed as:
qti,j = qli,j*gei where gei is the gene expression value associated with gene gi.
the net quantitative effect, nj, on each hypothesis term, hj, is computed as:
the quantitative table also displays the total pro, anti and net effects of the gene set on each hypothesis term .
the tool is designed to allow the user to incorporate his/her domain knowledge to augment the information encoded in the go.
the interface allows the users to change the effect values obtained by gomodeler or add an effect value where the tool was not able to determine an effect .
the users can use the job id sent by gomodeler to view the results in the edit interface.
the edit interface also allows users to resolve conflicting effects resulting from different go terms for the same gene identifier.
for example, rat il- <dig>  is annotated to go: <dig>  with an evidence code of imp  but it is also annotated to go: <dig> positive regulation of cell proliferation with an evidence code of is <dig>   <cit> .
in such a case, the tool infers both positive and negative effects and it is up to the user to investigate the source of the conflict and change the effects based on the experimental context.
figure  <dig> shows the results after the domain expert resolved conflicts based on knowledge of the experimental context of these results.
the tool summarizes the net effect of the dataset on each hypothesis term in a graphical format  where the colour coding is consistent with the colour coding in the qualitative and quantitative tables.
RESULTS
data from two cancer biology studies with the aim of defining the phenotype of specific populations of neoplastically-transformed cells were used to demonstrate the utility of gomodeler  <cit> .
the gomodeler results from the first study involving a set of nine differentially-expressed cytokine genes are shown in figure  <dig>  results for the second study involving ten differentially-expressed genes are given in additional file  <dig>  for the gomodeler analysis, the species selected was chicken, the gene input type was gene name and the other parameters selected were positive as the option for default effect for unsigned go terms and positives override as the option for conflict resolution.
table  <dig> shows a comparison of the qualitative effects obtained using gomodeler and the results obtained by manual analysis by a phd level immunologist.
the direction of the net effects obtained by gomodeler is in agreement with 75% of the results obtained by the manual analysis by an immunologist.
the results from gomodeler and the manual analysis differ for the hypothesis terms apoptosis and antigen presentation and inspection of the results in edit mode reveals that two of the entries  had conflicting effects  for apoptosis.
because we had selected positives override as the conflict resolution mechanism, the tool had selected + <dig> over − <dig>  the user has the ability to change the effect for individual cells in edit mode.
other differences between the manual scoring and gomodeler can be attributed to incompleteness of the go  <cit> ; that is, published data exists and go terms exist but the two have not been linked by go biocurators.
for example, it is obvious that our immunology domain expert has brought substantial knowledge to bear about the hypothesis term antigen presentation that is not yet annotated and present in the go databases for these genes.
in some cases, such as the effect of il- <dig> on chemotaxis, gomodeler and the domain expert found opposite effects.
manual inspection of the go annotation of il- <dig> confirms that gomodeler is obtaining the correct effect based on information available in the go annotation of il- <dig> for rat, mouse, human and chicken.
this is a specific example where the go is incomplete and also where the effect is context dependent and so the gene product effect can be positive in some cases and negative in others.
in general, gomodeler tends to identify more positive effects than negative effects.
this phenomenon can occur when genes have conflicting positive and negative  effects specified by the go ” in the qualitative table) and, additionally, a bias is introduced by selecting “positives override” for conflict resolution.
this is obviously something that users must be aware of and it is reasonable to assume that they will be.
however, there are more complicated factors also.
for example most go terms are “unsigned”, i.e.
they do not indicate positive or negative.
we have opted to use “positive” as the default effect for unsigned go terms based on colloquial usage and our experience that “positive effects” are often implicit.
an example is the physical manifestation of programmed cell death known as apoptosis.
“positive regulation of apoptosis”  and “negative regulation of apoptosis”  can be used to indicate pro and anti effects by annotators.
however, authors can imply that a gene positively regulates apoptosis without explicitly saying so.
in such cases the go term “apoptosis”  is used for annotation and yet the domain specific experts will know that this is a positive regulation.
finally, scientists tend to publish their positive data and to make hypotheses in a positive sense.
unlike most go-based discovery tools  <cit>  that focus on the under- or over-representation of go categories, gomodeler supports hypotheses testing using the go.
although modern high throughput methods support discovery-based science, hypothesis driven science remains the approach used by most molecular biologists and required for funding from many agencies .
goea tools can be used to generate an initial list of hypotheses, but they are of limited value for hypothesis testing.
goea tools can typically only identify hypotheses for go terms that are over and underrepresented in a dataset.
these statistical approaches are not applicable for analysis of biological processes that involve only a few genes because the go terms involved occur in such small numbers that they will never be identified as “over-or under-represented” by statistical analysis.
by contrast gomodeler can identify such effects.
in addition, most goea tools limit their analysis to a specific and arbitrary level of the go dag .
these categories are often so general that they can be of little use in hypothesis-driven research.
some goea tools allow the user to “drill down” from the go slim categories, but as the go terms become more specific, there will be fewer genes with these annotations, making it highly unlikely that they will pass the statistical tests for under- or over- representation.
in addition, selection of an arbitrary level of detail falsely assumes that all terms at the same level in the go dag hierarchy are at the same conceptual level  <cit> .
in addition, some parts of the go are much better developed than others.
tools that focus on over- or under-represented go terms provide no information about the direction of effect of the dataset on the categories.
although gomodeler is a go-based tool, the issues addressed by gomodeler and goea tools are fundamentally different and each has their own uses.
to illustrate the differences in gomodeler and goea tools, we have used the dataset in figure  <dig> with three popular goea tools, agrigo, gostat and david.
gostat and david reported only high level terms  and did not “discover” any of the hypothesis terms in our dataset.
with our small set of genes, agrigo generates a message stating that “sorry, less than  <dig> entries can be mapped with go.
analysis failed.” gomodeler, on the other hand, does not rely on statistical over or under representation and allows users to control the level of specificity appropriate for testing their hypotheses.
one limitation that gomodeler shares not only with goea tools but also with network and pathway tools such as ingenuity pathway analysis  is that the computed quantitative effects provide a simplified view of gene effects.
all of these methods ignore complexities introduced by differential gene effects on gene pathways, biological processes and molecular functions .
adding to this complexity is the contextual relative effect of a gene product.
this view does, however, allow us to show the direct effects of relative expression between two comparable systems  i.e.
genes that are much more highly expressed in the treatment system will have higher quantitative effects compared with the control system.
we have already successfully applied this approach in several published papers that used a preliminary version of gomodeler with substantial user input  <cit> .
gomodeler is not a gene expression analysis tool and an essential underlying assumption of gomodeler is that appropriate statistical analysis of differential gene product expression has been done.
this is completely compatible with reductionist approaches and gomodeler’s utility is to quickly survey the go to assign terms from one of the three ontologies based on the user’s hypothesis terms at the most appropriate and granular level of the go.
for example, there are currently only six genes annotated in the go to be involved in angiogenesis.
reductionist biologists could test a hypothesis about genetic regulation of angiogenesis by, for example, quantitative pcr of these six genes.
although we often think of ht methods as associated with discovery based-science, a ht functional genomics experiment  would also measure the same six mrnas and could be used for hypothesis driven research.
as demonstrated by our examples, gomodeler can be used for the reductionist approach  <cit>  or for a ht functional genomics approach  <cit> .
ht functional genomics experiments, however, allow many other genes to be tested for other hypotheses using gomodeler.
CONCLUSIONS
gomodeler facilitates hypothesis testing from ht functional genomics datasets.
the results obtained from gomodeler demonstrate that the tool is a valuable resource for hypothesis-driven research and that it provides capabilities complementary to other tools that focus on enrichment analysis or statistical comparison of two datasets.
because there are problems with the incompleteness of the go and context-dependent effects of gene products on biological processes, molecular functions, and cellular location, we provide the user with the ability to supplement the automated results with his/her expertise through editing.
availability and requirements
gomodeler is available for public access at the agbase website http://agbase.msstate.edu/ → tools → gomodeler.
gomodeler has been implemented in perl and html.
results are provided in both tabular and graphical format.
help documentation is available from to assist users in preparation of datasets, interpretation of result and use various tool features.
competing interests
no competing interests exist.
authors' contributions
mf wrote the original version of gomodeler.
pm has refined the tool, compiled the datasets used for evaluation, participated in the optimization and performance evaluation of the code and drafted the manuscript.
scb conceived the pipeline; supplied datasets used in the manuscript, conducted the manual analysis of the dataset, and helped write the manuscript.
fm helped develop the strategy for finding go terms for gene products and hypothesis terms, in evaluating results, and in writing the paper.
smb participated in the pipeline and algorithm development and helped write the manuscript.
tjk developed the format and code for generating the tabular and graphical output.
bn evaluated the tool and provided suggestions for improvement.
all authors have read and approved the manuscript.
supplementary material
additional file 1
title of data: figure  <dig> qualitative and quantitative tabular results for gomodeler for the second cancer biology study.
figure  <dig> graphical summary of net effects.
click here for file
acknowledgements
this research was partially supported by national research initiative of the usda cooperative state research, education and extension service under grant number 2007-35205- <dig> and by the national science foundation under grant number eps  <dig>
this article has been published as part of bmc bioinformatics volume  <dig> supplement  <dig>  2010: proceedings of the seventh annual mcbios conference.
bioinformatics: systems, biology, informatics and computation.
the full contents of the supplement are available online at http://www.biomedcentral.com/1471-2105/11?issue=s <dig>

 as a result of the “genomic revolution”, high-throughput functional genomics experiments that measure the thousands of gene products in cells have become ubiquitous. dna sequencing technologies are commoditizing and democratizing transcriptome analysis by sequencing, further increasing the volume of transcriptome data. while getting the data is becoming less onerous, turning these massive datasets into knowledge, however, requires computational systems biology modelling approaches and is still challenging. one approach for modelling functional genomics datasets is to use canonical networks or pathways such as those provided by ingenuity and ariadne. a complementary approach is to take advantage of the gene ontology. the go has become the de facto standard for describing the molecular functions, biological processes, and cellular locations of gene products and is based on a structured, controlled vocabulary that is computationally compliant. in such a context, the go may be used to identify which classes of gene products are represented, or over-represented, in functional genomics datasets. this has been done in one of three main ways: by “go-slimming”, by enrichment analysis or, less commonly, by hypothesis-testing. the go consortium provides pre-defined “go slim sets”, which are reduced representations of the three go ontologies. use of go slims forces the analysis to be conducted at a pre-determined and very shallow conceptual level and thus does not make use of the full power of the go. at the time of writing there were at least computational tools for go enrichment analysis and these can be classified as belonging to one of three classes based on the algorithms used by each tool: singular enrichment analysis, gene set enrichment analysis, and modular enrichment analysis. regardless of their enrichment analysis classification, all go enrichment analysis tools primarily focus on giving the user high level functional categories of go terms significantly represented in the input gene set. although useful to identify functional profiles of differentially-expressed gene products, neither go slims nor go enrichment analyses methods support hypothesis-testing, especially based on user-specified hypothesis terms. while discovery-based approaches open up new areas and stimulate new hypotheses, ht functional genomics data should not be limited to discovery-based science. ht functional genomics data can be used, equally well as reductionist data, to test hypotheses. the go is ideal for hypothesis testing as it is designed to capture the explicit experimental data in the published literature in a computationally-amenable way. initial tool development to support hypothesis testing using the go include the gene class expression tool and egon. the broad approach for these tools is to statistically determine if go terms are differentially expressed between different gene data sets. the adoption of go-based functional genomics analysis tools has been slow because many assume a level of go annotation of gene products that does not exist for many species, datasets or, microarray platforms, and/or require computer programming skills. furthermore when the go has been used for analyzing microarray data to find under- or over-represented go terms associated with a dataset, these analyses are not based on the microarray quantitative values but rather on counts of go terms. the results do not represent the true proportions of genes negatively- or positively-affecting a particular process or function. here we describe, gomodeler, a computational tool that does not compare gene lists against each other but rather is based on the hypotheses chosen by the user at the beginning of an experiment. gomodeler uses the go, in combination with quantitative ht functional genomics data, to quantify the effects of input gene identifiers on the hypothesis terms. the results are presented in tabular and graphical formats. a qualitative table shows the individual effect of each gene on each hypothesis term and a quantitative table shows the overall effect of the entire gene dataset on each of the hypothesis terms. the net effects from the quantitative table are then summarised in a graphical output. the advantages of this tool are the following: 1) it allows the user to specify hypothesis terms; 2) it makes use of the detailed gene annotation and the hierarchical structure of the go to determine effects; 3) it allows the user to supplement information obtained from the go with their own expertise; and 4) it generates informative tabular and graphical summaries of the net effects of genes. methods input requirements gomodeler requires the user to provide two input files as shown in figure the gene expression file is a text file containing a list of gene identifier/gene expression value pairs, one per line, with the identifier and the expression value separated by a comma. identifiers accepted by gomodeler are uniprot accessions, gene names, and genbank accessions. alternatively, the gene expression file can contain sequences in fasta format where the last line of each sequence is followed by a line containing a comma and an expression value. the gene expression values can be provided as fold changes, expression differences or the logarithm of fold changes ). we assume that the gene expression values submitted by the user are a comparison of expression of a treatment and control or of two different conditions. if the data is from single-channel microarrays, we assume that the user has already processed the data to yield expression differences, ratios, or logarithms of ratios. for quantitative analysis, we require the following conditions to hold for the gene expression values: up-regulation is indicated by positive expression values. down-regulation is indicated by negative expression values. no change in expression is indicated by a value of zero. expression values provided as fold changes are automatically converted to log to ensure that these requirements hold. the second input file, the hypothesis file, is a text file containing a list of hypothesis terms of interest to the user, one term per line. the hypothesis go term builder uses the hypothesis file to create a hypothesis go term file as described below. if the user already knows which go term identifiers are associated with each hypothesis term or if they have previously used the hgt builder to create an hgt file, they can upload the hgt file directly. each line of the hgt file contains a hypothesis term and a list of one or more associated go terms separated by commas. the hypothesis go term builder uses the porter stemmer to extract stems for the hypothesis terms submitted by the user. for example, if the user submits inflammation as a hypothesis term, the stemmer would produce inflam. this enables matches to go term names such as “inflammatory response”. the tool then searches all go term names, descriptions, and synonyms for the specified hypothesis term stems. the results of the search are returned as a list of go records with check boxes. the user can view additional details about each go term by clicking on the term name before making his/her choice. if there are no go identifiers returned for a search term, the user is given a link to amigo, where they can conduct a more extensive search. the interface also provides a text box where the user can enter additional go identifiers that were not found by the interface. the interface verifies that these additional go identifiers are valid and not obsolete. the go identifiers selected by the user or input in the text box are used to create the hgt file. after the file has been created, the user has the option of saving the file before starting the analysis. gomodeler retrieves maximal go annotation for each gene identifier listed in the gene expression file using the agbase goanna tool. the process of creating the input file for goanna varies depending on the type of gene identifier provided by the user as shown in the flow chart in figure goanna accepts fasta sequences or uniprot accessions. genbank accessions are mapped to fasta sequences and gene names are mapped to uniprot accessions. goanna conducts a blast search using standard goanna parameters and retrieves go identifiers for each input sequence. the user also needs to select the species of interest. gomodeler uses the species selected by the user to narrow the subsequent goanna search to the most relevant species likely to have substantial go annotation. for example, if the user selects “chicken”, goanna searches chicken, mouse, and human databases. table gives a list of the species currently supported and the databases searched for each of these species. a gene information file is created containing the original information in the gene expression file along with the go identifiers found for each gene. the user is also asked to specify a “default effect of unsigned go terms” and “default method for conflict resolution of contradictory go terms.” these parameters are discussed in detail in the following section. mapping go terms to effects the go terms in the gene information file and the hgt file are the basis for the analysis conducted by gomodeler. the first step of the analysis is to match the go identifiers for each gene in the gene information file to the go identifiers related to each hypothesis term. figure describes the algorithm for the matching process. for each gene, gomodeler first matches each associated go id with all the go ids of each hypothesis term. if an exact match is found, the associated go name is parsed to determine an effect value {+ − 0} as described below. if no exact match is found, the match function recursively calls itself with the parents of the gene go id and the hypothesis term go id list as arguments to search for matches against generalizations of the gene go term with the hypothesis go terms. this operation is valid because the “true path rule” of the go states that the path from a child to all its parents is always true- that is, if a particular go term applies to a gene product, then all ancestors of that go term also apply to the gene product. after the matching process, go term names are parsed to determine effects. although the go is a controlled vocabulary, the specific words “positive” and “negative” are not always used explicitly to describe effects. for example, the term go: implies a positive effect while the terms go:, and go: imply negative effects. if a name contains the words positive, pro, stimulates, increases/d or upregulates, an effect value of + is assigned. if the name contains the words negative, anti, suppresses, inhibits, decreases/d or downregulates, an effect of − is assigned. if the go term does not specify either positive or negative effects, the assigned effect will depend on the “default effect of unsigned go terms” specified by the user. if the user selects “no effect” then the final effect for “unsigned terms” will be if the user selects “positive” all matched terms where gomodeler cannot assign a positive or negative effect are assumed to have a positive effect. for example, the term go: is an unsigned term that could be assumed, based on common usage in manuscripts, to have a positive effect. this problem is created, and needs to be accounted for, because go biocurators annotate only explicitly written facts and do not infer further. in some cases, go terms with contradictory effects will be found for the same gene-hypothesis term pair. this is quite reasonable as gene product effects are commonly context dependent. regardless, in this case, the conflict resolution method specified by the user is used to determine the effect. conflict resolution methods supported are: positives override, negatives override, and the greater of positives and negatives. at the conclusion of the matching process, effect_listi,j will contain all of the effects found for gene i and hypothesis term j. summarizing effects gomodeler generates a qualitative table, a quantitative table and a graphical summary of the net effects of the gene set on each of the hypothesis terms. the qualitative table depicts the individual qualitative effect qli,j of each gene gi on each of the hypothesis terms hj where qli,j ∈ {− + undefined}. positive effects are highlighted in green and negative effects are highlighted in red. if qlij is defined, the quantitative effect of each gene is computed as: qti,j = qli,j*gei where gei is the gene expression value associated with gene gi. the net quantitative effect, nj, on each hypothesis term, hj, is computed as: the quantitative table also displays the total pro, anti and net effects of the gene set on each hypothesis term. the tool is designed to allow the user to incorporate his/her domain knowledge to augment the information encoded in the go. the interface allows the users to change the effect values obtained by gomodeler or add an effect value where the tool was not able to determine an effect. the users can use the job id sent by gomodeler to view the results in the edit interface. the edit interface also allows users to resolve conflicting effects resulting from different go terms for the same gene identifier. for example, rat il- is annotated to go: with an evidence code of imp but it is also annotated to go: positive regulation of cell proliferation with an evidence code of is. in such a case, the tool infers both positive and negative effects and it is up to the user to investigate the source of the conflict and change the effects based on the experimental context. figure shows the results after the domain expert resolved conflicts based on knowledge of the experimental context of these results. the tool summarizes the net effect of the dataset on each hypothesis term in a graphical format where the colour coding is consistent with the colour coding in the qualitative and quantitative tables.  data from two cancer biology studies with the aim of defining the phenotype of specific populations of neoplastically-transformed cells were used to demonstrate the utility of gomodeler. the gomodeler results from the first study involving a set of nine differentially-expressed cytokine genes are shown in figure results for the second study involving ten differentially-expressed genes are given in additional file for the gomodeler analysis, the species selected was chicken, the gene input type was gene name and the other parameters selected were positive as the option for default effect for unsigned go terms and positives override as the option for conflict resolution. table shows a comparison of the qualitative effects obtained using gomodeler and the results obtained by manual analysis by a phd level immunologist. the direction of the net effects obtained by gomodeler is in agreement with 75% of the results obtained by the manual analysis by an immunologist. the results from gomodeler and the manual analysis differ for the hypothesis terms apoptosis and antigen presentation and inspection of the results in edit mode reveals that two of the entries had conflicting effects for apoptosis. because we had selected positives override as the conflict resolution mechanism, the tool had selected + over − the user has the ability to change the effect for individual cells in edit mode. other differences between the manual scoring and gomodeler can be attributed to incompleteness of the go; that is, published data exists and go terms exist but the two have not been linked by go biocurators. for example, it is obvious that our immunology domain expert has brought substantial knowledge to bear about the hypothesis term antigen presentation that is not yet annotated and present in the go databases for these genes. in some cases, such as the effect of il- on chemotaxis, gomodeler and the domain expert found opposite effects. manual inspection of the go annotation of il- confirms that gomodeler is obtaining the correct effect based on information available in the go annotation of il- for rat, mouse, human and chicken. this is a specific example where the go is incomplete and also where the effect is context dependent and so the gene product effect can be positive in some cases and negative in others. in general, gomodeler tends to identify more positive effects than negative effects. this phenomenon can occur when genes have conflicting positive and negative effects specified by the go ” in the qualitative table) and, additionally, a bias is introduced by selecting “positives override” for conflict resolution. this is obviously something that users must be aware of and it is reasonable to assume that they will be. however, there are more complicated factors also. for example most go terms are “unsigned”, i.e. they do not indicate positive or negative. we have opted to use “positive” as the default effect for unsigned go terms based on colloquial usage and our experience that “positive effects” are often implicit. an example is the physical manifestation of programmed cell death known as apoptosis. “positive regulation of apoptosis” and “negative regulation of apoptosis” can be used to indicate pro and anti effects by annotators. however, authors can imply that a gene positively regulates apoptosis without explicitly saying so. in such cases the go term “apoptosis” is used for annotation and yet the domain specific experts will know that this is a positive regulation. finally, scientists tend to publish their positive data and to make hypotheses in a positive sense. unlike most go-based discovery tools that focus on the under- or over-representation of go categories, gomodeler supports hypotheses testing using the go. although modern high throughput methods support discovery-based science, hypothesis driven science remains the approach used by most molecular biologists and required for funding from many agencies. goea tools can be used to generate an initial list of hypotheses, but they are of limited value for hypothesis testing. goea tools can typically only identify hypotheses for go terms that are over and underrepresented in a dataset. these statistical approaches are not applicable for analysis of biological processes that involve only a few genes because the go terms involved occur in such small numbers that they will never be identified as “over-or under-represented” by statistical analysis. by contrast gomodeler can identify such effects. in addition, most goea tools limit their analysis to a specific and arbitrary level of the go dag. these categories are often so general that they can be of little use in hypothesis-driven research. some goea tools allow the user to “drill down” from the go slim categories, but as the go terms become more specific, there will be fewer genes with these annotations, making it highly unlikely that they will pass the statistical tests for under- or over- representation. in addition, selection of an arbitrary level of detail falsely assumes that all terms at the same level in the go dag hierarchy are at the same conceptual level. in addition, some parts of the go are much better developed than others. tools that focus on over- or under-represented go terms provide no information about the direction of effect of the dataset on the categories. although gomodeler is a go-based tool, the issues addressed by gomodeler and goea tools are fundamentally different and each has their own uses. to illustrate the differences in gomodeler and goea tools, we have used the dataset in figure with three popular goea tools, agrigo, gostat and david. gostat and david reported only high level terms and did not “discover” any of the hypothesis terms in our dataset. with our small set of genes, agrigo generates a message stating that “sorry, less than entries can be mapped with go. analysis failed.” gomodeler, on the other hand, does not rely on statistical over or under representation and allows users to control the level of specificity appropriate for testing their hypotheses. one limitation that gomodeler shares not only with goea tools but also with network and pathway tools such as ingenuity pathway analysis is that the computed quantitative effects provide a simplified view of gene effects. all of these methods ignore complexities introduced by differential gene effects on gene pathways, biological processes and molecular functions. adding to this complexity is the contextual relative effect of a gene product. this view does, however, allow us to show the direct effects of relative expression between two comparable systems i.e. genes that are much more highly expressed in the treatment system will have higher quantitative effects compared with the control system. we have already successfully applied this approach in several published papers that used a preliminary version of gomodeler with substantial user input. gomodeler is not a gene expression analysis tool and an essential underlying assumption of gomodeler is that appropriate statistical analysis of differential gene product expression has been done. this is completely compatible with reductionist approaches and gomodeler’s utility is to quickly survey the go to assign terms from one of the three ontologies based on the user’s hypothesis terms at the most appropriate and granular level of the go. for example, there are currently only six genes annotated in the go to be involved in angiogenesis. reductionist biologists could test a hypothesis about genetic regulation of angiogenesis by, for example, quantitative pcr of these six genes. although we often think of ht methods as associated with discovery based-science, a ht functional genomics experiment would also measure the same six mrnas and could be used for hypothesis driven research. as demonstrated by our examples, gomodeler can be used for the reductionist approach or for a ht functional genomics approach. ht functional genomics experiments, however, allow many other genes to be tested for other hypotheses using gomodeler.  gomodeler facilitates hypothesis testing from ht functional genomics datasets. the results obtained from gomodeler demonstrate that the tool is a valuable resource for hypothesis-driven research and that it provides capabilities complementary to other tools that focus on enrichment analysis or statistical comparison of two datasets. because there are problems with the incompleteness of the go and context-dependent effects of gene products on biological processes, molecular functions, and cellular location, we provide the user with the ability to supplement the automated results with his/her expertise through editing. availability and requirements gomodeler is available for public access at the agbase website http://agbase.msstate.edu/ → tools → gomodeler. gomodeler has been implemented in perl and html. results are provided in both tabular and graphical format. help documentation is available from to assist users in preparation of datasets, interpretation of result and use various tool features. competing interests no competing interests exist. authors' contributions mf wrote the original version of gomodeler. pm has refined the tool, compiled the datasets used for evaluation, participated in the optimization and performance evaluation of the code and drafted the manuscript. scb conceived the pipeline; supplied datasets used in the manuscript, conducted the manual analysis of the dataset, and helped write the manuscript. fm helped develop the strategy for finding go terms for gene products and hypothesis terms, in evaluating results, and in writing the paper. smb participated in the pipeline and algorithm development and helped write the manuscript. tjk developed the format and code for generating the tabular and graphical output. bn evaluated the tool and provided suggestions for improvement. all authors have read and approved the manuscript. supplementary material additional file 1 title of data: figure qualitative and quantitative tabular results for gomodeler for the second cancer biology study. figure graphical summary of net effects. click here for file acknowledgements this research was partially supported by national research initiative of the usda cooperative state research, education and extension service under grant number 2007-35205- and by the national science foundation under grant number eps this article has been published as part of bmc bioinformatics volume supplement 2010: proceedings of the seventh annual mcbios conference. bioinformatics: systems, biology, informatics and computation. the full contents of the supplement are available online at http://www.biomedcentral.com/1471-2105/11?issue=s 
19– february seventh annual mcbios conference. we demonstrate the capabilities of gomodeler with a dataset of nine differentially expressed cytokine genes and compare the results to those obtained through manual analysis of the dataset by an immunologist. the direction of overall effects on all hypothesis terms except one was consistent with the results obtained by manual analysis. the results are provided in both tabular and graphical formats. it matches the go identifiers of the genes with the go ids of the hypothesis terms and parses the names of those ids that match to assign effects. gomodeler summarizes the overall effect of a user defined gene/protein differential expression dataset on specific go hypothesis terms selected by the user to describe a biological experiment. gomodeler tests the relevance of the hypothesis terms chosen by the user for the input gene dataset by providing the individual effects of the genes on the hypothesis terms and the overall effect of the entire dataset on each of the hypothesis terms. using this tool, researchers can quickly evaluate the overall effect of quantitative expression changes of gene set on specific biological processes of interest. however, there are few tools that support hypothesis-based testing using the go and none that support testing with user defined hypothesis terms.
 functional genomics technologies that measure genome expression at a global scale are accelerating biological knowledge discovery. generating these high throughput datasets is relatively easy compared to the downstream functional modelling necessary for elucidating the molecular mechanisms that govern the biology under investigation. a number of publicly available ‘discovery-based’ computational tools use the computationally amenable gene ontology for hypothesis generation. however, there are few tools that support hypothesis-based testing using the go and none that support testing with user defined hypothesis terms. here, we present gomodeler, a tool that enables researchers to conduct hypothesis-based testing of high throughput datasets using the go. gomodeler summarizes the overall effect of a user defined gene/protein differential expression dataset on specific go hypothesis terms selected by the user to describe a biological experiment. the design of the tool allows the user to complement the functional information in the go with his/her domain specific expertise for comprehensive hypothesis testing.  gomodeler tests the relevance of the hypothesis terms chosen by the user for the input gene dataset by providing the individual effects of the genes on the hypothesis terms and the overall effect of the entire dataset on each of the hypothesis terms. it matches the go identifiers of the genes with the go ids of the hypothesis terms and parses the names of those ids that match to assign effects. we demonstrate the capabilities of gomodeler with a dataset of nine differentially expressed cytokine genes and compare the results to those obtained through manual analysis of the dataset by an immunologist. the direction of overall effects on all hypothesis terms except one was consistent with the results obtained by manual analysis. the tool’s editing capability enables the user to augment the information extracted. gomodeler is available as a part of the agbase tool suite.  gomodeler allows hypothesis driven analysis of high throughput datasets using the go. using this tool, researchers can quickly evaluate the overall effect of quantitative expression changes of gene set on specific biological processes of interest. the results are provided in both tabular and graphical formats. 19– february seventh annual mcbios conference. bioinformatics: systems, biology, informatics and computation jonesboro, ar, usa 