Changeset 266

Show
Ignore:
Timestamp:
01/19/08 01:09:31 (10 months ago)
Author:
t
Message:

added simple motif search of a sequence

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cartwheel-server/lib/cartwheel/website/IUPACMotif.py

    r265 r266  
    55    mymembers = ('motif', 'mismatches') 
    66 
     7    def search(self, sequence): 
     8        """ 
     9        sequence is FolderSequence. 
     10        """ 
     11        import motility 
     12 
     13        return motility.find_iupac(sequence.seq, self.motif, self.mismatches) 
     14 
    715    def extra_information(self): 
    816        return "motif: %s; match %d/%d by default" % \ 
  • trunk/cartwheel-server/lib/cartwheel/website/NamedMotif.py

    r265 r266  
    55    mymembers = ('name', 'motif_type', 'folder_id', 'visible') 
    66 
     7    def search(self, sequence): 
     8        raise NotImplementedError 
     9 
    710    def extra_information(self): 
    811        raise NotImplementedError 
  • trunk/cartwheel-server/website/canal/motif/__init__.py

    r265 r266  
    44 
    55import cartwheel.website 
     6from canal.motif.analyze import AnalyzeSequenceHandler 
    67from pages import add_iupac, _q_index 
    78 
    8 _q_exports = ['add_iupac', 'delete', 'edit'
     9_q_exports = ['add_iupac', 'delete', 'edit', 'go_analyze'
    910 
    1011def edit(request): 
    11     pass 
     12    assert 0 
    1213 
    1314def delete(request): 
     15    """ 
     16    Hide the given motif, identified by 'motif_id'. 
     17    """ 
    1418    manager = cartwheel.website.get_object_manager() 
    1519     
     
    2024 
    2125    return request.redirect(request.get_url(1)) 
     26 
     27def go_analyze(request): 
     28    """ 
     29    Redirect to the sequence analysis handler. 
     30    """ 
     31    seq_id = request.form['seq'] 
     32    return request.redirect('./analyze%s' % (seq_id,)) 
     33 
     34def _q_lookup(request, component): 
     35    if component.startswith('analyze'): 
     36        sequence_id = int(component[len('analyze'):]) 
     37 
     38        m = cartwheel.website.get_object_manager() 
     39        sequence = m.load(sequence_id) 
     40 
     41        return AnalyzeSequenceHandler(sequence) 
  • trunk/cartwheel-server/website/canal/motif/pages.ptl

    r265 r266  
    22from canal.templates import header, footer 
    33from cartwheel.website.IUPACMotif import IUPACMotif 
     4from canal.group.utils import make_sequence_list_widget 
    45 
    56from quixote.form import widget 
     
    1415    folder = manager.load(folder_id) 
    1516    motifs = folder.get_motifs() 
     17 
     18    header("Manage motifs: motif library for folder '%s'" % (folder.name,)) 
     19 
     20    """ 
     21    <h2>Motif library for folder '%s'</h2> 
     22    """ % (folder.name,) 
    1623 
    1724    if motifs: 
     
    5360 
    5461    <A href="add_iupac">Add a simple motif</a> 
     62    <p> 
    5563    """ 
     64 
     65    ### 
     66    sequences = folder.get_sequences('DNA') 
     67 
     68    if sequences: 
     69        """ 
     70        <form method="POST" action="go_analyze"> 
     71        Analyze DNA sequence: %s <input type='submit' value='analyze'> 
     72        </form> 
     73        """ % (make_sequence_list_widget('seq', sequences).render(request),) 
     74    else: 
     75        """ 
     76        (To analyze a sequence with motifs, you must first <a href='../sequences/'>enter some sequences</a>) 
     77        """ 
     78     
     79    """ 
     80    <p> 
     81    <a href="../">Return to folder menu</a> 
     82    """ 
     83 
     84    footer() 
    5685 
    5786def add_iupac(request): 
     
    100129 
    101130    ### create the motif & put it into the database 
     131     
    102132    manager = cartwheel.website.get_object_manager() 
    103133