annotate dir_plugins/SubsetVCF.pm @ 10:f594c6bed58f draft default tip

Uploaded
author dvanzessen
date Tue, 21 Apr 2020 11:40:19 +0000
parents e545d0a25ffe
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
1 =head1 NAME
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
2
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
3 SubsetVCF
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
4
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
5 =head1 DESCRIPTION
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
6
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
7 A VEP plugin to retrieve overlapping records from a given VCF file.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
8 Values for POS, ID, and ALT, are retrieved as well as values for any requested
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
9 INFO field. Additionally, the allele number of the matching ALT is returned.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
10
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
11 Though similar to using '--custom', this plugin returns all ALTs for a given
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
12 POS, as well as all associated INFO values.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
13
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
14 By default, only VCF records with a filter value of "PASS" are returned,
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
15 however this behaviour can be changed via the 'filter' option.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
16
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
17 Parameters:
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
18 name: short name added used as a prefix (required)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
19 file: path to tabix-index vcf file (required)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
20 filter: only consider variants marked as 'PASS', 1 or 0 (default, 1)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
21 fields: info fields to be returned (default, not used)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
22 '%' can delimit multiple fields
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
23 '*' can be used as a wildcard
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
24
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
25 Returns:
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
26 <name>_POS: POS field from VCF
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
27 <name>_REF: REF field from VCF (minimised)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
28 <name>_ALT: ALT field from VCF (minimised)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
29 <name>_alt_index: Index of matching variant (zero-based)
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
30 <name>_<field>: List of requested info values
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
31
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
32 =head1 SYNOPSIS
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
33
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
34 ./vep -i variations.vcf --plugin SubsetVCF,file=filepath.vcf.gz,name=myvfc,fields=AC*%AN*
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
35
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
36 =head1 CONTACT
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
37
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
38 Joseph A. Prinz <jp102@duke.edu>
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
39
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
40 =head1 LICENSE
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
41
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
42 Licensed under the Apache License, Version 2.0 (the "License");
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
43 you may not use this file except in compliance with the License.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
44 You may obtain a copy of the License at
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
45 http://www.apache.org/licenses/LICENSE-2.0
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
46 Unless required by applicable law or agreed to in writing, software
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
47 distributed under the License is distributed on an "AS IS" BASIS,
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
48 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
49 See the License for the specific language governing permissions and
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
50 limitations under the License.
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
51
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
52 =cut
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
53
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
54 package SubsetVCF;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
55
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
56 use strict;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
57 use warnings;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
58
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
59 use Storable qw(dclone);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
60 use Data::Dumper;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
61
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
62 use Bio::EnsEMBL::Utils::Sequence qw(reverse_comp);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
63 use Bio::EnsEMBL::Variation::Utils::Sequence qw(get_matched_variant_alleles);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
64 use Bio::EnsEMBL::Variation::Utils::VEP qw(parse_line get_all_consequences);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
65 use Bio::EnsEMBL::Variation::Utils::BaseVepTabixPlugin;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
66 use base qw(Bio::EnsEMBL::Variation::Utils::BaseVepTabixPlugin);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
67
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
68 sub simple_vf {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
69 my ($vf, $params) = @_;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
70 my @alleles = split /\//, $vf->{allele_string};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
71 my $ref = shift @alleles;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
72
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
73 my @line;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
74 if (ref $vf->{_line} ne "ARRAY") {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
75 @line = split /\t/, $vf->{_line};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
76 } else {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
77 @line = @{$vf->{_line}};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
78 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
79
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
80 # Use a particular allele if requested
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
81 @alleles = ($params->{allele}) if $params->{allele};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
82
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
83 # Reverse comp if needed
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
84 if ($vf->{strand} < 0) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
85 @alleles = map { reverse_comp($_) } @alleles;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
86 $ref = reverse_comp($ref);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
87 $vf->{strand} = 1;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
88 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
89
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
90 # Return values
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
91 my $ret = {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
92 chr => $vf->{chr},
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
93 pos => $vf->{start},
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
94 start => $vf->{start},
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
95 end => $vf->{end},
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
96 strand => $vf->{strand},
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
97 alts => [@alleles],
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
98 line => [@line],
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
99 ref => $ref};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
100
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
101 # If filter is true, only return $ret if filter eq "PASS"
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
102 return $params->{filter} && $line[6] ne "PASS" ? {} : $ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
103 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
104
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
105 sub parse_info {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
106 my ($line, $valid_fields) = @_;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
107 my %ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
108 for my $dat (split /;/, $line->[7]) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
109 my ($field, $val) = split /=/, $dat;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
110 if (grep { $field eq $_ } @$valid_fields) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
111 $ret{$field} = [split /,/, $val];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
112 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
113 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
114 return \%ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
115 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
116
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
117 sub new {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
118 my $class = shift;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
119 my $self = $class->SUPER::new(@_);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
120
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
121 $self->expand_left(0);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
122 $self->expand_right(0);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
123 $self->get_user_params();
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
124
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
125 # Get params and ensure a minumum number of parameters
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
126 my $params = $self->params_to_hash();
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
127 die "ERROR: no value for 'file' specified" if !$params->{file};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
128 die "ERROR: no value for 'name' specified" if !$params->{name};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
129
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
130 # Defaults
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
131 $params->{filter} = 1 if !$params->{filter};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
132
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
133 # Add file via parameter hash
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
134 $self->add_file($params->{file});
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
135 $self->{filter} = $params->{filter};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
136 $self->{name} = $params->{name};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
137
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
138 if ($params->{fields}) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
139 # Mung filter to turn AC*%AN* into AC[^,]+|AN[^,]+
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
140 $params->{fields} =~ s/%/|/g;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
141 $params->{fields} =~ s/\*/[^,]*/g;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
142
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
143 # Get input file headers
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
144 my %fields;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
145 my $info_regex = "^##INFO=<ID=($params->{fields}),.*Description=\"([^\"]+).*";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
146 open HEAD, "tabix -fh $params->{file} 1:1-1 2>&1 | ";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
147 while(my $line = <HEAD>) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
148 next unless $line =~ $info_regex;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
149 $fields{$1} = $2;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
150 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
151 die "Could not find any valid info fields" if not %fields;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
152 $self->{fields} = \%fields;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
153 $self->{valid_fields} = [keys %fields];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
154 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
155 return $self;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
156 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
157
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
158 sub feature_types {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
159 return ['Feature', 'Intergenic'];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
160 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
161
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
162 sub get_header_info {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
163 my $self = shift;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
164 my %ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
165
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
166 # Add fields if requested
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
167 if ($self->{fields}) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
168 while (my ($field, $desc) = each %{$self->{fields}}) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
169 $ret{"$self->{name}_$field"} = $desc;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
170 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
171 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
172
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
173 $ret{"$self->{name}_ID"} = "Original ID";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
174 $ret{"$self->{name}_POS"} = "Original POS";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
175 $ret{"$self->{name}_REF"} = "Original refrance allele";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
176 $ret{"$self->{name}_ALT"} = "Original alternatives as they appear in the VCF file";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
177 $ret{"$self->{name}_alt_index"} = "Index of matching alternative (zero-based)";
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
178 return \%ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
179 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
180
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
181 sub parse_data {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
182 my ($self, $line) = @_;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
183 my ($vf) = @{parse_line({format => 'vcf', minimal => 1}, $line)};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
184 return simple_vf($vf, {filter => $self->{filter}});
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
185 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
186
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
187 sub run {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
188 my ($self, $tva) = @_;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
189 my $vf = simple_vf($tva->variation_feature, {allele => $tva->{variation_feature_seq}});
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
190
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
191 # Zero-indexing start for tabix and adding 1 to end for VEP indels
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
192 my @data = @{$self->get_data($vf->{chr}, ($vf->{start} - 1), ($vf->{end} + 1))};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
193
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
194 my (%ret, $found_vf, @matches);
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
195 for my $dat (@data) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
196 next unless %$dat;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
197 @matches = @{get_matched_variant_alleles($vf, $dat)};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
198 if (@matches) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
199 $found_vf = dclone $dat;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
200 last;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
201 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
202 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
203
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
204 if (@matches) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
205 # Return the index of matching found alleles
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
206 my @found_alts = map { $_->{b_index} } @matches;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
207
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
208 # Parse info fields if needed
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
209 if ($self->{fields}) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
210 my %found_fields = %{parse_info($found_vf->{line}, $self->{valid_fields})};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
211 while (my ($field, $val) = each %found_fields) {
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
212 $ret{"$self->{name}_$field"} = [@$val];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
213 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
214 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
215
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
216 $ret{"$self->{name}_ID"} = $found_vf->{line}->[2];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
217 $ret{"$self->{name}_POS"} = $found_vf->{pos};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
218 $ret{"$self->{name}_POS"} = $found_vf->{pos};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
219 $ret{"$self->{name}_REF"} = $found_vf->{ref};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
220 $ret{"$self->{name}_ALT"} = $found_vf->{alts};
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
221 $ret{"$self->{name}_alt_index"} = [@found_alts];
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
222 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
223 return \%ret;
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
224 }
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
225
e545d0a25ffe Uploaded
dvanzessen
parents:
diff changeset
226 1;