0
|
1 # $Id: UpdateableSeqI.pm,v 1.4 2002/10/22 07:45:09 lapp Exp $
|
|
2 #
|
|
3 # BioPerl module for Bio::UpdateableSeqI
|
|
4 #
|
|
5 # Cared for by David Block <dblock@gene.pbi.nrc.ca>
|
|
6 #
|
|
7 # Copyright David Block
|
|
8 #
|
|
9 # You may distribute this module under the same terms as perl itself
|
|
10
|
|
11 # POD documentation - main docs before the code
|
|
12
|
|
13 =head1 NAME
|
|
14
|
|
15 Bio::UpdateableSeqI - Descendant of Bio::SeqI that allows updates
|
|
16
|
|
17 =head1 SYNOPSIS
|
|
18
|
|
19 See Bio::SeqI for most of the documentation.
|
|
20 See the documentation of the methods for further details.
|
|
21
|
|
22 =head1 DESCRIPTION
|
|
23
|
|
24 Bio::UpdateableSeqI is an interface for Sequence objects which are
|
|
25 expected to allow users to perform basic editing functions (update/delete)
|
|
26 on their component SeqFeatures.
|
|
27
|
|
28 =head1 FEEDBACK
|
|
29
|
|
30 =head2 Mailing Lists
|
|
31
|
|
32 User feedback is an integral part of the evolution of this and other
|
|
33 Bioperl modules. Send your comments and suggestions preferably to
|
|
34 the Bioperl mailing list. Your participation is much appreciated.
|
|
35
|
|
36 bioperl-l@bioperl.org - General discussion
|
|
37 http://bioperl.org/MailList.shtml - About the mailing lists
|
|
38
|
|
39 =head2 Reporting Bugs
|
|
40
|
|
41 Report bugs to the Bioperl bug tracking system to help us keep track
|
|
42 of the bugs and their resolution. Bug reports can be submitted via
|
|
43 email or the web:
|
|
44
|
|
45 bioperl-bugs@bioperl.org
|
|
46 http://bugzilla.bioperl.org/
|
|
47
|
|
48 =head1 AUTHOR - David Block
|
|
49
|
|
50 Email dblock@gene.pbi.nrc.ca
|
|
51
|
|
52 =head1 CONTRIBUTORS
|
|
53
|
|
54 Ewan Birney forced me to this...
|
|
55
|
|
56 =head1 APPENDIX
|
|
57
|
|
58 The rest of the documentation details each of the object methods.
|
|
59 Internal methods are usually preceded with a _
|
|
60
|
|
61 =cut
|
|
62
|
|
63
|
|
64 # Let the code begin...
|
|
65
|
|
66
|
|
67 package Bio::UpdateableSeqI;
|
|
68 use vars qw(@ISA);
|
|
69 use strict;
|
|
70 use Carp;
|
|
71
|
|
72 # Object preamble - inherits from Bio::Root::Root
|
|
73
|
|
74 use Bio::SeqI;
|
|
75
|
|
76
|
|
77 @ISA = qw(Bio::SeqI);
|
|
78
|
|
79
|
|
80 =head2 delete_feature
|
|
81
|
|
82 Title : delete_feature
|
|
83 Usage : my $orphanlist=$self->delete_feature($feature,$transcript,$gene);
|
|
84 Function: deletes the specified $feature from the given transcript, if $transcript is sent and exists and $feature is a feature of $transcript,
|
|
85 or from $gene if the $feature is a feature of $gene, or from $self if $transcript and $gene are not sent. Keeps track of the features
|
|
86 of the $gene object that may be left as orphans and returns them as a listref.
|
|
87 Example : I want to delete transcript 'abc' of gene 'def', with three exons, leaving only transcript 'ghi' with two exons.
|
|
88 This will leave exons 1 and 3 part of 'ghi', but exon 2 will become an orphan.
|
|
89 my $orphanlist=$seq->delete_feature($transcript{'abc'},undef,$gene{'def'});
|
|
90 $orphanlist is a reference to a list containing $exon{'2'};
|
|
91 Returns : a listref of orphaned features after the deletion of $feature (optional)
|
|
92 Args : $feature - the feature to be deleted
|
|
93 $transcript - the transcript containing the $feature, so that a $feature can be removed from only one transcript when there are multiple
|
|
94 transcripts in a gene.
|
|
95 $gene - the gene containing the $transcript and/or the $feature
|
|
96
|
|
97
|
|
98 =cut
|
|
99
|
|
100 sub delete_feature{
|
|
101 my ($self,$feature,$transcript,$gene) = @_;
|
|
102
|
|
103 $self->throw_not_implemented();
|
|
104 }
|
|
105
|
|
106
|
|
107 1;
|