Modware

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Modware - Presentation Transcript

    1. Modware: An Object-oriented Perl Interface to the Chado Schema Eric Just Senior Bioinformatics Scientist dictyBase: http://dictybase.org Northwestern University Generic Model Organism Database Project (GMOD)
    2. Agenda
      • What?
        • What is Chado?
        • What is Modware?
      • Why?
      • How?
        • Example: a protein coding gene
          • Storing in Chado
          • Writing a Web Page with Modware
      • Try
        • Getting Modware
    3. What is Chado?
      • Standardized genomics database schema
      • Developed by FlyBase
      • Adopted and distributed by GMOD project
      • Extremely flexible and compact
        • Heavy ontology usage
        • Entity-Attribute-Value tables
      • Modularized for different areas of bioinformatics
      • See Talk on Chado at ISMB (Paper 65)
    4. What is Modware
      • Open-source tool for programmers who write software to QUERY AND UPDATE Chado
      • Object-oriented API with semantically sensible classes and methods
      • Developed at dictyBase
      • Working with GMOD
    5. Agenda
      • What?
        • What is Chado?
        • What is Modware?
      • Why?
      • How?
        • Example: a protein coding gene
          • Storing in database
          • Writing a Web Page with Modware
      • Try
        • Getting Modware
    6. Why Modware Exists
      • Chado has many business rules
      • Modware encapsulates many Chado business rules
      • Faster, more efficient development time
      • More readable code
      • UI changes, logic does not
      • Leverage GMOD/Chado/Open Source community
    7. Agenda
      • What?
        • What is Chado?
        • What is Modware?
      • Why?
      • How?
        • Example: a protein coding gene
          • Storing in database
          • Writing a Web Page with Modware
      • Try
        • Getting Modware
    8. A Simple Gene Example A gene is a region on a chromosome that encloses one or more transcript objects. An mRNA is a protein-coding transcript is composed of one or more exons which have coordinates on a chromosome. Chromosome 3
    9. Storing mlcE in Chado CV (controlled vocabulary) Feature Featureloc Feature_relationship CVterm 1 68706 68256 104 100 1 67982 67979 103 100 1 68706 67979 102 100 1 68706 67979 101 100 strand fmax fmin feature_id srcfeature name Feat_type Feat_id _DDB0214813_exon_2 253 104 _DDB0214813_exon_1 253 103 DDB0214813 252 102 mlcE 251 101 Chr 3 250 100 Sequence Ontology 1 cv cv_id 1 mRNA 252 1 exon 253 1 gene 251 1 chromosome 250 cv cvterm cvterm_id Located on part of part of Sequence Ontology 1 Relationsip Ontology 2 cv cv_id 1 exon 253 1 mRNA 252 2 part_of 301 1 gene 251 1 chromosome 250 cv cvterm cvterm_id 102 301 104 102 301 103 101 301 102 object_id type_id subject_id
    10. A Simple Gene Page
    11. #!/usr/bin/perl use Modware::Feature; use CGI; my $id = CGI::param(‘primary_id'); my $count = 1; # Get all data from database my $feature = new Modware::Feature( -primary_id => $id ); my $chromosome = $feature->reference_feature()->name(); my $gene = $feature->gene()->name(); my @exons = $feature->bioperl()->exons(); my $sequence = $feature->sequence( -type => ’protein', -format => 'fasta' ); # print the report print CGI->header; print &quot;<pre>&quot;; print $id.&quot; is on chromosome $chromosome&quot;; print &quot; and is the gene $gene &quot;; # print the number and position of each exon foreach my $exon (@exons) { print &quot;Exon $count. start=&quot;.$exon->start(). &quot; end=&quot;.$exon->end().&quot; &quot;; $count++; } print $sequence; print &quot;</pre>&quot;;
    12. Modware::Features
      • Modware Feature Classes
        • Gene
        • mRNA
        • ncRNA
        • Contig
        • Chromosome
        • EST
        • Generic (catch-all)
        • Modware can manage
        • the following annotations
          • Sequence
          • Location
          • Name
          • Synonyms
          • Description
          • Public identifiers
          • External identifiers
            • (dbxrefs)
    13. Modware::Search
        • These classes retrieve groups (iterators) of features
      Modware::Search::Gene->Search_by_name_and_synonym(‘*kinase*’); Modware::Search::Feature->Search_overlapping_feats_by_range( ‘ Chr3’, 100000, 500000, ‘mRNA’ );
        • Location searches
        • Find all protein-coding genes on Chromosome 3 between bases 100,000 and 500,000
        • Text searches
        • Retrieve all kinase genes
    14. Updating a Gene Name, add Synonym
      • # get gene
      • my ($gene) = new Modware::Search::Gene->Search_by_name(‘mlcA' );
      • # change the name
      • $gene->name( ‘newname' );
      • # add a synonym
      • $gene->add_synonym( ‘mlcA' );
      • # write changes to database
      • $gene->update();
    15. Modware Goals
      • Future releases will include:
        • Literature annotations
        • GO annotations
        • Phenotype annotations
      • Incorporate feedback from users
    16. Agenda
      • What?
        • What is Chado?
        • What is Modware?
      • Why?
      • How?
        • Example: a protein coding gene
          • Storing in database
          • Writing a Web Page with Modware
      • Try
        • Getting Modware
    17. Getting Modware
      • http://gmod-ware.sourceforge.net
      • Download the NEW Virtual Machine
      • Modware is preinstalled and ready for you!
      • See me if you have any questions or want a demo
      • Visit Poster N41 at ISMB
    18. Online Documentation http://gmod-ware.sourceforge.net/doc/
    19. Dankes
      • The organizers of BOSC 2007
      • O|B|F
      • dictyBase
      • PIs
        • Rex Chisholm, PhD
        • Warren Kibbe, PhD
      • Programmer
        • Sohel Merchant
      • Curators
        • Petra Fey
        • Pascale Gaudet, PhD
      • Other Groups
      • Funding
        • NIH (NIGMS and NHGRI)
      • GMOD
        • Scott Cain
        • Brian O’Connor
      • Chado developers
      • Bioperl developers
    20. # USE CASE: Add a description, dbxref, and an exon my $transcript = new Modware::Feature( -primary_id => 'DDB0233595' ); $transcript->description( 'Gene model derived from AU12345' ); $transcript->add_external_id( -source => 'GenBank Accession Number', -id => 'AU12345' ); # call the bioperl method to retrieve bioperl representation of object # need this to view/edit exon structure $bioperl = $transcript->bioperl(); # here, we are manipulating a Bio::SeqFeature::Gene object # shift the last exon back a little bit (to lose stop codon) [$bioperl->exons()]->[2]->start( 281050 ); # create a new exon and add it to the feature my $exon = Bio::SeqFeature::Gene::Exon->new( -start => 280921, -end => 280959, -strand => -1 ); $exon->is_coding(1); $bioperl->add_exon($exon); # update writes everything to the database $transcript->update();
    21. Modware::Feature Modware::Feature::GENE Modware::Feature::MRNA Bio::SeqFeature::Gene::Transcript Bio::Seq Modware::Feature::CHROMOSOME Bio::SeqFeature::Gene::Exon
    22. Feature ncRNA mRNA Contig Chromosome getOverlappingFeatures() getOverlappingAlignments() Bio::SeqFeature::Gene::Transcript Bio::SeqFeature::Generic Bio::SeqFeature::Generic Bio::Seq

    + boscbosc, 3 years ago

    custom

    1100 views, 1 favs, 0 embeds more stats

    Title: Modware: An Object-oriented Perl Interface t more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1100
      • 1100 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 17
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags