<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
Hi Carlos -&nbsp;
<div><br>
</div>
<div>Thanks for sharing your code.</div>
<div><br>
</div>
<div>
<div>
<blockquote type="cite">
<blockquote type="cite">&quot;YTN&quot; would also match both of Phe's codons (&quot;TTT&quot; and &quot;TTC&quot;)<br>
</blockquote>
</blockquote>
<blockquote type="cite">I just run the original Perl Degen_v1.4.pl script and both TTT and TTC<br>
get degenerated to &quot;TTY&quot; using both translation tables 1 and 5.<br>
</blockquote>
<div><br>
</div>
<div>Yes. &nbsp;What I had thought was a problem in the Perl Degen script was not with how it handles Phe's codons, but rather with how it handles Leu's 2 codons that are in the same block as those of Phe, namely TTA and TTG. &nbsp;Currently, those both result with &quot;YTN&quot;
 as output, which matches all Leu and Phe codons, and is therefore is not a valid degenerate codon for Leu. &nbsp;Handling (TTA, TTG) and (CTT, CTC, CTA, CTG) separately for Leucine (resulting in TTR and CTN, respectively), and similar handling of Ser and Arg would
 &quot;solve&quot; this.</div>
<div><br>
</div>
<div>However, after reading some of the background on the PhyloTools website (which I now realize is maintained by Andreas Zwick, whose degeneracy tables your code uses--thank you for including the reference), I hereby retract my assertion that the degenerate
 codons for Leu/Arg/Ser were produced incorrectly. &nbsp;I wasn't aware that this is actually a standard published method (by Zwick, et al.) for creating degenerate sequences. &nbsp;My previous idea of degeneracy was that creating a degenerate a codon shouldn't allow
 for a mutation to be introduced, but clearly there are reasons to do it this way.</div>
<div><br>
</div>
Cheers,</div>
<div>Jared<br>
</div>
</div>
<div><br>
</div>
<div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
--<br>
Jared Sampson<br>
Xiangpeng Kong Lab<br>
NYU Langone Medical Center<br>
<a href="http://kong.med.nyu.edu/">http://kong.med.nyu.edu/</a><br>
<br>
<br>
<br>
<br>
<br>
</div>
</div>
<br>
<div>
<div>On Aug 2, 2015, at 8:24 AM, Carlos Pena &lt;<a href="mailto:mycalesis@gmail.com">mycalesis@gmail.com</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">Thanks Jeremy, Jared,<br>
<br>
<br>
I will take a better look at your script. I had already come up with a<br>
Python package to do the trick: <a href="https://github.com/carlosp420/degenerate-dna">
https://github.com/carlosp420/degenerate-dna</a><br>
<br>
I tried to make it easy to use:<br>
<br>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite">from degenerate_dna import Degenera<br>
dna = 'AGTTCT'<br>
res = Degenera(dna=dna, table=1, method='S')<br>
res.degenerate()<br>
res.degenerated<br>
</blockquote>
</blockquote>
</blockquote>
'AGYAGY'<br>
<br>
<br>
But so far I have implemented the degenerated sequences for the Standard<br>
Code and the Invertebrate Mitochondrial. In our lab, we don't urgently<br>
need the other translation codes yet.<br>
<br>
<blockquote type="cite">&quot;YTN&quot; would also match both of Phe's codons (&quot;TTT&quot; and &quot;TTC&quot;)<br>
</blockquote>
I just run the original Perl Degen_v1.4.pl script and both TTT and TTC<br>
get degenerated to &quot;TTY&quot; using both translation tables 1 and 5.<br>
<br>
<br>
cheers,<br>
<br>
<br>
carlos<br>
<br>
<br>
On 02.08.2015 15:00, <a href="mailto:biopython-request@mailman.open-bio.org">biopython-request@mailman.open-bio.org</a> wrote:<br>
<blockquote type="cite">Send Biopython mailing list submissions to<br>
<span class="Apple-tab-span" style="white-space:pre"></span><a href="mailto:biopython@mailman.open-bio.org">biopython@mailman.open-bio.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
<span class="Apple-tab-span" style="white-space:pre"></span>http://mailman.open-bio.org/mailman/listinfo/biopython<br>
or, via email, send a message with subject or body 'help' to<br>
<span class="Apple-tab-span" style="white-space:pre"></span>biopython-request@mailman.open-bio.org<br>
<br>
You can reach the person managing the list at<br>
<span class="Apple-tab-span" style="white-space:pre"></span>biopython-owner@mailman.open-bio.org<br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of Biopython digest...&quot;<br>
<br>
<br>
Today's Topics:<br>
<br>
&nbsp;&nbsp;1. Re: Is there any Biopython tool to degenerate a nucleotide<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sequence (Jeremy)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Sat, 1 Aug 2015 23:23:23 &#43;0000 (UTC)<br>
From: Jeremy &lt;Jeremy.molbio@gmail.com&gt;<br>
To: biopython@biopython.org<br>
Subject: Re: [Biopython] Is there any Biopython tool to degenerate a<br>
<span class="Apple-tab-span" style="white-space:pre"></span>nucleotide<span class="Apple-tab-span" style="white-space:pre">
</span>sequence<br>
Message-ID: &lt;loom.20150802T011012-309@post.gmane.org&gt;<br>
Content-Type: text/plain; charset=utf-8<br>
<br>
Sampson, Jared &lt;Jared.Sampson &lt;at&gt; nyumc.org&gt; writes:<br>
<br>
<blockquote type="cite"><br>
<br>
Hi Jeremy -?<br>
<br>
Nice work, thanks for sharing.<br>
<br>
<br>
However (and someone please correct me if I'm wrong here!), it looks like <br>
</blockquote>
the current Leucine substitution, &quot;YTN&quot; would also match both of Phe's <br>
codons (&quot;TTT&quot; and &quot;TTC&quot;), and the current Arginine (&quot;MGN&quot;) also matches two <br>
of Serine's codons (&quot;AGT&quot; and &quot;AGC&quot;).<br>
<blockquote type="cite">?FWIW, the?PhyloTools script?also produces the same erroneous degenerate
<br>
</blockquote>
codons. ?I've sent the contact address on that site a bug report.<br>
<blockquote type="cite"><br>
I've updated a?fork?of your original gist to implement fixes for these <br>
</blockquote>
residues, along with a couple stylistic changes (hope you don't mind). <br>
?Please feel free to incorporate them<br>
<blockquote type="cite">into your original. ?If you want to double check the rest of the
<br>
</blockquote>
degen_dict, there's a?nice table on Wikipedia.<br>
<blockquote type="cite"><br>
Also, if you're looking to make other improvements, it might be nice to <br>
</blockquote>
add a &quot;frame=1&quot; argument to degenerate_sequence() to optionally accommodate <br>
the other two reading frames rather than chopping leftover bases.<br>
<blockquote type="cite"><br>
Cheers,<br>
Jared<br>
<br>
<br>
<br>
<br>
--?<br>
Jared Sampson<br>
Xiangpeng Kong Lab<br>
NYU Langone Medical Centerhttp://kong.med.nyu.edu/<br>
<br>
<br>
<br>
On Jul 31, 2015, at 1:39 AM, Jeremy &lt;Jeremy.molbio &lt;at&gt; gmail.com&gt; wrote:<br>
<br>
<br>
Carlos Pena &lt;mycalesis &lt;at&gt;?gmail.com&gt; writes:<br>
<br>
Dear Biopython members,<br>
I want to take a nucleotide string and degenerate those bases that can<br>
undergo synonymous change.<br>
For example, a string of just one codon.<br>
* Input: ?AAC<br>
* Output: ?AAY<br>
Since both AAC and AAT are translated to Asparagine (N) we can<br>
degenerate this codon to AAY (because the third position could produce a<br>
synonymous change).<br>
This is already solved in the Perl library <br>
</blockquote>
Degenhttp://www.phylotools.com/ptdegendocumentation.htm<br>
<blockquote type="cite">I could use some glue to execute this Perl code from Python but<br>
I cannot include this library in my project because they are using the<br>
GPL license while I use BSD.<br>
So I thought asking around before writing a Python script to do this for?<br>
<br>
me.<br>
<br>
thanks for any pointers,<br>
carlos<br>
<br>
<br>
Hi Carlos,<br>
I hacked up something that should return the same output as the Degen <br>
</blockquote>
1.4?<br>
<blockquote type="cite">Perlweb tool. ?<br>
The gist can be found here: <br>
</blockquote>
?https://gist.github.com/biojerm/6242381eb4ad3ef18ac6<br>
<blockquote type="cite">I am pretty new to both Python and Biopython, so the please let me know
<br>
</blockquote>
if?<br>
<blockquote type="cite">you have any feedback on both form, styling, and/or function.?<br>
I know the method is currently quite fragile. Below are a few thoughts <br>
</blockquote>
on?<br>
<blockquote type="cite">the method's weaknesses<br>
1)The method does not handle sequences that are not evenly divisible by <br>
</blockquote>
3.<br>
<blockquote type="cite">2)I think the method would be a lot more useful if you could call it on
<br>
</blockquote>
a?<br>
<blockquote type="cite">single or set of FASTA files or a GB files. ?But, I have not learned
<br>
</blockquote>
?how?<br>
<blockquote type="cite">to program that yet. ?<br>
3) I probably should return the degenerate sequences as Seq files, but <br>
</blockquote>
at?<br>
<blockquote type="cite">the moment they are simple strings.<br>
4)Tests...need to figure those out too. ?<br>
Please let me know if you find this useful or and if there are any must?<br>
have features for your purposes.<br>
Thanks,<br>
Jeremy<br>
_______________________________________________<br>
Biopython mailing list ?- ?Biopython &lt;at&gt; mailman.open-<br>
</blockquote>
bio.orghttp://mailman.open-bio.org/mailman/listinfo/biopython<br>
<blockquote type="cite"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
------------------------------------------------------------<br>
This email message, including any attachments, is for the sole use of the <br>
</blockquote>
intended recipient(s) and may contain information that is proprietary, <br>
confidential, and exempt from disclosure under applicable law. Any <br>
unauthorized review, use, disclosure, or distribution is prohibited. If you <br>
have received this email in error please notify the sender by return email <br>
and delete the original message. Please note, the recipient should check <br>
this email and any attachments for the presence of viruses. The <br>
organization accepts no liability for any damage caused by any virus <br>
transmitted by this email.<br>
<blockquote type="cite">=================================<br>
<br>
<br>
_______________________________________________<br>
Biopython mailing list &nbsp;- &nbsp;Biopython &lt;at&gt; mailman.open-bio.org<br>
http://mailman.open-bio.org/mailman/listinfo/biopython<br>
</blockquote>
<br>
<br>
Hi Jared,<br>
Thanks for editing the code. &nbsp;Your improvements in both style and function <br>
are greatly appreciated. &nbsp;I originally &nbsp;was trying to mimic the output of <br>
the bioPerl function. &nbsp;However, I think your improvements help to maintain <br>
accuracy of the original sequence. &nbsp;I will incorporate your method into the <br>
final function. &nbsp;I will also try and introduce different frames and <br>
possibly different codon tables. &nbsp;<br>
<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
Biopython mailing list &nbsp;- &nbsp;Biopython@mailman.open-bio.org<br>
http://mailman.open-bio.org/mailman/listinfo/biopython<br>
<br>
End of Biopython Digest, Vol 152, Issue 2<br>
*****************************************<br>
<br>
</blockquote>
<br>
-- <br>
Dr. Carlos Peña<br>
Laboratory of Genetics<br>
Department of Biology<br>
University of Turku<br>
20014 Turku<br>
FINLAND<br>
<br>
* Associated Editor, Revista Peruana de Biología<br>
<a href="http://revistasinvestigacion.unmsm.edu.pe/index.php/rpb">http://revistasinvestigacion.unmsm.edu.pe/index.php/rpb</a><br>
* The Nymphalidae Systematics Group<br>
http://nymphalidae.net<br>
_______________________________________________<br>
Biopython mailing list &nbsp;- &nbsp;Biopython@mailman.open-bio.org<br>
http://mailman.open-bio.org/mailman/listinfo/biopython<br>
</blockquote>
</div>
<br>
<p><br>
------------------------------------------------------------<br>
This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain information that is proprietary, confidential, and exempt from disclosure under applicable law. Any unauthorized review, use, disclosure, or distribution is prohibited. If you have received this email in error please notify the sender by return email and delete the original message. Please note, the recipient should check this email and any attachments for the presence of viruses. The organization accepts no liability for any damage caused by any virus transmitted by this email.<br>
=================================</p></body>
</html>