def __str__(self):
multi_site = len(self.Pi.shape)==<NUM_LIT:2><EOL>if multi_site:<EOL><INDENT>eq_freq_str = "<STR_LIT>"+str(np.round(self.average_rate,<NUM_LIT:6>))+'<STR_LIT:\n>'<EOL><DEDENT>else:<EOL><INDENT>eq_freq_str = "<STR_LIT>"+str(np.round(self.mu,<NUM_LIT:6>))+'<STR_LIT:\n>'<EOL><DEDENT>if not multi_site:<EOL><INDENT>eq_freq_str += "<STR_LIT>"<EOL>for a,p in zip(self.alphabet, self.Pi):<EOL><INDENT>eq_freq_str+='<STR_LIT:U+0020>'+str(a)+'<STR_LIT>'+str(np.round(p,<NUM_LIT:4>))+'<STR_LIT:\n>'<EOL><DEDENT><DEDENT>W_str = "<STR_LIT>"<EOL>W_str+='<STR_LIT:\t>'+'<STR_LIT:\t>'.join(map(str, self.alphabet))+'<STR_LIT:\n>'<EOL>for a,Wi in zip(self.alphabet, self.W):<EOL><INDENT>W_str+= '<STR_LIT:U+0020>'+str(a)+'<STR_LIT:\t>'+'<STR_LIT:\t>'.join([str(np.round(max(<NUM_LIT:0>,p),<NUM_LIT:4>)) for p in Wi])+'<STR_LIT:\n>'<EOL><DEDENT>if not multi_site:<EOL><INDENT>Q_str = "<STR_LIT>"<EOL>Q_str+='<STR_LIT:\t>'+'<STR_LIT:\t>'.join(map(str, self.alphabet))+'<STR_LIT:\n>'<EOL>for a,Qi in zip(self.alphabet, self.Q):<EOL><INDENT>Q_str+= '<STR_LIT:U+0020>'+str(a)+'<STR_LIT:\t>'+'<STR_LIT:\t>'.join([str(np.round(max(<NUM_LIT:0>,p),<NUM_LIT:4>)) for p in Qi])+'<STR_LIT:\n>'<EOL><DEDENT><DEDENT>return eq_freq_str + W_str + Q_str<EOL>
String representation of the GTR model for pretty printing