I downloaded virulence factor database from here , to predict virulence genes from few genomes that my lab sequenced. I performed local blast on the database with default setting and found around 4000 genes. I want to filter this result. I am not sure how to proceed. There are evalue, pident (percent identity), qcovs (query coverage) etc that I can tweak and I did tweak. For example, if I set pident above 40% the qcovs automatically goes close to 100%. That gave me indication above 40% is pretty significant and biologically relevant. But I am not sure what percent I should consider for treating the query as having the same function as the subject -- in this case that function is virulence.

Need some guidance.

Edit1: I ran blastp

Edit2: I am blasting protein (cds predicted from genome by annotation tool prokka). My question here is what is the most reasonable way to filter putative virulence factor using blast.

  • $\begingroup$ Please edit your question and tell us what your queries are. What are you blasting? Proteins? DNA? cDNA? Are your queries known genes? Are they the sequences from the virulence database? Why are you using blast for this? What is the question you are trying to answer? $\endgroup$
    – terdon
    Apr 6, 2019 at 11:52
  • $\begingroup$ I am blasting protein (cds predicted from genome by annotation tool prokka). $\endgroup$ Apr 6, 2019 at 12:45
  • 1
    $\begingroup$ And how close are the genomes you are blasting? You can't have an absolute value to filter by, it will always depend on the phylogenetic distance between query and subject. How many proteins are you comparing? And why blastp if you are blasting against genomes? Do you mean tblastx or blastx? Also note that virulence is not a function. What you want to do, presumably, is identify the homologous proteins. Blast isn't necessarily the best tool for this. Have a look at my answers here and here. $\endgroup$
    – terdon
    Apr 6, 2019 at 12:57
  • $\begingroup$ I am using local blast and blasting against virulence factor database found here mgc.ac.cn/VFs/main.htm. $\endgroup$ Apr 6, 2019 at 14:37
  • $\begingroup$ "Do you mean tblastx or blastx" No blastp. I have extracted translated cds from annotated gbk files. $\endgroup$ Apr 6, 2019 at 14:46

1 Answer 1


The answer is it depends. 40% pident with ~100% qcovs (assuming length of protein is not very small) tells you that the virulence factor (VF) and your prokka predicted protein are likely homologs, they belong to the same (or closely related) protein family. For some research studies, you might annotate your prokka proteins as 'putative' VFs.

On the other hand, in a clinical context, even 90% pident might not be enough evidence to say these predictions are real VFs. A single amino acid change alters the protein and therefore potentially the function. You could investigate bioinformtiaclly how the changes impact the protein structure and domains etc. Ideally validate it experimentally, e.g. for a new putative E. coli toxin, clone the protein and express it in a commensal E. coli strain and test the toxicity of the new strain.

In practise, think about what question you're asking and who you want to convince. Try numerous thresholds and see how robust your results are to threshold changes (4,000 VFs seems like a lot for a 'few' genomes). You could also try the VirulenceFinder database. When annotating antibiotic resistance genes, if you use 80% pident and qcovs thresholds with a minimum protein length then most researchers will accept your predicted annotations as 'conservative', maybe the VF community has similar arbitrary but pragmatic standards.


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.