BACKGROUND
determining novel gene functionality is critical for bringing a better understanding of how an organism functions as a whole.
traditional biological approaches to determining gene functions mainly focus on testing specific hypotheses through well designed mutagenesis experiments.
however, methods of this kind suffer from the high cost of labour and funds.
with the proliferation of protein and nucleic acid sequences catalogued in genome databases, the investigation of the function of a gene and its encoded product often begins by comparing its sequence with those of previously characterized genes.
but, the search for homologues does not always reveal information about function.
as noted by alberts et al.
<cit>  in the saccharomyces cerevisiae genome, "30% of the previously uncharacterized genes could be assigned a putative function by homology analysis; 10% had homologues whose function was also unknown; and another 30% had no homologues in any existing databases ."
sequence similarity alone cannot provide full function specificity  <cit> .
the predictions that emerge from sequence analysis are often only a tool to direct further experimental investigations.
knowing the gene ontology slim terms associated with a gene give us insight into how its gene product behaves in a cellular context using three different ontologies: molecular function, biological process, and cellular component.
these terms describe where a gene product is located or its association with cellular components, they describe its activity in biological processes and the molecular functions it performs during the biological processes.
the gene ontology slim give an "overview of the ontology content" and are useful for summarizing the results of gene ontology annotation  <cit> .
in the context of this paper the term function is used to refer to all aspects and concepts described by the gene ontology classifications.
the gene ontology comprises a set of well-defined terms with well-defined relationships.
the structure of gene ontology reflects the current representation of biological knowledge as well as serving as a guide for organizing new data  <cit> .
the vocabulary is fluid and undergoes consistent revision.
the intention of the gene ontology is to make possible, in a flexible and dynamic way, the annotation of homologous gene and protein sequences in multiple organisms using a common vocabulary.
it has become a broadly accepted classification system for function assignment.
several studies have noted that gene location in higher eukaryotic organisms is not random and suggest that there may be patterns in gene location  <cit> .
several research groups have further noted that genes with related function are often located close to each other on the chromosomes  <cit> .
also functional overlaps  have been found between clustered genes in yeast when examining spans of small chromosomal distances   <cit> .
these studies suggest that the location of a gene and its surrounding neighbourhood of genes have an influence on its functionality, but none of these studies determined if there are true patterns within a genome, and if we can learn from these patterns.
if there are patterns based on how genes cluster/group within a genome, then we can generate rules and relationships based on these patterns through classification learning.
in this study, we analyzed if we could classify a gene in saccharomyces cerevisiae to its correct gene ontology term using information about its location in the genome and information from its nearest-neighbouring genes using multiboositng with c <dig> .
this methodology can assist researchers by expediting the process of determining the functionality of a gene by providing classification rules that will determine a gene's gene ontology term.
methods
classification techniques
in classification learning, the learning system is presented with a set of classified examples.
from these examples, the system is expected to learn a way of classifying unseen examples  <cit> .
we used a popular classification learning technique that combines multiboosting  <cit>  with the decision tree classifier c <dig>   <cit> .
multiboosting combines adaboost   <cit>  with wagging   <cit>  to form decision committees.
this technique "boosts" a learning algorithm to a stronger learning algorithm by taking advantage of adaboost's high bias and variance reduction and wagging's strong variance reduction.
it has been shown that when using the c <dig>  algorithm as its base learning algorithm, multiboosting produces superior decision committees  <cit> .
in building decision trees, c <dig>  determines which attribute to split on given a set of examples with different classes.
this attribute is selected based on information measured in bits  <cit> .
for each attribute, the c <dig>  algorithm calculates the information gain from splitting the tree on that attribute.
the best attribute has the highest information gain.
a decision node is created that splits the dataset on that best attribute.
the process is repeated on the sub-trees of that node.
the versions of these algorithms that we used can be found in weka .
weka is open source software issued under the gnu general public license.
it is a collection of machine learning algorithms for data mining tasks.
weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization  <cit> .
the weka version of multiboosting is multiboostab and the weka version of c <dig>  is called j <dig>
classification experiments
experiments were performed to establish if multiboostab using the j <dig> classifier could correctly classify gene ontology slim terms of a gene.
different neighbourhood sizes were examined to determine how many nearest neighbours should be included around each gene to provide better classification rules.
as a baseline, the classification process was performed using no neighbour information.
also, the classification process was performed using the entire genome, and then it was repeated on each chromosome to examine if partitioning the classification process would yield better rules.
the classifier was trained using different neighbourhood attributes.
a gene's neighbourhood attributes were determined by the attributes of its nearest neighbours on both strands and both upstream and downstream to the gene.
the gene's attributes that were used in the training process were: its chromosome number ), its start position , its stop position  and its strand , the gene's gene ontology aspect , biological process , or molecular function ) and the gene's gene ontology slim term.
the neighbour attributes that were used for the training process were: the neighbour's number , the neighbour's strand, the neighbour's distance  from the gene , the neighbour's gene ontology aspect, the neighbour's gene ontology slim term.
the size of the neighbourhood was determined by how many nearest neighbours should be included.
all experiments were repeated using different sizes of neighbourhoods.
these neighbourhoods included information from the nearest neighbours, the two-nearest neighbours, the five-nearest neighbours on both strands and both upstream and downstream from the gene, and when analyzing the individual chromosomes, the ten-nearest neighbours of each gene were also included.
the parameters for the multiboostab algorithm using the j <dig> classifier were set to use reweighting instead of resampling because past experiments produced results that suggested "reweighting is more effective than resampling"  <cit> .
the other settings were set to default values.
datasets
we used publicly available data pertaining to gene location and gene ontology slim terms available at the saccharomyces genome database http://www.yeastgenome.org/.
the saccharomyces cerevisiae genome was selected for classification because of all the sequenced genomes, it has the most ideal characteristics for a test case.
the saccharomyces cerevisiae genome shows a high amount of clustering of genes that are involved in the same metabolic pathway  <cit> , and it shows clustering of essential genes into regions of low recombination  <cit> .
incidences of highly coordinated expression of linked genes have also been found in yeast  <cit> .
the files  were obtained from the anonymous ftp site  <cit> .
information was extracted from the files and formatted as comma-separated values  files to be compatible with weka.
a sample of the file format can be seen in table  <dig>
shows the format of the data files that included neighbour's gene ontology information and gene's gene ontology information.
the columns represent the different values that were separated by commas.
"?"
represent unknown values.
metrics
the performance of the classification process can be evaluated by two metrics: percentage of correctly classified instances and the f-measure.
the percentage of correctly classified instances is a basic accuracy measurement that can be determined by the following:
the f-measure is a weighted harmonic mean of precision and recall.
it is calculated in the following manner:
where precision and recall are calculated in the following manner
in statistics, the f-measure is a measure of a test's accuracy, where an f-measure reaches its best value at  <dig>  and worst score at  <dig>
RESULTS
classifying genes to correct gene ontology terms
the results of the experiments are based on averages of ten different runs of each dataset being randomized and then split for training and testing.
the size of the datasets varied depending on what experiments were being performed.
the dataset that contained no neighbour information contained  <dig> instances.
this number increased as more neighbour information was included.
for instances where there was missing attribute values, the missing values were substituted with a "?".
the training sets were set to contain 66% of the instances randomly selected from each dataset.
in this analysis, the classification of gene ontology slim terms for all three ontologies are combined.
the multiboostingab algorithm using the j <dig> classifier generated different trees for each data set it analyzed.
the trees generated for the individual chromosomes did share similar structures in that the root node was the gene ontology slim term for the given gene followed by start positions that partitioned the chromosome and then the neighbouring gene's gene ontology slim term.
the results of this study also showed that in classifying genes to their correct gene ontology slim term, the inclusion of neighbour information from those genes is beneficial .
by incorporating neighbour information from each gene's two-nearest neighbours, the percentage of correctly classified genes increases to over 80% for most chromosomes.
a gene is considered to be correctly classified if all of its gene ontology slim terms have been predicted.
this phenomenon of having the incorporation of neighbour information being beneficial is also seen in the f-measures obtained by the classifier .
partitioning of the classification process by chromosome produces better accuracy results than using the classification results generated when using information from the entire genome.
by incorporating neighbour information from each gene's two-nearest neighbours, the f-measures increase to over  <dig>  for most chromosomes.
the inclusion of a neighbour's gene ontology information being beneficial in classifying genes to the correct gene ontology slim term supports finding from other studies.
in a study by fukuoka et al., they investigated gene ontology categories of gene pairs that were considered highly correlated in chromosomal distance ranges between  <dig> and  <dig> kbp and between  <dig> and  <dig> kbp.
the results of the pairwise analysis of gene ontology category showed that only highly correlated pairs shared the same category and most of these pairs were not duplicates, meaning the genes did not share a common history; this was determined by blast analysis  <cit> .
accuracy of the classification of genes to specific gene ontology slim terms
to see the effect on the accuracy of classification for each gene ontology slim term using information from the entire genome, the f-measures obtained by the multiboostab algorithm using the j <dig> classifier for each gene ontology slim term can be examined.
most of the gene ontology slim terms benefited from the addition of neighbour information .
based on the results, the inclusion of neighbour information beyond each feature's two-nearest neighbours did not drastically increase the accuracy of classification of genes to their correct gene ontology slim terms.
when no neighbour information is included, gene ontology slim terms that represent broader functionalities, biological process, molecular function, have higher accuracy scores compared to that of gene ontology slim term of cellular component, meaning the classifier was able to classify genes that belonged to these broader gene ontology slim terms better.
the four gene ontology slim term groups that obtained the lowest f-measures  are: anatomical structure morphogenesis, cell cortex, cellular bud and site of polarized growth, meaning the inclusion of neighbour information did not improve the classification process for genes belonging to these gene ontology terms as much as it did for the genes belonging to other terms.
classification of genes to gene ontology slim terms removing gene location
a series of experiments was performed to determine if a gene could be classified to its gene ontology slim term when given only neighbour information for training.
the attributes that were used for the training process were: the neighbour's number, the neighbour's strand, the neighbour's distance  from the gene, the neighbour's gene ontology aspect, the neighbour's gene ontology slim term, the gene's gene ontology aspect and the gene's gene ontology slim term.
without the gene's location for training, the percentage of correctly classified genes to their correct gene ontology slim term is reduced to below 30% .
the accuracy of the classification is poor, obtaining f-measures below  <dig>  .
CONCLUSIONS
in this study, the effect of information from neighbouring genes influencing a gene's gene ontology slim terms was examined using classification learning.
we confirmed that knowing the gene ontology slim information from a gene's surrounding genes allows the multiboostab algorithm using the j <dig> classifier to correctly classify a gene's gene ontology slim term over 80% of the time.
these classification results are obtained by just including gene ontology slim information from each gene's two-nearest neighbours.
this study demonstrates that there are true patterns within the yeast genome.
we can generate rules based on these patterns through classification learning that can provide us with more insight to how genes cluster within a genome.
since other genomes  exhibit clustering patterns  <cit> , this methodology should translate to those other genomes that are annotated.
the optimal neighbourhood size incorporated for each genome would have to be established through experimentation.
authors' contributions
ha conceived the methodology, ran and analyzed the results of the classification experiments and drafted the manuscript.
ct provided machine learning expertise and guided the study.
all authors read and approved the final manuscript.

 determining novel gene functionality is critical for bringing a better understanding of how an organism functions as a whole. traditional biological approaches to determining gene functions mainly focus on testing specific hypotheses through well designed mutagenesis experiments. however, methods of this kind suffer from the high cost of labour and funds. with the proliferation of protein and nucleic acid sequences catalogued in genome databases, the investigation of the function of a gene and its encoded product often begins by comparing its sequence with those of previously characterized genes. but, the search for homologues does not always reveal information about function. as noted by alberts et al. in the saccharomyces cerevisiae genome, "30% of the previously uncharacterized genes could be assigned a putative function by homology analysis; 10% had homologues whose function was also unknown; and another 30% had no homologues in any existing databases." sequence similarity alone cannot provide full function specificity. the predictions that emerge from sequence analysis are often only a tool to direct further experimental investigations. knowing the gene ontology slim terms associated with a gene give us insight into how its gene product behaves in a cellular context using three different ontologies: molecular function, biological process, and cellular component. these terms describe where a gene product is located or its association with cellular components, they describe its activity in biological processes and the molecular functions it performs during the biological processes. the gene ontology slim give an "overview of the ontology content" and are useful for summarizing the results of gene ontology annotation. in the context of this paper the term function is used to refer to all aspects and concepts described by the gene ontology classifications. the gene ontology comprises a set of well-defined terms with well-defined relationships. the structure of gene ontology reflects the current representation of biological knowledge as well as serving as a guide for organizing new data. the vocabulary is fluid and undergoes consistent revision. the intention of the gene ontology is to make possible, in a flexible and dynamic way, the annotation of homologous gene and protein sequences in multiple organisms using a common vocabulary. it has become a broadly accepted classification system for function assignment. several studies have noted that gene location in higher eukaryotic organisms is not random and suggest that there may be patterns in gene location. several research groups have further noted that genes with related function are often located close to each other on the chromosomes. also functional overlaps have been found between clustered genes in yeast when examining spans of small chromosomal distances. these studies suggest that the location of a gene and its surrounding neighbourhood of genes have an influence on its functionality, but none of these studies determined if there are true patterns within a genome, and if we can learn from these patterns. if there are patterns based on how genes cluster/group within a genome, then we can generate rules and relationships based on these patterns through classification learning. in this study, we analyzed if we could classify a gene in saccharomyces cerevisiae to its correct gene ontology term using information about its location in the genome and information from its nearest-neighbouring genes using multiboositng with c. this methodology can assist researchers by expediting the process of determining the functionality of a gene by providing classification rules that will determine a gene's gene ontology term. methods classification techniques in classification learning, the learning system is presented with a set of classified examples. from these examples, the system is expected to learn a way of classifying unseen examples. we used a popular classification learning technique that combines multiboosting with the decision tree classifier c. multiboosting combines adaboost with wagging to form decision committees. this technique "boosts" a learning algorithm to a stronger learning algorithm by taking advantage of adaboost's high bias and variance reduction and wagging's strong variance reduction. it has been shown that when using the c algorithm as its base learning algorithm, multiboosting produces superior decision committees. in building decision trees, c determines which attribute to split on given a set of examples with different classes. this attribute is selected based on information measured in bits. for each attribute, the c algorithm calculates the information gain from splitting the tree on that attribute. the best attribute has the highest information gain. a decision node is created that splits the dataset on that best attribute. the process is repeated on the sub-trees of that node. the versions of these algorithms that we used can be found in weka. weka is open source software issued under the gnu general public license. it is a collection of machine learning algorithms for data mining tasks. weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization. the weka version of multiboosting is multiboostab and the weka version of c is called j classification experiments experiments were performed to establish if multiboostab using the j classifier could correctly classify gene ontology slim terms of a gene. different neighbourhood sizes were examined to determine how many nearest neighbours should be included around each gene to provide better classification rules. as a baseline, the classification process was performed using no neighbour information. also, the classification process was performed using the entire genome, and then it was repeated on each chromosome to examine if partitioning the classification process would yield better rules. the classifier was trained using different neighbourhood attributes. a gene's neighbourhood attributes were determined by the attributes of its nearest neighbours on both strands and both upstream and downstream to the gene. the gene's attributes that were used in the training process were: its chromosome number ), its start position, its stop position and its strand, the gene's gene ontology aspect, biological process, or molecular function ) and the gene's gene ontology slim term. the neighbour attributes that were used for the training process were: the neighbour's number, the neighbour's strand, the neighbour's distance from the gene, the neighbour's gene ontology aspect, the neighbour's gene ontology slim term. the size of the neighbourhood was determined by how many nearest neighbours should be included. all experiments were repeated using different sizes of neighbourhoods. these neighbourhoods included information from the nearest neighbours, the two-nearest neighbours, the five-nearest neighbours on both strands and both upstream and downstream from the gene, and when analyzing the individual chromosomes, the ten-nearest neighbours of each gene were also included. the parameters for the multiboostab algorithm using the j classifier were set to use reweighting instead of resampling because past experiments produced results that suggested "reweighting is more effective than resampling". the other settings were set to default values. datasets we used publicly available data pertaining to gene location and gene ontology slim terms available at the saccharomyces genome database http://www.yeastgenome.org/. the saccharomyces cerevisiae genome was selected for classification because of all the sequenced genomes, it has the most ideal characteristics for a test case. the saccharomyces cerevisiae genome shows a high amount of clustering of genes that are involved in the same metabolic pathway, and it shows clustering of essential genes into regions of low recombination. incidences of highly coordinated expression of linked genes have also been found in yeast. the files were obtained from the anonymous ftp site. information was extracted from the files and formatted as comma-separated values files to be compatible with weka. a sample of the file format can be seen in table shows the format of the data files that included neighbour's gene ontology information and gene's gene ontology information. the columns represent the different values that were separated by commas. "?" represent unknown values. metrics the performance of the classification process can be evaluated by two metrics: percentage of correctly classified instances and the f-measure. the percentage of correctly classified instances is a basic accuracy measurement that can be determined by the following: the f-measure is a weighted harmonic mean of precision and recall. it is calculated in the following manner: where precision and recall are calculated in the following manner in statistics, the f-measure is a measure of a test's accuracy, where an f-measure reaches its best value at and worst score at  classifying genes to correct gene ontology terms the results of the experiments are based on averages of ten different runs of each dataset being randomized and then split for training and testing. the size of the datasets varied depending on what experiments were being performed. the dataset that contained no neighbour information contained instances. this number increased as more neighbour information was included. for instances where there was missing attribute values, the missing values were substituted with a "?". the training sets were set to contain 66% of the instances randomly selected from each dataset. in this analysis, the classification of gene ontology slim terms for all three ontologies are combined. the multiboostingab algorithm using the j classifier generated different trees for each data set it analyzed. the trees generated for the individual chromosomes did share similar structures in that the root node was the gene ontology slim term for the given gene followed by start positions that partitioned the chromosome and then the neighbouring gene's gene ontology slim term. the results of this study also showed that in classifying genes to their correct gene ontology slim term, the inclusion of neighbour information from those genes is beneficial. by incorporating neighbour information from each gene's two-nearest neighbours, the percentage of correctly classified genes increases to over 80% for most chromosomes. a gene is considered to be correctly classified if all of its gene ontology slim terms have been predicted. this phenomenon of having the incorporation of neighbour information being beneficial is also seen in the f-measures obtained by the classifier. partitioning of the classification process by chromosome produces better accuracy results than using the classification results generated when using information from the entire genome. by incorporating neighbour information from each gene's two-nearest neighbours, the f-measures increase to over for most chromosomes. the inclusion of a neighbour's gene ontology information being beneficial in classifying genes to the correct gene ontology slim term supports finding from other studies. in a study by fukuoka et al., they investigated gene ontology categories of gene pairs that were considered highly correlated in chromosomal distance ranges between and kbp and between and kbp. the results of the pairwise analysis of gene ontology category showed that only highly correlated pairs shared the same category and most of these pairs were not duplicates, meaning the genes did not share a common history; this was determined by blast analysis. accuracy of the classification of genes to specific gene ontology slim terms to see the effect on the accuracy of classification for each gene ontology slim term using information from the entire genome, the f-measures obtained by the multiboostab algorithm using the j classifier for each gene ontology slim term can be examined. most of the gene ontology slim terms benefited from the addition of neighbour information. based on the results, the inclusion of neighbour information beyond each feature's two-nearest neighbours did not drastically increase the accuracy of classification of genes to their correct gene ontology slim terms. when no neighbour information is included, gene ontology slim terms that represent broader functionalities, biological process, molecular function, have higher accuracy scores compared to that of gene ontology slim term of cellular component, meaning the classifier was able to classify genes that belonged to these broader gene ontology slim terms better. the four gene ontology slim term groups that obtained the lowest f-measures are: anatomical structure morphogenesis, cell cortex, cellular bud and site of polarized growth, meaning the inclusion of neighbour information did not improve the classification process for genes belonging to these gene ontology terms as much as it did for the genes belonging to other terms. classification of genes to gene ontology slim terms removing gene location a series of experiments was performed to determine if a gene could be classified to its gene ontology slim term when given only neighbour information for training. the attributes that were used for the training process were: the neighbour's number, the neighbour's strand, the neighbour's distance from the gene, the neighbour's gene ontology aspect, the neighbour's gene ontology slim term, the gene's gene ontology aspect and the gene's gene ontology slim term. without the gene's location for training, the percentage of correctly classified genes to their correct gene ontology slim term is reduced to below 30%. the accuracy of the classification is poor, obtaining f-measures below.  in this study, the effect of information from neighbouring genes influencing a gene's gene ontology slim terms was examined using classification learning. we confirmed that knowing the gene ontology slim information from a gene's surrounding genes allows the multiboostab algorithm using the j classifier to correctly classify a gene's gene ontology slim term over 80% of the time. these classification results are obtained by just including gene ontology slim information from each gene's two-nearest neighbours. this study demonstrates that there are true patterns within the yeast genome. we can generate rules based on these patterns through classification learning that can provide us with more insight to how genes cluster within a genome. since other genomes exhibit clustering patterns, this methodology should translate to those other genomes that are annotated. the optimal neighbourhood size incorporated for each genome would have to be established through experimentation. authors' contributions ha conceived the methodology, ran and analyzed the results of the classification experiments and drafted the manuscript. ct provided machine learning expertise and guided the study. all authors read and approved the final manuscript. 
knowing the gene ontology slim terms associated with a gene gives us insight into a gene's functionality by informing us how its gene product behaves in a cellular context using three different ontologies: molecular function, biological process, and cellular component. our results show that by just incorporating neighbour information from each gene's two-nearest neighbours, the percentage of correctly classified genes to their correct gene ontology slim term for each ontology reaches over 80% with high accuracy of the classification rules produced. in this study, we analyzed if we could classify a gene in saccharomyces cerevisiae to its correct gene ontology slim term using information about its location in the genome and information from its nearest-neighbouring genes using classification learning. we performed experiments to establish that the multiboostab algorithm using the j classifier could correctly classify gene ontology slim terms of a gene given information regarding the gene's location and information from its nearest-neighbouring genes for training. we confirmed that in classifying genes to their correct gene ontology slim term, the inclusion of neighbour information from those genes is beneficial. knowing the location of a gene and the gene ontology slim information from neighbouring genes gives us insight into that gene's functionality. different neighbourhood sizes were examined to determine how many nearest neighbours should be included around each gene to provide better classification rules. there is increasing evidence that gene location and surrounding genes influence the functionality of genes in the eukaryotic genome.
 there is increasing evidence that gene location and surrounding genes influence the functionality of genes in the eukaryotic genome. knowing the gene ontology slim terms associated with a gene gives us insight into a gene's functionality by informing us how its gene product behaves in a cellular context using three different ontologies: molecular function, biological process, and cellular component. in this study, we analyzed if we could classify a gene in saccharomyces cerevisiae to its correct gene ontology slim term using information about its location in the genome and information from its nearest-neighbouring genes using classification learning.  we performed experiments to establish that the multiboostab algorithm using the j classifier could correctly classify gene ontology slim terms of a gene given information regarding the gene's location and information from its nearest-neighbouring genes for training. different neighbourhood sizes were examined to determine how many nearest neighbours should be included around each gene to provide better classification rules. our results show that by just incorporating neighbour information from each gene's two-nearest neighbours, the percentage of correctly classified genes to their correct gene ontology slim term for each ontology reaches over 80% with high accuracy of the classification rules produced.  we confirmed that in classifying genes to their correct gene ontology slim term, the inclusion of neighbour information from those genes is beneficial. knowing the location of a gene and the gene ontology slim information from neighbouring genes gives us insight into that gene's functionality. this benefit is seen by just including information from a gene's two-nearest neighbouring genes. 