annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Parsers/vista.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
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::vista;
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 # Parse data from LBL enhancers, see http://enhancer.lbl.gov/cgi-bin/imagedb.pl?show=1;search.result=yes;form=search;search.form=no;action=search;search.sequence=1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 # e.g.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 # >chr16:84987588-84988227 | element 1 | positive | neural tube[12/12] | hindbrain (rhombencephalon)[12/12] | limb[3/12] | cranial nerve[8/12]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 # AACTGAAGGGACCCCGTTAGCATAtaaacaaaaggtggggggtagccccgagcctcttct
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 # ctgacagccagtggcggcagtgatgaatttgtgaagttatctaattttccactgttttaa
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 # ttagagacttgggctctgaggcctcgcagctggcttctttgtgctgtattctgttgcctg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 # acagag
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 use Bio::EnsEMBL::Funcgen::Parsers::BaseExternalParser;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 use Bio::EnsEMBL::Utils::Exception qw( throw );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 @ISA = qw(Bio::EnsEMBL::Funcgen::Parsers::BaseExternalParser);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 my $self = $class->SUPER::new(@_, type => 'Vista');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 #Set default feature_type and feature_set config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 $self->{static_config}{feature_types} = {(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 'VISTA Target' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 -name => 'VISTA Target',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 -class => 'Search Region',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 -description => 'VISTA target region',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 'VISTA Enhancer' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 -name => 'VISTA Enhancer',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 -class => 'Enhancer',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 -description => 'Enhancer identified by positive VISTA assay',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 'VISTA Target - Negative' => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 -name => 'VISTA Target - Negative',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 -class => 'Search Region',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 -description => 'Enhancer negative region identified by VISTA assay',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 )};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 $self->{static_config}{analyses} = {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 VISTA => {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 -logic_name => 'VISTA',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 -description => 'VISTA Enhancer Assay (http://enhancer.lbl.gov/)',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 -display_label => 'VISTA',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 -displayable => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 #This is used as the entry point to store/validate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 #So all of the above needs to be referenced in here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 $self->{static_config}{feature_sets} = {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 'VISTA enhancer set' =>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 #Stored in this order
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 #Entries here are flexible
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 #Can be omited if defined in feature_set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 #top level analyses/feature_types definition required if no DB defaults available
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 #These can be a ref to the whole or subset of the top level analyses/feature_types hash
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 #A key with an empty hash or undef(with or without a matching key in the top level analyses/feature_types hash
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 #analyses => $self->{static_config}{analyses},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 feature_types => $self->{static_config}{feature_types},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 #feature_type and analysis values must be string key to top level hash
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 #This wont work for feature_types as they are not unique by name!!!!!!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 #This is why we have top level hash where we can define a unique compound key name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 feature_set =>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 -feature_type => 'VISTA Target',#feature_types config key name not object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 -display_label => 'VISTA Enhancers',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 -description => 'Experimentally validated enhancers',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 -analysis => 'VISTA',#analyses config key name not object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 #$self->validate_and_store_feature_types;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 $self->validate_and_store_config([keys %{$self->{static_config}{feature_sets}}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 $self->set_feature_sets;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 # Parse file and return hashref containing:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 # - arrayref of features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 # - arrayref of factors
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 sub parse_and_load{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 my ($self, $files, $old_assembly, $new_assembly) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 if(scalar(@$files) != 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 throw('You must provide a unique file path to load VISTA features from:\t'.join(' ', @$files));;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 my $file = $files->[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $self->log_header("Parsing and loading LBNL VISTA enhancer data from:\t$file");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 my $extfeat_adaptor = $self->db->get_ExternalFeatureAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 my $dummy_analysis = new Bio::EnsEMBL::Analysis(-logic_name => 'EnhancerProjection'); # this object is only used for projection
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 my $fset_config = $self->{static_config}{feature_sets}{'VISTA enhancer set'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 my $feature_positive = $fset_config->{'feature_types'}{'VISTA Enhancer'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 my $feature_negative = $fset_config->{'feature_types'}{'VISTA Target - Negative'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 my $set = $fset_config->{feature_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 use Bio::EnsEMBL::Registry;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my %id_prefixes = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 homo_sapiens => 'hs',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 mus_musculus => 'mm',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 my $species = Bio::EnsEMBL::Registry->get_alias($self->db->species);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 if( (! defined $species) ||
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 (! exists $id_prefixes{$species}) ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 throw("Failed to get a VISTA ID prefix for species alias:\t$species");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 $species = $id_prefixes{$species};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 ### Read file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 open (FILE, "<$file") || die "Can't open $file";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 my $cnt = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 my $skipped = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 while (<FILE>) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 next if ($_ !~ /^>/o); # only read headers
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 # OLD >chr16:84987588-84988227 | element 1 | positive | neural tube[12/12] | hindbrain (rhombencephalon)[12/12] | limb[3/12] | cranial nerve[8/12]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 # v66 >Mouse|chr12:112380949-112381824 | element 3 | positive | neural tube[4/4] | hindbrain (rhombencephalon)[4/4] | forebrain[4/4]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 #ID naming scheme change from LBNL-1 to hs1 or mm1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 #But the flat file and url use two different naming schemes!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 #VISTA URL is: where experiment id is element number and species_id 1 = human and 2 = mouse
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 #http://enhancer.lbl.gov/cgi-bin/imagedb3.pl?form=presentation&show=1&experiment_id=1&organism_id=1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 #Add links to cell_type for tissues in @expression_pattern?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 #This would be vista specific cell_type_annotation? Or we could just have associated_cell_type? (without annotation)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 #Just link for now
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my (undef, $coords, $element, $posneg, @expression_patterns) = split /\s*\|\s*/o;#was \s+
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 # parse co-ordinates & id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 my ($chr, $start, $end) = $coords =~ /chr([^:]+):(\d+)-(\d+)/o;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 my ($element_number) = $element =~ /\s*element\s*(\d+)/o;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 # seq_region ID and co-ordinates
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 my $chr_slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 if ($old_assembly) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 $chr_slice = $self->slice_adaptor->fetch_by_region('chromosome', $chr, undef, undef, undef, $old_assembly);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 $chr_slice = $self->slice_adaptor->fetch_by_region('chromosome', $chr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 if (!$chr_slice) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 warn "Can't get slice for chromosme $chr\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 my $seq_region_id = $chr_slice->get_seq_region_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 throw("Can't get seq_region_id for chromosome $chr") if (!$seq_region_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 # Assume these are all on the positive strand? Is this correct?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 my $strand = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 my $feature = Bio::EnsEMBL::Funcgen::ExternalFeature->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 -start => $start,#is this in UCSC coords?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 -end => $end, #is this in UCSC coords?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 -strand => $strand,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 -feature_type => $posneg eq 'positive' ? $feature_positive : $feature_negative,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 -slice => $self->slice_adaptor->fetch_by_region('chromosome', $chr, undef, undef, $strand, $old_assembly),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 -display_label => $species.$element_number,#"LBNL-$element_number",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 -feature_set => $set,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 # project if necessary
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 if ($new_assembly) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 $feature = $self->project_feature($feature, $dummy_analysis, $new_assembly);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 if(! defined $feature){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 $skipped ++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 $cnt ++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 $extfeat_adaptor->store($feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 close FILE;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 $self->log('Parsed '.($cnt+$skipped).' features');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 $self->log("Loaded $cnt features");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 $self->log("Skipped $skipped features");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 #Now set states
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 foreach my $status(qw(DISPLAYABLE MART_DISPLAYABLE)){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 $set->adaptor->store_status($status, $set);
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 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
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 1;