I have RNAseq data on B. subtilis, and mapped it to the genome so I have gene names and even BSU numbers for all of the genes. So far so good. Now I am struggling to find and assign functional annotations to each, preferably GO annotation.

Despite B. subtilis being a model organism, it is not included in the GO consortium database; they only have E. coli.

KEGG and bsubcyc both have B. subtilis functional annotations, but I cannot find a way to download any flat file from either site that associates each gene with its functional assignments.

How do people do this? What set of bioinformatics skill am I totally unaware of but that seem to be taken for granted? Do people "webpage scrape" for this info from KEGG? Is there a database format I need to learn?
<p>The most straight-forward approach to obtaining GO annotation would in my opinion be to fetch it from UniProt. You can do that in several ways, for example, by querying for it via their REST API:</p>

<p>http://www.uniprot.org/uniprot/?query=taxonomy:224308&amp;columns=id,go-id&amp;format=tab</p>
