<div dir="ltr">I think perhaps you haven't enabled --check_existing; this is required for $vf->{existing} to get populated.<br><div><br></div><div>You can force it on in the new() method of your plugin:</div><div><br></div><div>$self->{config}->{check_existing} = 1;</div><div><br></div><div>It then works for me on release/75 and release/79.</div><div><br></div><div>Will</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 25 March 2015 at 17:35, Guillermo Marco Puche <span dir="ltr"><<a href="mailto:guillermo.marco@sistemasgenomicos.com" target="_blank">guillermo.marco@sistemasgenomicos.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000066" bgcolor="#FFFFFF">
Hello Will,<br>
<br>
With your explanations I'm trying to call phenotype (as you said I
was accessing the hashref directly).<br>
I'm using input set you linked. However my local Ensembl
installation is v75.<br>
<br>
This is the code of the plugin:<br>
<a href="https://github.com/guillermomarco/vep/blob/master/Clinvar.pm" target="_blank">https://github.com/guillermomarco/vep/blob/master/Clinvar.pm</a><br>
<br>
I'm getting absolutelty no info nor errors. I've no idea if this is
an issue with my database/API version or with the plugin code
itself.<br>
<br>
Regards,<br>
Guillermo.<div><div class="h5"><br>
<br>
<br>
<div>On 16/03/15 17:50, Will McLaren wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">The "is_significant" field is an internal flag that
doesn't necessarily have the meaning you expect; it is used to
distinguish between genuine reported associations and e.g.
non-significant associations reported from genome-wide studies.
<div><br>
</div>
<div>You should not see undef for phenotype; I suspect you are
accessing the hashref directly ($pf->{phenotype}) rather
than making the method call ($pf->phenotype()).</div>
<div><br>
</div>
<div>You could try <a href="ftp://ftp.ensembl.org/pub/release-79/variation/vcf/homo_sapiens/Homo_sapiens_clinically_associated.vcf.gz" target="_blank">ftp://ftp.ensembl.org/pub/release-79/variation/vcf/homo_sapiens/Homo_sapiens_clinically_associated.vcf.gz</a>
as a test input set.</div>
<div><br>
</div>
<div>Will</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 16 March 2015 at 16:39, Guillermo
Marco Puche <span dir="ltr"><<a href="mailto:guillermo.marco@sistemasgenomicos.com" target="_blank">guillermo.marco@sistemasgenomicos.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote">
<div> Hi Will,<br>
<br>
Thank you for your quick response! Very clarifying.<br>
<br>
I guess that the way to retrieve ClinVar data I posted is
correct. With my test dataset I've only seen
"is_significant" values of "1" and undef 'phenotype'
values. I think I need a synthetic vcf with ClinVar
annotation variants to very that the plugin is working.<br>
<br>
I've been looking on Ensembl website for a test dataset. I
think you don't provide any right? Correct me if I'm
wrong.<br>
<br>
Thanks!<br>
<br>
Regards,<br>
Guillermo.
<div>
<div><br>
<br>
<div>On 16/03/15 16:16, Will McLaren wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Guillermo,
<div><br>
</div>
<div>To get the rest of that data in the table you
need to access the additional attributes of the
PhenotypeFeature object, something like:</div>
<div><br>
</div>
<div>my $attr =
$pfs->[0]->get_all_attributes;<br>
</div>
<div>print "$_:".$attr->{$_}."\t" for keys
%$attr;</div>
<div>print "\n;</div>
<div><br>
</div>
<div>Regards</div>
<div><br>
</div>
<div>Will</div>
<div><br>
</div>
<div>More info: the reason these data are stored
as attributes is due to the diverse data sources
and types that we import into our phenotype
schema; to create a database column and
corresponding API method for each data type
(p-value, review status, risk allele, external
ID etc etc) would be cumbersome and inefficient.
To this end we provide a few methods that
shortcut the attribute approach for the most
common data types; everything else must be
accessed through the attributes method. This is
a common theme across the Ensembl API.</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 13 March 2015 at
12:03, Guillermo Marco Puche <span dir="ltr"><<a href="mailto:guillermo.marco@sistemasgenomicos.com" target="_blank">guillermo.marco@sistemasgenomicos.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote">
<div> Hi,<br>
<br>
I'm trying to retrieve ClinVar information
with the code example you provided.<span><br>
<br>
my $self = shift;<br>
my $tva = shift;<br>
my $vf = $tva->variation_feature;<br>
my $pfa =
$self->{config}->{reg}->get_adaptor('human','variation','phenotypefeature');<br>
<br>
foreach my
$known_var(@{$vf->{existing} || []}) {<br>
foreach my
$pf(@{$pfa->fetch_all_by_object_id($known_var->{variation_name})})
{<br>
</span> if ($pf->{'source'}
eq "dbSNP_ClinVar"){<br>
print
"$pf->{'source'}\t$pf->{'external_id'}\t$pf->{'is_significant'}\t$pf->{'phenotype'}\n",
;<br>
}<br>
}<br>
}<br>
<br>
As you can see I'm "filtering" the results
to only output phenotype feature when source
is dbSNP_ClinVar. I don't know why but I
guess filtering should be done when doing
the "fetch_all".<br>
<br>
On the other hand I'm trying to retrieve
Disease, Source and Clinical Significance
from this example table: <a href="http://www.ensembl.org/Homo_sapiens/Variation/Phenotype?db=core;r=8:19955518-19956518;v=rs268;vdb=variation;vf=266" target="_blank">http://www.ensembl.org/Homo_sapiens/Variation/Phenotype?db=core;r=8:19955518-19956518;v=rs268;vdb=variation;vf=266</a><br>
<br>
I think I'm doing something wrong I got
totally lost in Phenotypefeature.<br>
<br>
Regards,<br>
Guillermo.
<div>
<div><br>
<br>
<div>On 02/03/15 16:05, Will McLaren
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">If you enable the
--check_existing flag when you run
the VEP, you'll be able to see any
known co-located variants attached
to the VariationFeature object in
your plugin:
<div><br>
</div>
<div>sub run {</div>
my $self = shift;
<div> my $tva = shift;</div>
<div> my $vf =
$tva->variation_feature;</div>
<div><br>
</div>
<div> foreach my
$known_var(@{$vf->{existing} ||
[]}) {</div>
<div> # do stuff</div>
<div> }</div>
<div>}</div>
<div><br>
</div>
<div>The $known_var is not an API
object but a simple hashref with a
number of fields; you're probably
interested in
$known_var->{clin_sig}</div>
<div><br>
</div>
<div>However, as I mentioned, this
is the only data that is stored in
the cache. To access the rating
and the specific disease
association, you'll need to make
calls to the database by getting
an adaptor, something like:</div>
<div><br>
</div>
<div>
<div>sub run {</div>
<div> my $self = shift;</div>
<div> my $tva = shift;</div>
<div> my $vf =
$tva->variation_feature;</div>
<div> my $pfa =
$self->{config}->{reg}->get_adaptor('human','variation','phenotypefeature');</div>
<div><br>
</div>
<div> foreach my
$known_var(@{$vf->{existing}
|| []}) {</div>
<div> foreach my
$pf(@{$pfa->fetch_all_by_object_id($known_var->{variation_name})})
{</div>
<div> # do stuff</div>
<div> }</div>
<div> }</div>
<div>}</div>
</div>
<div><br>
</div>
<div>Be aware that this will access
the database, so unless you have a
local copy please don't run this
sort of code on genome-wide VCFs
using our public DB server.</div>
<div><br>
</div>
<div>Regards</div>
<div><br>
</div>
<div>Will</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 2 March
2015 at 14:47, Guillermo Marco
Puche <span dir="ltr"><<a href="mailto:guillermo.marco@sistemasgenomicos.com" target="_blank">guillermo.marco@sistemasgenomicos.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote">
<div> Hi Will,<br>
<br>
Indeed I'm looking to retrieve
this information from VEP
plugin.<br>
<br>
Regards,<br>
Guillermo.
<div>
<div><br>
<br>
<div>On 02/03/15 15:25,
Will McLaren wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi
Guillermo,
<div><br>
</div>
<div>The detailed
ClinVar information
is stored against
PhenotypeFeature
objects (each
SNP/disease pairing
gets its own entry
in ClinVar, e.g. <a href="http://www.ncbi.nlm.nih.gov/clinvar/RCV000019691.2" target="_blank">http://www.ncbi.nlm.nih.gov/clinvar/RCV000019691.2</a>, <a href="http://www.ncbi.nlm.nih.gov/clinvar/RCV000019692.2/" target="_blank">http://www.ncbi.nlm.nih.gov/clinvar/RCV000019692.2/</a>, <a href="http://www.ncbi.nlm.nih.gov/clinvar/RCV000019693.2/" target="_blank">http://www.ncbi.nlm.nih.gov/clinvar/RCV000019693.2/</a>
for rs699).</div>
<div><br>
</div>
<div>The rating (and
indeed the clinical
significance) is
stored as an
attribute on the
PhenotypeFeature
object; you can
retrieve this with
the
get_all_attributes()
method.</div>
<div><br>
</div>
<div>See <a href="http://www.ensembl.org/info/docs/Doxygen/variation-api/classBio_1_1EnsEMBL_1_1Variation_1_1PhenotypeFeature.html" target="_blank">http://www.ensembl.org/info/docs/Doxygen/variation-api/classBio_1_1EnsEMBL_1_1Variation_1_1PhenotypeFeature.html</a>
and <a href="http://www.ensembl.org/info/docs/api/variation/variation_tutorial.html#phenotype" target="_blank">http://www.ensembl.org/info/docs/api/variation/variation_tutorial.html#phenotype</a>
for more info.</div>
<div><br>
</div>
<div><span>Bio::EnsEMBL::Variation::</span><span>Utils::VEP::get_clin_sig()
is an internal
method that you
should not use.</span></div>
<div><span><br>
</span></div>
<div><span>The VEP
cache contains the
list of clinical
significance
states for each
variant, but
neither the
disease
association or the
rating. If you
want help getting
access to this
data via a plugin,
let me know as
it's a little more
involved than the
API methods above
(though it is
faster as no
database access is
required).</span><br>
</div>
<div><br>
</div>
<div>Regards</div>
<div><br>
</div>
<div>Will McLaren</div>
<div>Ensembl Variation</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On
2 March 2015 at
14:06, Guillermo
Marco Puche <span dir="ltr"><<a href="mailto:guillermo.marco@sistemasgenomicos.com" target="_blank">guillermo.marco@sistemasgenomicos.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote">
<div> Dear devs,<br>
<br>
I'm looking
forward to
retrieve ClinVar
information and
add it to VEP
annotation. From
my understanding
I should be able
to retrieve
"Clinical
significance"
and "ClinVar
Rating".<br>
<br>
I've been
looking the
Varation API,
and I'm
confused. I
guess for
significance I
should use
Bio::EnsEMBL::Variation::Utils::VEP::get_clin_sig()
or
Bio::EnsEMBL::Variation::VariationFeature::get_all_clinical_significance_states().<br>
<br>
What about
ClinVar rating?
Is it possible
to retrieve it
from API?<br>
<br>
Thanks!<br>
<br>
Regards,<br>
Guillermo.<br>
<br>
<br>
</div>
<br>
_______________________________________________<br>
Dev mailing list
<a href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a><br>
Posting guidelines
and
subscribe/unsubscribe
info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a><br>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Dev mailing list <a href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a><br>
Posting guidelines and subscribe/unsubscribe info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a><br>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Dev mailing list <a href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a>
Posting guidelines and subscribe/unsubscribe info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a>
</pre>
</blockquote>
</div></div></div>
<br>_______________________________________________<br>
Dev mailing list <a href="mailto:Dev@ensembl.org">Dev@ensembl.org</a><br>
Posting guidelines and subscribe/unsubscribe info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a><br>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a><br>
<br></blockquote></div><br></div>