Your SlideShare is downloading. ×
0
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Modware
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modware

1,786

Published on

Title: Modware: An Object-oriented Perl Interface to the Chado Schema …

Title: Modware: An Object-oriented Perl Interface to the Chado Schema
Author: Eric Just

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,786
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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

×