annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Parsers/ArrayDesign.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 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 # EnsEMBL module for Bio::EnsEMBL::Funcgen::Parsers::ArrayDesign
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 Copyright (c) 1999-2011 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 developers list at <ensembl-dev@ebi.ac.uk>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 Bio::EnsEMBL::Funcgen::Parsers::ArrayDesign
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $parser_type = "Bio::EnsEMBL::Funcgen::Parsers::ArrayDesign";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 push @INC, $parser_type;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 my $imp = $class->SUPER::new(@_); my $imp = Bio::EnsEMBL::Funcgen::Importer->new(%params);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 $imp->set_config();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 This is a definitions class which should not be instatiated directly, it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 normally inherited from the Importer. ArrayDesign contains meta data and methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 specific to handling array designs only (i.e. no experimental data), which have
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 been produced from the eFG array design software.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 package Bio::EnsEMBL::Funcgen::Parsers::ArrayDesign;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 use Bio::EnsEMBL::Funcgen::Array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 use Bio::EnsEMBL::Funcgen::ProbeSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 use Bio::EnsEMBL::Funcgen::Probe;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 use Bio::EnsEMBL::Funcgen::ProbeFeature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 use Bio::EnsEMBL::Funcgen::FeatureType;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 use Bio::EnsEMBL::Funcgen::ExperimentalChip;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 use Bio::EnsEMBL::Funcgen::ArrayChip;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use Bio::EnsEMBL::Funcgen::Channel;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use Bio::EnsEMBL::Utils::Exception qw( throw warning deprecate );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 use Bio::EnsEMBL::Funcgen::Utils::EFGUtils qw(species_chr_num open_file);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use Bio::EnsEMBL::Funcgen::Utils::Helper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 @ISA = qw(Bio::EnsEMBL::Funcgen::Utils::Helper);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 Example : my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 Description: Constructor method for ArrayDesign class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 Returntype : Bio::EnsEMBL::Funcgen::Parsers::ArrayDesign
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Exceptions : throws if Experiment name not defined or if caller is not Importer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 Caller : Bio::EnsEMBL::Funcgen::Importer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 Status : at risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 sub new{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 my $self = $class->SUPER::new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 throw("This is a skeleton class for Bio::EnsEMBL::Importer, should not be used directly") if(! $self->isa("Bio::EnsEMBL::Funcgen::Importer"));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 $self->{'config'} =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 {(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 probe_data => ["probe"],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 prb_fields => ['SEQ_ID', 'POSITION', 'LENGTH', 'PROBE_SEQUENCE', 'PROBE_ID', 'UNIQUENESS_SCORE', 'TM', 'MAS_CYCLES'],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 notes_fields => ['DESIGN_ID', 'DESIGN_NAME', 'DESCRIPTION'],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 )};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 =head2 set_config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 Example : my $self->set_config;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Description: Sets attribute dependent config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Caller : Bio::EnsEMBL::Funcgen::Importer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 Status : at risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 sub set_config{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 #placeholder method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 #set paths
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 =head2 read_array_data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Example : $imp->read_array_data();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 Description: Parses NimbleGen style DesignNotes.txt format files to create and store new Arrays
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Status : At risk - Can this be generic? Can we force the creation of a DesignNotes file on other formats?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 #this is currently OLIGO specific.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 sub read_array_data{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 my ($self, $design_notes) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 $self->log("Reading and importing array data");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 throw('You need to pass the path to a DesignNotes.txt file') if ! defined $design_notes;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $self->{'design_notes'} = $design_notes;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 my ($line, $array, $array_chip, @data, %hpos);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 my $oa_adaptor = $self->db->get_ArrayAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 my $ac_adaptor = $self->db->get_ArrayChipAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 my $fh = open_file("<", $self->{'design_notes'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 while ($line = <$fh>){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 $line =~ s/\r*\n//;#chump
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 @data = split/\t/o, $line;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 #We need to have a DESIGN vendor type?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 #also need to be able to set file path independently of config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 if($. == 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 %hpos = %{$self->set_header_hash(\@data, $self->get_config('notes_fields'))};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 ### CREATE AND STORE Array and ArrayChips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 if(! defined $array ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 #This is treating each array chip as a separate array, unless arrayset is defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 #AT present we have no way of differentiating between different array_chips on same array???!!!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 #Need to add functionality afterwards to collate array_chips into single array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 #This will use a stored array if present
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 $array = Bio::EnsEMBL::Funcgen::Array->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 -NAME => $self->array_name() || $data[$hpos{'DESIGN_NAME'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 -FORMAT => uc($self->format()),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 -VENDOR => uc($self->vendor()),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 -TYPE => 'OLIGO',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 -DESCRIPTION => $data[$hpos{'DESCRIPTION'}],#need to trim the array chip specific description here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 ($array) = @{$oa_adaptor->store($array)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 $array_chip = Bio::EnsEMBL::Funcgen::ArrayChip->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 -ARRAY_ID => $array->dbID(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 -NAME => $data[$hpos{'DESIGN_NAME'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 -DESIGN_ID => $data[$hpos{'DESIGN_ID'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 #add description?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 #This will use a stored array_chip if present
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 ($array_chip) = @{$ac_adaptor->store($array_chip)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 $array->add_ArrayChip($array_chip);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 elsif((! $array->get_ArrayChip_by_design_id($data[$hpos{'DESIGN_ID'}])) && ($self->array_set())){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 $self->log("Generating new ArrayChip(".$data[$hpos{'DESIGN_NAME'}].". for same Array ".$array->name()."\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 $array_chip = Bio::EnsEMBL::Funcgen::ArrayChip->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 -ARRAY_ID => $array->dbID(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 -NAME => $data[$hpos{'DESIGN_NAME'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 -DESIGN_ID => $data[$hpos{'DESIGN_ID'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 ($array_chip) = @{$ac_adaptor->store($array_chip)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 $array->add_ArrayChip($array_chip);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 elsif(! $array->get_ArrayChip_by_design_id($data[$hpos{'DESIGN_ID'}])){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 throw("Found experiment with more than one design without -array_set");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 $self->add_Array($array);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 close($fh);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221
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 =head2 read_probe_data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 Example : $imp->read_probe_data();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 Description: Parses and imports probes, probe sets and features for a given array design
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 Exceptions : throws is not tiling format
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 Caller : Importer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 Status : at risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 #Assumes one chip_design per experimental set.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 sub read_probe_data{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 my ($self, $array_file) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 $self->log("Reading and importing probe data");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 my ($fh, $line, @data, @log, %hpos, %probe_pos);#, %duplicate_probes);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 my $aa = $self->db->get_AnalysisAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 my $manal = $aa->fetch_by_logic_name('MASCycles');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 my $uanal = $aa->fetch_by_logic_name('UScore');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 my $tmanal= $aa->fetch_by_logic_name('NimblegenTM');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 $array_file ||= $self->array_file();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $self->log("Parsing ".$self->vendor()." probe data (".localtime().")");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 throw("ArrayDesign only accomodates a tiling design with no feature/probesets") if ($self->format() ne 'TILED');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 ### Read in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 # eFG prb file, not chiip info yet so only one ArrayChip per design
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 # potential to have pos file here for probes built on generic slices of genome
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 #We need to handle different coord systems and possibly different assmemblies
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 my $slice_a = $self->db->get_SliceAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 my $cs = $self->db->get_FGCoordSystemAdaptor()->fetch_by_name_schema_build_version(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 'chromosome',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 $self->db->_get_schema_build($self->db->dnadb())
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 #sanity check we're only dealing with one array/chip
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 my @arrays = @{$self->arrays()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 if(scalar(@arrays) != 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 throw("Array DESIGN imports only accomodate one Array per import, please check ".$self->{'design_notes'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 my @achips = @{$arrays[0]->get_ArrayChips()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 if(scalar(@achips) != 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 throw("Array DESIGN imports only accomodates one ArrayChip per import, please check ".$self->{'design_notes'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 my $achip = $achips[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 #foreach my $array(@{$self->arrays()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 # foreach my $achip(@{$array->get_ArrayChips()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 $self->log("Importing array design(".$achip->name().") from ".$array_file);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 if($achip->has_status('IMPORTED')){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 $self->log("Skipping fully imported ArrayChip:\t".$achip->design_id());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 }elsif($self->recovery()){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 $self->log("Rolling back partially imported ArrayChip:\t".$achip->design_id());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 $self->db->rollback_ArrayChip([$achip]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 $self->log("Importing ArrayChip:".$achip->design_id());
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 #OPEN PROBE IN/OUT FILES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 $fh = open_file("<", $array_file);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 my $f_out = open_file(">", $self->get_dir("output")."/probe.".$achip->name()."fasta") if($self->{'_dump_fasta'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 my ($op, $of, %pfs);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 #should define mapping_method arg to allows this to be set to LiftOver/EnsemblMap
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 my $anal = $self->db->get_AnalysisAdaptor()->fetch_by_logic_name("TileMap");##???
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 my $strand = 0; #default for TileMap, should be config hash?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 my $fasta = "";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 while($line = <$fh>){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 $line =~ s/\r*\n//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 @data = split/\t/o, $line;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 my $loc = "";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 #SEQ_ID WINDOW_START WINDOW_END POSITION LENGTH PROBE_SEQUENCE TM UNIQUENESS_SCORE MAS_CYCLES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 #X 3000001 3000100 3000041 56 TGACATCTTCAGTTCTTTACATAGTTTTCATATTAGTCCTCTATCAGATGTGGAGT 73.09 132 15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 if ($. == 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 %hpos = %{$self->set_header_hash(\@data, $self->get_config('prb_fields'))};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 #This assumes tiling format with no feature/probe sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 if(%pfs){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 $self->store_set_probes_features($achip->dbID(), \%pfs);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 undef %pfs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 #PROBE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 $op = Bio::EnsEMBL::Funcgen::Probe->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 -NAME => $data[$hpos{'PROBE_ID'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 -LENGTH => $data[$hpos{'LENGTH'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 -ARRAY => $arrays[0],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 -ARRAY_CHIP_ID => $achip->dbID(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 -CLASS => 'DESIGN',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 $op->add_Analysis_score($manal, $data[$hpos{'MAS_CYCLES'}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 $op->add_Analysis_score($tmanal, $data[$hpos{'TM'}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 $op->add_Analysis_CoordSystem_score($uanal, $cs, $data[$hpos{'UNIQUENESS_SCORE'}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 #would need to pass cs to store USCORE, CYCLES and TM are seq/anal dependent not cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 #options:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 #associate cs dependent scores with features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 #we are duplicating cs in probe_design table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 #do we need another object? ProbeDesign
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 #-cs would be empty for all but uscore
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 #-mas_cycles analysis_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 #-uscore analysis_id cs_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 #-tm analysis_id (anal most likely wont change so highly redundant)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 #this would produce 3 records for each probe, with cs being empty for two and anal being redundant for the other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 #would however provide for extensible design attributes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 #would only need one tm and mas_cycles for each probe irrespective of cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 #could have separate table probe_design_feature?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 #mmm doesn't have location, just cs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 #just have empty cs fields, calls by cs would have to be in ('cs_id', 'NULL')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 #or just make uscore method dependent on cs.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 #or split table?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 #ProbeDesign::add_analysis_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 #ProbeDesign::add_coord_sys_analysis_score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 #can we add this directly to the probe?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 #separate retrieval in ProbeAdaptor so we're not joining everytime
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 #this would require generic get_analysis/analysis_coord_system_attribute method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 %{$pfs{$data[$hpos{'PROBE_ID'}]}} = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 probe => $op,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 features => [],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 #PROBE FEATURE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 if(! $self->cache_slice($data[$hpos{'SEQ_ID'}])){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 warn("Skipping non-standard probe chromosome");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 undef %pfs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 my $end = ($data[$hpos{'POSITION'}] + $data[$hpos{'LENGTH'}]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 if ($self->{'_dump_fasta'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 $loc .= $data[$hpos{'SEQ_ID'}].":".$data[$hpos{'POSITION'}]."-${end};";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 $of = Bio::EnsEMBL::Funcgen::ProbeFeature->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 -START => $data[$hpos{'POSITION'}],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 -END => $end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 -STRAND => $strand,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 -SLICE => $self->cache_slice($data[$hpos{'SEQ_ID'}]),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 -ANALYSIS => $anal,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 -MISMATCHCOUNT => 0,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 -CIGAR_LINE => $data[$hpos{'LENGTH'}].'M',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 -PROBE => undef,#Need to update this in the store method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 push @{$pfs{$data[$hpos{'PROBE_ID'}]}{'features'}}, $of;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 if($self->{'_dump_fasta'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 #filter controls/randoms? Or would it be sensible to see where they map
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 #wrap seq here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 $fasta .= ">".$data[$hpos{'PROBE_ID'}]."\t".$data[$hpos{'CHROMOSOME'}].
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 "\t$loc\n".$data[$hpos{'PROBE_SEQUENCE'}]."\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 #need to store last data here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 $self->store_set_probes_features($achip->dbID(), \%pfs);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 $self->log(join("\n", @log));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 $achip->adaptor->set_status("IMPORTED", $achip);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 $self->log("ArrayChip:\t".$achip->design_id()." has been IMPORTED");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 if ($self->{'_dump_fasta'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 print $f_out $fasta if($self->{'_dump_fasta'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 close($f_out);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 $self->log("Finished parsing probe data");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 #Total probe_sets:\t$psid\n".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 # "Total probes:\t$pid\nTotal probe_features:\t$fid");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 1;