This would quickly become overwhelming. In the applications I've had for this code so far, we often have greater than 20 individuals, so coming up with meaningful ways to differentiate the lines would be next to impossible. 

This also is not really what the code is intended to be used for. Usually the way this code is applied is that we generate a plot for "Treatment" and a plot for "Control" in two different runs of the script (this is why the ``valid_states`` parameter can be passed) and then you compare the plots. In order words, we're interested in the trends across categories of individuals, rather than what is happening in specific individuals. Or, we look at things like change in abundance of some OTUs or taxa in a single run of the script, and see if taxa are changing, or if different taxa are changing in a different direction, etc.