annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Parsers/biotiffin.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2011 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <ensembl-dev@ebi.ac.uk>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 package Bio::EnsEMBL::Funcgen::Parsers::biotiffin;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 use File::Basename;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 # To get files for bioTIFFIN, download the following GFF file (e.g. via wget):
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 # http://td-blade.gurdon.cam.ac.uk/tad26/fly-tiffinScan-tiffin12.dm3.gff.gz
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 # Thomas Down <thomas.down@gurdon.cam.ac.uk>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 # 3R MotifScanner TIFDMEM0000001 936391 936401 0.0 + 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 # 3R MotifScanner TIFDMEM0000001 13455911 13455921 0.0 - 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 # 3R MotifScanner TIFDMEM0000001 17062830 17062840 0.0 + 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 use Bio::EnsEMBL::Funcgen::Parsers::BaseExternalParser;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 use Bio::EnsEMBL::DBEntry;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 use Bio::EnsEMBL::Funcgen::ExternalFeature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 use Bio::EnsEMBL::Utils::Exception qw( throw );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 @ISA = qw(Bio::EnsEMBL::Funcgen::Parsers::BaseExternalParser);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 my $self = $class->SUPER::new(@_, type => 'BioTiffin');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 #Set default feature_type and feature_set config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 #We need to capture version/release/data of external feature sets.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 #This can be nested in the description? Need to add description to feature_set?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 $self->{static_config}{feature_types} =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 'BioTIFFIN Motif' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 name => 'BioTIFFIN Motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 class => 'Regulatory Motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 description => 'BioTIFFIN motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 $self->{static_config}{analyses} =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 'BioTIFFIN Motif' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 -logic_name => 'BioTIFFIN Motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 -description => 'BioTIFFIN regulatory motif database',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 -display_label => 'BioTIFFIN motifs',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 -displayable => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 $self->{static_config}{feature_sets} =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 'BioTIFFIN Motif' =>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 feature_set => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 -feature_type => 'BioTIFFIN Motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 -analysis => 'BioTIFFIN Motif',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 xrefs => 0,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 #Move xref flag here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 $self->{config} = {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 'BioTIFFIN Motif' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 file => $ENV{'EFG_DATA'}.'/input/BioTIFFIN/fly-tiffinScan-tiffin12.dm3.gff',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 gff_attrs => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 'ID' => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 $self->validate_and_store_config([keys %{$self->{static_config}{feature_sets}}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 $self->set_feature_sets;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 # Parse file and return hashref containing:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 # - arrayref of features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 # - arrayref of factors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 sub parse_and_load {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 my ($self, $files, $old_assembly, $new_assembly) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 if(scalar(@$files) != 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 throw('You must provide a unique file path to load VISTA features from:\t'.join(' ', @$files));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 my %slice_cache;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 my $extf_adaptor = $self->db->get_ExternalFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 my $dbentry_adaptor = $self->db->get_DBEntryAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 my $ftype_adaptor = $self->db->get_FeatureTypeAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 # this object is only used for projection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 my $dummy_analysis = new Bio::EnsEMBL::Analysis(-logic_name => 'BioTIFFINProjection');#do we need this?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 my $species = $self->db->species;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 if(! $species){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 throw('Must define a species to define the external_db');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 #Just to make sure we hav homo_sapiens and not Homo Sapiens
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 ($species = lc($species)) =~ s/ /_/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 if(scalar @{$self->import_sets} != 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 throw('biotiffin parser currently only supports one import FeatureSet');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 my ($import_set) = @{$self->import_sets};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 #foreach my $import_set(@{$self->import_sets}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 $self->log_header("Parsing $import_set data");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 my %motif_cache; # name -> factor_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 my $config = $self->{'config'}{$import_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 my $fset = $self->{static_config}{feature_sets}{$import_set}{feature_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 my %gff_attrs = %{$config->{'gff_attrs'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 # Parse motifs.txt file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 #my $file = $config->{'file'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 my $file = $files->[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 my $skipped = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 my $motif_cnt = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 my $factor_xref_cnt = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 my $feature_cnt = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 my $feature_target_cnt = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 open (FILE, "<$file") || die("Can't open $file\n$!\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 LINE: while (my $line = <FILE>) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 chomp $line;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 #GFF3
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 #3R MotifScanner TIFDMEM0000001 936391 936401 0.0 + 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 #3R MotifScanner TIFDMEM0000001 13455911 13455921 0.0 - 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 #3R MotifScanner TIFDMEM0000001 17062830 17062840 0.0 + 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 #3R MotifScanner TIFDMEM0000001 17973965 17973975 0.0 + 0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 #seq_name, source, feature, start, end, score, strand, frame, [attrs]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my ($chromosome, $program, $feature, $start, $end, $score, $strand, undef) = split /\t/o, $line;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 if(! exists $slice_cache{$chromosome}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 if($old_assembly){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 $slice_cache{$chromosome} = $self->slice_adaptor->fetch_by_region('chromosome',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 $chromosome,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 $old_assembly);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 $slice_cache{$chromosome} = $self->slice_adaptor->fetch_by_region('chromosome', $chromosome);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 if(! defined $slice_cache{$chromosome}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 warn "Can't get slice $chromosome for motif $feature;\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 $skipped++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 if(! exists $motif_cache{$feature}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 $motif_cache{$feature} = $ftype_adaptor->fetch_by_name($feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 if(! defined $motif_cache{$feature}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 ($motif_cache{$feature}) = @{$ftype_adaptor->store(Bio::EnsEMBL::Funcgen::FeatureType->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 -name => $feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 -class => $fset->feature_type->class,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 -description => $fset->feature_type->description,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 ))};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 $motif_cnt ++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 my $feature_type = $motif_cache{$feature};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 #Now build actual feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 $feature = Bio::EnsEMBL::Funcgen::ExternalFeature->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 -display_label => $feature,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 -start => $start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 -end => $end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 -strand => (($strand eq '+') ? 1 : -1),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 -feature_type => $feature_type,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 -feature_set => $fset,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 -slice => $slice_cache{$chromosome},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 # project if necessary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 if ($new_assembly) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 $feature = $self->project_feature($feature, $new_assembly);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 if(! defined $feature){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 $skipped ++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 ($feature) = @{$extf_adaptor->store($feature)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 $feature_cnt++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 close FILE;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 $self->log("Loaded ".$fset->name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 $self->log("$motif_cnt feature types");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $self->log("$feature_cnt features");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 $self->log("Skipped $skipped features");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 1;