From 969ed9757c04af3f001f99c5fa49331f2eee1f1c Mon Sep 17 00:00:00 2001 From: Graham McVicker <mcvicker@sanger.ac.uk> Date: Wed, 9 Jul 2003 11:15:46 +0000 Subject: [PATCH] use display_id instead of primary id for xrefs added mRNA to feature table CDS is now actually CDS when there is UTR pseudogenes dump as misc_RNA instead of as CDS --- modules/Bio/EnsEMBL/Utils/SeqDumper.pm | 49 ++++++++++++++++++-------- 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/modules/Bio/EnsEMBL/Utils/SeqDumper.pm b/modules/Bio/EnsEMBL/Utils/SeqDumper.pm index dc608e5b0a..557b7f81c4 100644 --- a/modules/Bio/EnsEMBL/Utils/SeqDumper.pm +++ b/modules/Bio/EnsEMBL/Utils/SeqDumper.pm @@ -620,22 +620,41 @@ sub _dump_feature_table { foreach my $gene (@{$gene_slice->get_all_Genes}) { foreach my $transcript (@{$gene->get_all_Transcripts}) { my $translation = $transcript->translation; - $value = $self->features2location($transcript->get_all_Exons); - $self->write(@ff,'CDS', $value); - $self->write(@ff,'' , '/gene="'.$gene->stable_id().'"'); - $translation && - $self->write(@ff,'', '/protein_id="'.$translation->stable_id().'"'); - $self->write(@ff,'' - ,'/note="transcript_id='.$transcript->stable_id().'"'); - - foreach my $dbl (@{$transcript->get_all_DBLinks}) { - $value = '/db_xref="'.$dbl->dbname().':'.$dbl->primary_id().'"'; - $self->write(@ff, '', $value); - } - if($translation) { + + # normal transcripts get dumped differently than pseudogenes + if($translation) { + #normal transcript + $value = $self->features2location($transcript->get_all_Exons); + $self->write(@ff, 'mRNA', $value); + $self->write(@ff,'' , '/gene="'.$gene->stable_id().'"'); + + # ...and a CDS section + $value = + $self->features2location($transcript->get_all_translateable_Exons); + $self->write(@ff,'CDS', $value); + $self->write(@ff,'' , '/gene="'.$gene->stable_id().'"'); + $self->write(@ff,'', '/protein_id="'.$translation->stable_id().'"'); + $self->write(@ff,'' + ,'/note="transcript_id='.$transcript->stable_id().'"'); + + foreach my $dbl (@{$transcript->get_all_DBLinks}) { + $value = '/db_xref="'.$dbl->dbname().':'.$dbl->display_id().'"'; + $self->write(@ff, '', $value); + } + $value = '/translation="'.$transcript->translate()->seq().'"'; $self->write(@ff, '', $value); - } + } else { + #pseudogene + $value = $self->features2location($transcript->get_all_Exons); + $self->write(@ff, 'misc_RNA', $value); + $self->write(@ff,'' , '/gene="'.$gene->stable_id().'"'); + foreach my $dbl (@{$transcript->get_all_DBLinks}) { + $value = '/db_xref="'.$dbl->dbname().':'.$dbl->primary_id().'"'; + $self->write(@ff, '', $value); + } + $self->write(@ff,'' , '/note="pseudogene"'); + } } } @@ -660,7 +679,7 @@ sub _dump_feature_table { $self->write(@ff, 'mRNA', $self->features2location($exons)); $self->write(@ff, '', '/product="'.$transcript->translate()->seq().'"'); $self->write(@ff, '', '/note="Derived by automated computational' . - 'analysis using gene prediction method:' . + ' analysis using gene prediction method:' . $transcript->analysis->logic_name . '"'); } } -- GitLab