<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>