text: user1355: I have a lot of protein clusters. I want to perform an enrichment analysis of their functional annotations, against reference datasets or list of genes I select.
  More precisely: a method yields cluster of proteins. I want to decide, for each cluster (which is a set of proteins identifiers), if it holds meaning regarding the proteins it contains, by comparing the annotations found in the cluster and the annotations found in common or specific datasets.
  Initially, I used DAVID, which compute the GO annotations from the protein list, then perform the enrichment analysis against common datasets.
  However, DAVID suffer of the following drawbacks:
  
  since I didn't find any other way to use it, I'm limited by the web interface and its limitations (number of genes, url size, number of request/day).
  automation over the web interface is a hacky script.
  
  The team behind seems to offer a way to run DAVID in-house (allowing, hopefully, to relax the limitations), but I can't find any way to download the database from their website.
  What are the alternative ways to get enrichment analysis over proteins in a reliable and automated way ?
  
  user939: I would recommend R instead of sticking to websites.
  There are many tools for enrichment analysis. I like to use GOseq, which is initially made for RNAseq data, but can also be used for proteins (I have used it for proteomics). You can use the length of the protein instead of transcript length (to correct for length bias), or you can exclude the length information by just using the hypergeometric method.
  See manual for code.
  Subsequently you can use gogadget, a tool I made for visualization of GOseq results with a heatmap or cytoscape network.
  Additionally, you might wanna take a look at clusterProfiler. With this package you can do enrichment analysis for many clusters in parallel.
  
  user48: DAVID depend on a couple of databases from the Gene Ontology Consortium, Reactome, KEGG,... most of them are accessible via Bioconductor. To perform an enrichment analysis you can have a look at the tutorial of the several packages in Bioconductor that do this. 
  Some of the most important for analyzing enrichment in GO terms are topGO, goseq, GOstats. I would also recommend GOSemSim if you want to compare between GO  to focus on a specific GO terms.
  Other important packages are the fgsea to test any kind of gene set (which is similar to the one hosted by the Broad Institute), gsva for enrichment analysis by sample, limma has some functions for functional enrichment too. Piano, GSCA, SPIA are also worth mentioning.
  Bioconductor has "standard" data sets of the expressions of some cells, like airway and ALL frequently used in vignettes. They are not reference data sets because there isn't a reference expression for a cell of an organisms. It depends on the type of cell, the experiment, the conditions...
  
original_text: 1355: <p>I have a lot of protein clusters. I want to perform an enrichment analysis of their functional annotations, against reference datasets or list of genes I select.</p>
  
  <p>More precisely: a method yields cluster of proteins. I want to decide, for each cluster (which is a set of proteins identifiers), if it holds meaning regarding the proteins it contains, by comparing the annotations found in the cluster and the annotations found in common or specific datasets.</p>
  
  <p>Initially, I used <a href="https://david.ncifcrf.gov" rel="nofollow noreferrer">DAVID</a>, which compute the GO annotations from the protein list, then perform the enrichment analysis against common datasets.</p>
  
  <p>However, DAVID suffer of the following drawbacks:</p>
  
  <ul>
  <li>since I didn't find any other way to use it, I'm limited by the web interface and its limitations (number of genes, url size, number of request/day).</li>
  <li>automation over the web interface is a hacky script.</li>
  </ul>
  
  <p>The team behind seems to offer a way to run DAVID in-house (allowing, hopefully, to relax the limitations), but I can't find any way to download the database from their website.</p>
  
  <p>What are the alternative ways to get enrichment analysis over proteins in a reliable and automated way ?</p>
   939: <p>I would recommend R instead of sticking to websites.</p>
  
  <p>There are many tools for enrichment analysis. I like to use <a href="https://bioconductor.org/packages/release/bioc/html/goseq.html" rel="nofollow noreferrer">GOseq</a>, which is initially made for RNAseq data, but can also be used for proteins (I have used it for proteomics). You can use the length of the protein instead of transcript length (to correct for length bias), or you can exclude the length information by just using the hypergeometric method.</p>
  
  <p>See <a href="https://bioconductor.org/packages/release/bioc/vignettes/goseq/inst/doc/goseq.pdf" rel="nofollow noreferrer">manual</a> for code.</p>
  
  <p>Subsequently you can use <a href="https://sourceforge.net/projects/gogadget/" rel="nofollow noreferrer">gogadget</a>, a tool I made for visualization of GOseq results with a heatmap or cytoscape network.</p>
  
  <p>Additionally, you might wanna take a look at <a href="https://bioconductor.org/packages/release/bioc/html/clusterProfiler.html" rel="nofollow noreferrer">clusterProfiler</a>. With this package you can do enrichment analysis for many clusters in parallel.</p>
   48: <p>DAVID depend on a couple of databases from the Gene Ontology Consortium, Reactome, KEGG,... most of them are accessible via Bioconductor. To perform an enrichment analysis you can have a look at the tutorial of the several <a href="http://bioconductor.org/packages/release/BiocViews.html#___GeneSetEnrichment" rel="nofollow noreferrer">packages in Bioconductor</a> that do this. </p>
  
  <p>Some of the most important for analyzing enrichment in GO terms are <a href="http://bioconductor.org/packages/topGO" rel="nofollow noreferrer">topGO</a>, <a href="http://bioconductor.org/packages/goseq" rel="nofollow noreferrer">goseq</a>, <a href="http://bioconductor.org/packages/GOstats" rel="nofollow noreferrer">GOstats</a>. I would also recommend <a href="http://bioconductor.org/packages/GOSemSim" rel="nofollow noreferrer">GOSemSim</a> if you want to compare between GO  to focus on a specific GO terms.</p>
  
  <p>Other important packages are the <a href="http://bioconductor.org/packages/fgsea" rel="nofollow noreferrer">fgsea</a> to test any kind of gene set (which is similar to the one hosted by the Broad Institute), <a href="http://bioconductor.org/packages/gsva" rel="nofollow noreferrer">gsva</a> for enrichment analysis by sample, <a href="http://bioconductor.org/packages/limma" rel="nofollow noreferrer">limma</a> has some functions for functional enrichment too. <a href="http://bioconductor.org/packages/piano" rel="nofollow noreferrer">Piano</a>, <a href="http://bioconductor.org/packages/GSCA" rel="nofollow noreferrer">GSCA</a>, <a href="http://bioconductor.org/packages/SPIA" rel="nofollow noreferrer">SPIA</a> are also worth mentioning.</p>
  
  <p>Bioconductor has "standard" data sets of the expressions of some cells, like <a href="http://bioconductor.org/packages/airway" rel="nofollow noreferrer">airway</a> and <a href="http://bioconductor.org/packages/ALL" rel="nofollow noreferrer">ALL</a> frequently used in vignettes. They are not reference data sets because there isn't a reference expression for a cell of an organisms. It depends on the type of cell, the experiment, the conditions...</p>
  