pipeline "smart running" = only what hasn't been run/what can be run
if no CSV input, don't run expression
for other modules, check if the fasta already exists. If it does, we can pick up where the previous module left off.
add databases to annotation, quality module. If the specified databases don't exist, download them via manage_databases, then run the task to map to that database.
major changes: