just a general comment, ideally parameters are a single type or `None`. A single sample_id could, for instance be passed in as `[foo]`. It reduces the need for type checking and type concerns, and reduces potential annoying bugs downstream. But, there are of course always a time and a place...