<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px"><div id="yiv9140389184"><div id="yui_3_16_0_ym19_1_1527346078401_11836"><div style="color:#000;background-color:#fff;font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px;" id="yui_3_16_0_ym19_1_1527346078401_11835"><div id="yiv9140389184"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5561">Dear all,</div><div class="qtdSeparateBR"><br><br></div><div class="yiv9140389184yqt4267326380" id="yiv9140389184yqtfd84956"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_8592"><div style="color:#000;background-color:#fff;font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px;" id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_8591"><div class="yiv9140389184qtdSeparateBR" id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_8593"><br clear="none"></div></div></div></div></div><div id="yui_3_16_0_ym19_1_1527346078401_11834"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5536" style="font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px;"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5535" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div class="yiv9140389184y_msg_container" id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5534"><div id="yiv9140389184"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5533"><div id="yiv9140389184yui_3_16_0_ym19_1_1527346078401_5532" style="color:#000;background-color:#fff;font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:10px;"><div id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9240">In Biopython, Seq objects show both their sequence content and the alphabet associated with them.<br clear="none"></div><div id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_11111">For example, the first example in our Biopython Tutorial & Cookbook starts as follows:</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9106"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9107">>>> from Bio.Seq import Seq<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9051" clear="none">>>> my_seq = Seq("AGTACACTGGT")<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9052" clear="none">>>> my_seq<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9053" clear="none">Seq('AGTACACTGGT', Alphabet())<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9054" clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9075"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9301">I don't think we need to show the alphabet here. It takes up screen space, and oftentimes it's uninformative (as in the example above); the other examples in the same section of the tutorial show SingleLetterAlphabet and IUPACAmbiguousDNA. Even in the latter case, I don't think users need to be reminded every time that they are dealing with DNA.</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_11288"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_9302">Perhaps more importantly, this is very confusing for new users. I would say that alphabets are of minor importance in Biopython overall. Some might say that they should be abolished altogether. But if we start off our tutorial by showing Alphabet, IUPAC.unambiguous_dna, SingleLetterAlphabet etc., then a reasonable question from students would be what they are and why we use them. I don't have a good answer to that question.</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13633">In addition, the design of the Alphabet class is problematic.</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13441"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13549">Shall we change the __repr__ function of Seq objects to show the sequence only? I.e. the example above would show</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13325"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13389">>>> from Bio.Seq import Seq<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13326" clear="none">>>> my_seq = Seq("AGTACACTGGT")<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13327" clear="none">>>> my_seq<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13328" clear="none">Seq('AGTACACTGGT')</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13332"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13333">Then the section on alphabets in the Tutorial can move to the end of the chapter, for people who actually want to use Alphabets.</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13363"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13371">For each sequence object, the alphabet would still be accessible as the attribute to the Seq object:<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13329" clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13330"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13500">>>> my_seq.alphabet<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13505" clear="none">Alphabet()<br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13506" clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13507"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13691"><br id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13331" clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13316">Best,</div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13696">-Michiel<br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13301"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_11406"><br clear="none"></div><div dir="ltr" id="yiv9140389184yui_3_16_0_ym19_1_1527297131156_13254"> <br clear="none"></div></div></div></div><br clear="none"><br clear="none"></div> </div> </div> </div></div></div></div></div></body></html>