In the fasta output of Prokka listing the name of genes, some genes does not have any name ("gene: NA"). My question is whether these genes are hypothetical or they do not have any name?
If the former one is the case, how Prokka determine them?
As you said, those genes have no names assigned in the database or likely hypothetical, Prokka only knows these are coding sequences but no matches in the databases (Prokka first extracts the coding sequences in the pipeline).
As Ajit suggested the link - some genes might not have a nomenclature approved yet, so they do not yet have gene names in the databases. So Prokka (it is a software pipeline, utilising some other gene predictors such as Prodigal) annotates genes using the database e.g. Uniprot, you will get the gene names if it exists win the database, if not, then you don't get it.
Gentlemen and Negin, I found out that other annotators -such as RAST- can figure out genes with many fewer hypothetical proteins than Prokka. Also prokka doesn't add the features when I try to view the files on SnapGene.