PiCrust uses 16S marker gene data to predict metagenomes and thereby functional profiles. It discards unidentified OTUs from, for example, QIIME, so the longer the 16S sequences you use to initially generate taxonomic IDs, the better. Documentation and readability of the output could be improved.
MetaPhlAn matches reference genomes and sequences to classify based on similarity and calculates abundances. MetaPhlAn does have the capability for generating a custom database against which to run reference genomes. However, we found Kraken to be a better use of time as it does the same thing and runs faster.
HUMAnN generates a functional abundance table and assesses the completeness pathways. HUMAnN pulls the organisms that MetaPhlAn identifies and runs them. It can run without MetaPhlAn data if one runs nonstratified input. Abundances are normalized by gene length and depth of sequences.