Functional annotations are typically performed using a combination of computational tools and experimental techniques. Computational methods include sequence alignment, gene ontology analysis, and pathway enrichment analysis. Experimental techniques involve gene knockdown or knockout studies, protein interaction assays, and transcriptome analysis. Together, these approaches provide a comprehensive view of gene and protein functions.