Hi all,
I don't have underlined the row 382 because it seems irrilevant (for me) and so I have forget it! Sorry. Thank you,
Vincenza



# store exon
my @exons = @{$transcript->get_all_Exons()};
my ($ontology_exon, $exon_start, $exon_end, $exon_strand);
unless ($transcript->translation){
foreach my $exon(@exons){
$exon_start = $exon->start;
$exon_end = $exon->end;
$exon_strand = $exon->strand;
$ontology_exon = $dbh->get_OntologyAdaptor->fetch_by_term('noncoding_exon');
$gene_region_obj = Bio::GeneFamilyDB::GeneRegion->new(-MEMBER => $member_obj,
bla bla bla
);
$dbh->get_GeneRegionAdaptor->store($gene_region_obj);
}
next;

}
foreach my $exon(@exons){
my ($gr_obj,$term);
my $exon_start = $exon->start;
my $exon_end = $exon->end;
my $exon_strand = $exon->strand;
my $ontology_exon;
my $coding_start = $transcript->coding_region_start;
my $coding_end = $transcript->coding_region_end;
my ($region_start, $region_end);
if ($exon_strand == 1){
if ($exon_start >= $coding_start && $exon_end <= $coding_end){
$term ='exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start <= $coding_start && $exon_end >= $coding_end){
$term ='exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start < $coding_start && $exon_end < $coding_end){
$term = 'five_prime_noncoding_exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
$region_start = $exon_start;
$region_end = $coding_start;
$term = 'five_prime_exon_noncoding_region';
$gr_obj = $self->_get_region_obj($term, $region_start, $region_end, $member_obj,$exon_strand);
push (@g_regions, $gr_obj);
}
elsif ($exon_start > $coding_start && $exon_end >$coding_end, $member_obj,$exon_strand){
$term = 'three_prime_noncoding_exon';
#print "TERM $term\n";
push (@g_regions, $gr_obj);
$region_start = $coding_end;
$region_end = $exon_end;
$term = 'three_prime_exon_noncoding_region';
#print "TERM $term\n";
$gr_obj = $self->_get_region_obj($term, $region_start, $region_end, $member_obj,$exon_strand);
push (@g_regions, $gr_obj);
}
elsif ($exon_start > $coding_end && $exon_end > $coding_end){
$term = 'three_prime_utr';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start < $coding_start && $exon_end < $coding_start){
$term = 'five_prime_utr';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
else{
# store utr generic
my @utrs = $self->_get_utrs($transcript);
unless (@utrs){next;}
foreach my $utr (@utrs){
my $utr_start = $utr->start;
my $utr_end = $utr->end;
my $utr_strand = $utr->strand;
my $ontology_utr = $dbh->get_OntologyAdaptor->fetch_by_term('utr');
#print "TERM utr\n";
$gene_region_obj = Bio::GeneFamilyDB::GeneRegion->new(-MEMBER => $member_obj,
-GR_START => $utr_start,
-GR_END => $utr_end,
-STRAND => $utr_strand,
-ONTOLOGY => $ontology_utr
);
my $gr_dbID = $dbh->get_GeneRegionAdaptor->store($gene_region_obj);
my $gr_obj = $dbh->get_GeneRegionAdaptor->fetch_by_dbID($gr_dbID);
push (@g_regions, $gr_obj);
}
#this is the line
382 }


} #if strand 1
elsif ($exon_strand == -1){
if ($exon_start >= $coding_start && $exon_end <= $coding_end){
$term ='exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start <= $coding_start && $exon_end >= $coding_end){
$term ='exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start < $coding_start && $exon_end < $coding_end){
$term = 'three_prime_noncoding_exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
$region_start = $exon_start;
$region_end = $coding_start;
$term = 'three_prime_exon_noncoding_region';
$gr_obj = $self->_get_region_obj($term, $region_start, $region_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);

}
elsif ($exon_start > $coding_start && $exon_end >$coding_end){
$term = 'five_prime_noncoding_exon';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
$region_start = $coding_end;
$region_end = $exon_end;
$term = 'five_prime_exon_noncoding_region';
$gr_obj = $self->_get_region_obj($term, $region_start, $region_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start > $coding_end && $exon_end > $coding_end){
$term = 'five_prime_utr';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
elsif ($exon_start < $coding_start && $exon_end < $coding_start){
$term = 'three_prime_utr';
$gr_obj = $self->_get_region_obj($term, $exon_start, $exon_end, $member_obj,$exon_strand);
#print "TERM $term\n";
push (@g_regions, $gr_obj);
}
else{
# store utr generic
my @utrs = $self->_get_utrs($transcript);
unless (@utrs){next;}
foreach my $utr (@utrs){
my $utr_start = $utr->start;
my $utr_end = $utr->end;
my $utr_strand = $utr->strand;
my $ontology_utr = $dbh->get_OntologyAdaptor->fetch_by_term('utr');
#print "TERM utr\n";
$gene_region_obj = Bio::GeneFamilyDB::GeneRegion->new(-MEMBER => $member_obj,
-GR_START => $utr_start,
-GR_END => $utr_end,
-STRAND => $utr_strand,
-ONTOLOGY => $ontology_utr
);
my $gr_dbID = $dbh->get_GeneRegionAdaptor->store($gene_region_obj);
my $gr_obj = $dbh->get_GeneRegionAdaptor->fetch_by_dbID($gr_dbID);
push (@g_regions, $gr_obj);
}
}
} # elsif strand -1
}# foreach exons

}#foreach transcript

return ([EMAIL PROTECTED]);
}


----------------------------------------------------------------------
Ph. D. student
SEMM (European School of Molecular Medicine)
Bioinformatics Code Project
Tigem (Telethon Institute of Genetics and Medicine)
Via Pietro Castellino 111
80131 Napoli, ITALY

Phone 39-081-613-23-39 (direct)
            39-329-321-05-55 (mobile)
Fax       39-081-560-98-77

Reply via email to