I'm trying to annotate a genome to find all genes with a specific function. I have a FASTA and the read FASTQs - I'd like to assign the functional group of the identified proteins (e.g. Kegg orthology) automatically.

For more context, I have whole genome sequences of bacteria - I'm trying to find all genes involved in membrane transport. I'd either like a tool to retrieve gene ontologies from a list of gene names (input: genA output: Membrane Transport), or a tool that outputs the function as part of the annotation pipeline (e.g. genbank output with GO function defined).

Or posed in a different way, how would you identify all genes with a specific function from prokaryotic whole genome sequence data?

Are there any scripts that can do this?

  • 1
    $\begingroup$ Please edit your question and give us more details about what you have and what you need. Do you have gene models for the bacterium? I mean, do you first have to find the genes, then the gene functions, or do you already have the genes identified? You have FASTA and FASTQ of what? The entire genome? Raw reads? Are they assembled? Is there a reference sequence for the bacterium? $\endgroup$
    – terdon
    Nov 26, 2017 at 12:09
  • $\begingroup$ Thanks for your reply - edited in a few more details. I have the raw read data, and relative de novo assemblies of whole genome prokaryotes. I have a few species I'm looking at, a few E. coli, Staph, and Yersinia. Ref seqs available for all, but I'll be annotating draft clinical genomes. I'm looking for a way to find all genes present in an assembly that match a specific function (e.g. membrane transport). In the genbank format for example I see "/function=" which is exactly what I want to assign - but I can't find a tool that writes that data. Prokka for e.g. does not write this by default $\endgroup$ Nov 26, 2017 at 14:04

2 Answers 2


The PATRICBrc.org is a free resource you can annotate your genome and compare it with publicly available genomes.

Refer this tutorial for more detail.

Once you have annotated your genome in PATRIC, you will have PATRIC Local families (k-mer based protein family), which will help you identify all genes with a specific function.


Im not 100% on what you are looking for - you seem to jump from annotation to detection of genes in your question.

But if you have a database of genes you want to detect (presence/ absence) you could try srst2 which basically takes your raw reads (fastq) and maps them to the database. it will give you a report on any hits, and any snps/ indels in the hit. The only problem is making you own database is difficult as you must adhere to the fasta header format.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.