<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Bio.Saf.Record</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="Bio-module.html">Package Bio</a> :: <a href="Bio.Saf-module.html">Package Saf</a> :: Module Record </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="Bio.Saf.Record-pysrc.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <h1 class="epydoc">Source Code for <a href="Bio.Saf.Record-module.html">Module Bio.Saf.Record</a></h1> <pre class="py-src"> <a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># Copyright 2001 by Katharine Lindner. All rights reserved.</tt> </tt> <a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># This code is part of the Biopython distribution and governed by its</tt> </tt> <a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># license. Please see the LICENSE file that should have been included</tt> </tt> <a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment"># as part of this package.</tt> </tt> <a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt> <a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">"""Martel based parser to read SAF formatted files.</tt> </tt> <a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">This is a huge regular regular expression for Saf, built using</tt> </tt> <a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">the 'regular expressiona on steroids' capabilities of Martel.</tt> </tt> <a name="L10"></a><tt class="py-lineno">10</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L11"></a><tt class="py-lineno">11</tt> <tt class="py-line"><tt class="py-docstring">#http://www.embl-heidelberg.de/predictprotein/Dexa/optin_safDes.html</tt> </tt> <a name="L12"></a><tt class="py-lineno">12</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L13"></a><tt class="py-lineno">13</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L14"></a><tt class="py-lineno">14</tt> <tt class="py-line"><tt class="py-docstring">Notes:</tt> </tt> <a name="L15"></a><tt class="py-lineno">15</tt> <tt class="py-line"><tt class="py-docstring">Just so I remember -- the new end of line syntax is:</tt> </tt> <a name="L16"></a><tt class="py-lineno">16</tt> <tt class="py-line"><tt class="py-docstring"> New regexp syntax - \R</tt> </tt> <a name="L17"></a><tt class="py-lineno">17</tt> <tt class="py-line"><tt class="py-docstring"> \R means "\n|\r\n?"</tt> </tt> <a name="L18"></a><tt class="py-lineno">18</tt> <tt class="py-line"><tt class="py-docstring"> [\R] means "[\n\r]"</tt> </tt> <a name="L19"></a><tt class="py-lineno">19</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L20"></a><tt class="py-lineno">20</tt> <tt class="py-line"><tt class="py-docstring">This helps us have endlines be consistent across platforms.</tt> </tt> <a name="L21"></a><tt class="py-lineno">21</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L22"></a><tt class="py-lineno">22</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt> <a name="L23"></a><tt class="py-lineno">23</tt> <tt class="py-line"> </tt> <a name="L24"></a><tt class="py-lineno">24</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package Bio=Bio-module.html"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-0', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package Bio.Align=Bio.Align-module.html"><a title="Bio.Align" class="py-name" href="#" onclick="return doclink('link-1', 'Align', 'link-1');">Align</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module Bio.Align.Generic=Bio.Align.Generic-module.html"><a title="Bio.Align.Generic" class="py-name" href="#" onclick="return doclink('link-2', 'Generic', 'link-2');">Generic</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class Bio.Align.Generic.Alignment=Bio.Align.Generic.Alignment-class.html,Class Bio.Blast.Record.Alignment=Bio.Blast.Record.Alignment-class.html,Class Bio.Wise.psw.Alignment=Bio.Wise.psw.Alignment-class.html"><a title="Bio.Align.Generic.Alignment Bio.Blast.Record.Alignment Bio.Wise.psw.Alignment" class="py-name" href="#" onclick="return doclink('link-3', 'Alignment', 'link-3');">Alignment</a></tt> </tt> <a name="L25"></a><tt class="py-lineno">25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-4" class="py-name"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-4', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Package Bio.Alphabet=Bio.Alphabet-module.html,Class Bio.Alphabet.Alphabet=Bio.Alphabet.Alphabet-class.html"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-5', 'Alphabet', 'link-5');">Alphabet</a></tt> </tt> <a name="L26"></a><tt class="py-lineno">26</tt> <tt class="py-line"> </tt> <a name="L27"></a><tt class="py-lineno">27</tt> <tt class="py-line"> </tt> <a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"> </tt> <a name="L29"></a><tt class="py-lineno">29</tt> <tt class="py-line"><tt class="py-string">"""Hold SAF data in a straightforward format.</tt> </tt> <a name="L30"></a><tt class="py-lineno">30</tt> <tt class="py-line"><tt class="py-string"></tt> </tt> <a name="L31"></a><tt class="py-lineno">31</tt> <tt class="py-line"><tt class="py-string">classes:</tt> </tt> <a name="L32"></a><tt class="py-lineno">32</tt> <tt class="py-line"><tt class="py-string">o Record - All of the information in an Saf record.</tt> </tt> <a name="L33"></a><tt class="py-lineno">33</tt> <tt class="py-line"><tt class="py-string">"""</tt> </tt> <a name="L34"></a><tt class="py-lineno">34</tt> <tt class="py-line"> </tt> <a name="Record"></a><div id="Record-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="Record-toggle" onclick="return toggle('Record');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="Bio.Saf.Record.Record-class.html">Record</a><tt class="py-op">:</tt> </tt> </div><div id="Record-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="Record-expanded"><a name="L36"></a><tt class="py-lineno">36</tt> <tt class="py-line"> <tt class="py-docstring">"""Hold Saf information in a format similar to the original record.</tt> </tt> <a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L38"></a><tt class="py-lineno">38</tt> <tt class="py-line"><tt class="py-docstring"> The Record class is meant to make data easy to get to when you are</tt> </tt> <a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"><tt class="py-docstring"> just interested in looking at Saf data.</tt> </tt> <a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L41"></a><tt class="py-lineno">41</tt> <tt class="py-line"><tt class="py-docstring"> Attributes:</tt> </tt> <a name="L42"></a><tt class="py-lineno">42</tt> <tt class="py-line"><tt class="py-docstring"> alignment</tt> </tt> <a name="L43"></a><tt class="py-lineno">43</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt> <a name="L44"></a><tt class="py-lineno">44</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt> <a name="Record.__init__"></a><div id="Record.__init__-def"><a name="L45"></a><tt class="py-lineno">45</tt> <a class="py-toggle" href="#" id="Record.__init__-toggle" onclick="return toggle('Record.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Saf.Record.Record-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Record.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Record.__init__-expanded"><a name="L46"></a><tt class="py-lineno">46</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Variable Bio.expressions.blast.ncbiblast.alignment=Bio.expressions.blast.ncbiblast-module.html#alignment"><a title="Bio.expressions.blast.ncbiblast.alignment" class="py-name" href="#" onclick="return doclink('link-6', 'alignment', 'link-6');">alignment</a></tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="Bio.Align.Generic.Alignment Bio.Blast.Record.Alignment Bio.Wise.psw.Alignment" class="py-name" href="#" onclick="return doclink('link-7', 'Alignment', 'link-3');">Alignment</a></tt><tt class="py-op">(</tt> <tt id="link-8" class="py-name"><a title="Bio" class="py-name" href="#" onclick="return doclink('link-8', 'Bio', 'link-0');">Bio</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="Bio.Alphabet Bio.Alphabet.Alphabet" class="py-name" href="#" onclick="return doclink('link-9', 'Alphabet', 'link-5');">Alphabet</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Variable Bio.Alphabet.generic_alphabet=Bio.Alphabet-module.html#generic_alphabet"><a title="Bio.Alphabet.generic_alphabet" class="py-name" href="#" onclick="return doclink('link-10', 'generic_alphabet', 'link-10');">generic_alphabet</a></tt> <tt class="py-op">)</tt> </tt> </div><a name="L47"></a><tt class="py-lineno">47</tt> <tt class="py-line"> </tt> <a name="Record.__str__"></a><div id="Record.__str__-def"><a name="L48"></a><tt class="py-lineno">48</tt> <a class="py-toggle" href="#" id="Record.__str__-toggle" onclick="return toggle('Record.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Saf.Record.Record-class.html#__str__">__str__</a><tt class="py-op">(</tt> <tt class="py-param">self</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="Record.__str__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Record.__str__-expanded"><a name="L49"></a><tt class="py-lineno">49</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt> <a name="L50"></a><tt class="py-lineno">50</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Method Bio.AlignAce.Parser.AlignAceConsumer.sequences()=Bio.AlignAce.Parser.AlignAceConsumer-class.html#sequences"><a title="Bio.AlignAce.Parser.AlignAceConsumer.sequences" class="py-name" href="#" onclick="return doclink('link-11', 'sequences', 'link-11');">sequences</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="Bio.expressions.blast.ncbiblast.alignment" class="py-name" href="#" onclick="return doclink('link-12', 'alignment', 'link-6');">alignment</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method Bio.Align.Generic.Alignment.get_all_seqs()=Bio.Align.Generic.Alignment-class.html#get_all_seqs"><a title="Bio.Align.Generic.Alignment.get_all_seqs" class="py-name" href="#" onclick="return doclink('link-13', 'get_all_seqs', 'link-13');">get_all_seqs</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt> <a name="L51"></a><tt class="py-lineno">51</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">sequence_record</tt> <tt class="py-keyword">in</tt> <tt id="link-14" class="py-name"><a title="Bio.AlignAce.Parser.AlignAceConsumer.sequences" class="py-name" href="#" onclick="return doclink('link-14', 'sequences', 'link-11');">sequences</a></tt><tt class="py-op">:</tt> </tt> <a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> <tt class="py-op">+</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">sequence_record</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method Bio.Blast.NCBIStandalone._DescriptionConsumer.description()=Bio.Blast.NCBIStandalone._DescriptionConsumer-class.html#description,Method Bio.Enzyme._RecordConsumer.description()=Bio.Enzyme._RecordConsumer-class.html#description,Method Bio.Prosite._RecordConsumer.description()=Bio.Prosite._RecordConsumer-class.html#description,Function Bio.Std.description()=Bio.Std-module.html#description,Method Bio.SwissProt.SProt._RecordConsumer.description()=Bio.SwissProt.SProt._RecordConsumer-class.html#description,Method Bio.SwissProt.SProt._SequenceConsumer.description()=Bio.SwissProt.SProt._SequenceConsumer-class.html#description,Variable Martel.setup.run_local_tests.description=Martel.setup.run_local_tests-class.html#description"><a title="Bio.Blast.NCBIStandalone._DescriptionConsumer.description Bio.Enzyme._RecordConsumer.description Bio.Prosite._RecordConsumer.description Bio.Std.description Bio.SwissProt.SProt._RecordConsumer.description Bio.SwissProt.SProt._SequenceConsumer.description Martel.setup.run_local_tests.description" class="py-name" href="#" onclick="return doclink('link-15', 'description', 'link-15');">description</a></tt> </tt> <a name="L53"></a><tt class="py-lineno">53</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> <tt class="py-op">+</tt> <tt id="link-16" class="py-name" targets="Function Bio.IntelliGenetics.Record.out_sequence()=Bio.IntelliGenetics.Record-module.html#out_sequence,Function Bio.NBRF.Record.out_sequence()=Bio.NBRF.Record-module.html#out_sequence,Function Bio.Saf.Record.out_sequence()=Bio.Saf.Record-module.html#out_sequence"><a title="Bio.IntelliGenetics.Record.out_sequence Bio.NBRF.Record.out_sequence Bio.Saf.Record.out_sequence" class="py-name" href="#" onclick="return doclink('link-16', 'out_sequence', 'link-16');">out_sequence</a></tt><tt class="py-op">(</tt> <tt class="py-name">sequence_record</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method Bio.GFF.Feature.seq()=Bio.GFF.Feature-class.html#seq,Method Bio.GFF.FeatureAggregate.seq()=Bio.GFF.FeatureAggregate-class.html#seq,Variable BioSQL.BioSeq.DBSeqRecord.seq=BioSQL.BioSeq.DBSeqRecord-class.html#seq"><a title="Bio.GFF.Feature.seq Bio.GFF.FeatureAggregate.seq BioSQL.BioSeq.DBSeqRecord.seq" class="py-name" href="#" onclick="return doclink('link-17', 'seq', 'link-17');">seq</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable BioSQL.BioSeq.DBSeq.data=BioSQL.BioSeq.DBSeq-class.html#data"><a title="BioSQL.BioSeq.DBSeq.data" class="py-name" href="#" onclick="return doclink('link-18', 'data', 'link-18');">data</a></tt> <tt class="py-op">)</tt> </tt> <a name="L54"></a><tt class="py-lineno">54</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">output</tt> </tt> </div></div><a name="L55"></a><tt class="py-lineno">55</tt> <tt class="py-line"> </tt> <a name="out_sequence"></a><div id="out_sequence-def"><a name="L56"></a><tt class="py-lineno">56</tt> <a class="py-toggle" href="#" id="out_sequence-toggle" onclick="return toggle('out_sequence');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="Bio.Saf.Record-module.html#out_sequence">out_sequence</a><tt class="py-op">(</tt> <tt class="py-param">seq</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> </div><div id="out_sequence-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="out_sequence-expanded"><a name="L57"></a><tt class="py-lineno">57</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt> <a name="L58"></a><tt class="py-lineno">58</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt> <tt id="link-19" class="py-name"><a title="Bio.GFF.Feature.seq Bio.GFF.FeatureAggregate.seq BioSQL.BioSeq.DBSeqRecord.seq" class="py-name" href="#" onclick="return doclink('link-19', 'seq', 'link-17');">seq</a></tt> <tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">80</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt> <a name="L59"></a><tt class="py-lineno">59</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> <tt class="py-op">+</tt> <tt class="py-string">'%s\n'</tt> <tt class="py-op">%</tt> <tt id="link-20" class="py-name"><a title="Bio.GFF.Feature.seq Bio.GFF.FeatureAggregate.seq BioSQL.BioSeq.DBSeqRecord.seq" class="py-name" href="#" onclick="return doclink('link-20', 'seq', 'link-17');">seq</a></tt><tt class="py-op">[</tt> <tt class="py-name">j</tt><tt class="py-op">:</tt> <tt class="py-name">j</tt> <tt class="py-op">+</tt> <tt class="py-number">80</tt> <tt class="py-op">]</tt> </tt> <a name="L60"></a><tt class="py-lineno">60</tt> <tt class="py-line"> <tt class="py-name">output</tt> <tt class="py-op">=</tt> <tt class="py-name">output</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</tt> </tt> <a name="L61"></a><tt class="py-lineno">61</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">output</tt> </tt> </div><a name="L62"></a><tt class="py-lineno">62</tt> <tt class="py-line"> </tt><script type="text/javascript"> <!-- expandto(location.href); // --> </script> </pre> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Mon Sep 15 09:28:11 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>