<div dir="ltr">Hi Michael, <div><br></div><div>I think this is a result of  &quot;charpartitions&quot; in the Nexus object being a dictionary. In python dictionaries are &quot;unordered&quot;, so you don&#39;t usually get objects back out in the order they went in. </div><div><br></div><div>One possible workaround it to make you own class that inherits everything else from Nexus but instead uses an ordered  dictionary (from collections), something like </div><div><br></div><div><br></div><div>from collections import OrderedDict</div><div>from Bio.Nexus import Nexus</div><div><br></div><div><div>class OrderedNexus(Nexus.Nexus):</div><div>    &quot;&quot;&quot; Subclass of Bio.Nexus.Nexus used to maintain partition order &quot;&quot;&quot;</div><div><br></div><div>    def __init__(self, **kwargs):</div><div>        Nexus.Nexus.__init__(self, **kwargs)</div><div>        self.charpartitions = OrderedDict</div></div><div><br></div><div><br></div><div><br></div><div><div>o = OrderedNexus()</div><div>n = Nexus.Nexus()</div><div> o.charpartitions</div><div>#OrderedDict()</div><div>n.charpartitions</div><div>#{}</div></div><div>dir(o) # (all the stuff you expect to see in a Nexus object)</div><div><br></div><div>I haven&#39;t had a chance to test this on the example, but hope it&#39;s some help to you.</div><div><br></div><div>David</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 9, 2015 at 6:37 AM, Michael Gruenstaeudl <span dir="ltr">&lt;<a href="mailto:mi.gruenstaeudl@gmail.com" target="_blank">mi.gruenstaeudl@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<br>like many others, I have been using the excellent example on the Biopython wiki to concatenate multiple alignments into one nexus-file using Biopython&#39;s Nexus.combine() function. However, what if I wish to maintain the order of the nexus-partitions specified in &#39;file_list&#39;. While the tuple &#39;nexi&#39; is still ordered according to &#39;file_list&#39;, &#39;combined.charsets.items()&#39; is not. Moreover, sorting the charsets is not possible:<br><br>&gt;&gt;&gt; combined.charsets.items()[0]<br>(&#39;partition0038_rps4_CDS.nex&#39;, [36567, 36568])<br><br>&gt;&gt;&gt; combined.charsets.items()[1]<br>(&#39;partition0004_trnK_CDS.nex&#39;, [36569, 36573])<br><br>&gt;&gt;&gt; for i in range(0,len(combined.charsets.items())):<br>...     combined.charsets.items()[i] = sorted_items[i]<br>...<br>&gt;&gt;&gt; combined.charsets.items()[0]<br>(&#39;partition0038_rps4_CDS.nex&#39;, [36567, 36568])<br><br>What procedure would you recommend to maintain the input order of &#39;file_list&#39; in the output file &#39;combined.nex&#39;?<br><br>Thank you, Michael<div><div><div><div><br clear="all"><div><div><div dir="ltr"><div><div dir="ltr"><div><span style="font-size:12.8px">--</span><br></div><div>Michael Gruenstaeudl (Grünstäudl), PhD</div><div>E-mail: <a href="mailto:mi.gruenstaeudl@gmail.com" target="_blank">mi.gruenstaeudl@gmail.com</a></div><div>Website: <a href="http://u.osu.edu/gruenstaeudl/" target="_blank">http://blogs.fu-berlin.de/gruenstaeudl/</a></div></div></div></div></div></div>
</div></div></div></div></div>
<br>_______________________________________________<br>
Biopython mailing list  -  <a href="mailto:Biopython@mailman.open-bio.org">Biopython@mailman.open-bio.org</a><br>
<a href="http://mailman.open-bio.org/mailman/listinfo/biopython" target="_blank">http://mailman.open-bio.org/mailman/listinfo/biopython</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>David Winter</div><div>Postdoctoral Research Associate</div><div>Center for Evolutionary Medicine and Informatics</div><div>The Biodesign Institute</div><div>Arizona State University</div><div><br></div><div>ph: +1 480 519 5113</div><div>w: <a href="http://www.david-winter.info" target="_blank">www.david-winter.info</a></div><div>lab: <a href="http://cartwrig.ht/lab/" target="_blank">http://cartwrig.ht/lab/</a></div><div>blog: <a href="http://sciblogs.co.nz/the-atavism" target="_blank">sciblogs.co.nz/the-atavism</a></div></div></div>
</div>