<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Carla,<br>
    <br>
    thank you for your reply. <br>
    <br>
    Yes, I'm actually interested more in the orthologs' CDS, sometimes
    also beyond their borders. The method you've mentioned was used
    actually to fetch all genes on a chromosome. Then after this, I'd
    then used the mentioned way to retrieve their genomic alignments. <br>
    <br>
    The example "homology2.pl" you've shown can be used to retrieve all
    ortholog pairs (esp. one-to-one's).  I saw this example before, but
    couldn't get it to retrieve their genomic sequences. Is there an
    access method in the object "Homology" to retrieve their genomic
    alignments (like what I've shown before), surrounding a certain
    region of a CDS? <br>
    <br>
    Best regards<br>
    <br>
    Yan<br>
     <br>
    <br>
    <div class="moz-cite-prefix">On 24/07/18 13:27, Carla Cummins wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:e2b42dd3-21ee-870e-7ea9-c81649947512@ebi.ac.uk">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <p>Hi Yan,</p>
      <p>Since LASTZ alignments are on the whole genome, it's important
        to note that genes may not be present on every part of the
        sequence. To see which gene(s) are on a given aligned sequence
        region, you can use:</p>
      <p>$genomic_align->get_Slice->get_all_Genes();</p>
      <p>However, at the end of the message, you mention homologies.
        Homologies and whole genome alignments are really separate
        objects in our system. Inference of homologies is performed on a
        gene tree level and are not directly related to the whole genome
        alignments (<a class="moz-txt-link-freetext"
          href="http://www.ensembl.org/info/genome/compara/homology_types.html"
          moz-do-not-send="true">http://www.ensembl.org/info/genome/compara/homology_types.html</a>).
        Can you confirm whether it is truly homologies that you are
        interested in, or whether you are simply using the term to refer
        to well-aligned regions (regardless of genes)? Here is a basic
        example of how to retrieve human/mouse homologies using our API:
        <a class="moz-txt-link-freetext"
href="https://www.ebi.ac.uk/%7Emuffato/workshops/2016_01_EBI/solutions_compara/homology2.pl"
          moz-do-not-send="true">https://www.ebi.ac.uk/~muffato/workshops/2016_01_EBI/solutions_compara/homology2.pl</a></p>
      <p>Finally, since it's clear that there is some relationship
        between homology and alignment (biologically speaking), we have
        a QC method for our homologies that tests the quality of the
        alignment over a pair of homologous genes (WGA score). This may
        be useful to you: <a class="moz-txt-link-freetext"
href="http://www.ensembl.org/info/genome/compara/Ortholog_qc_manual.html"
          moz-do-not-send="true">http://www.ensembl.org/info/genome/compara/Ortholog_qc_manual.html</a><br>
      </p>
      <p>Hope this helps?</p>
      <p>Best,</p>
      <p>Carla</p>
      <br>
      <div class="moz-cite-prefix">On 24/07/2018 12:00, Yan P. Yuan
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:c1ec5cb9-71d9-9358-db5c-2ff7c0b4c3c9@embl.de">
        <meta http-equiv="content-type" content="text/html;
          charset=utf-8">
        Hi,<br>
        <br>
        Currently, I'm interested in genomic aligments between 2
        species: homo sapience and mus musculus. <br>
        <br>
        If I use MethodLinkSpeciesSet-adaptor and
        GenomicAlignBlock-adaptor to fetch the genomic alignments, the
        output misses the corresponding gene names (or involved
        transcript names). <br>
        <br>
        Can someone point out how to get the gene names via the used
        methods? Or a different way to do it?<br>
        <br>
        Thanks a lot.<br>
        <br>
        Yan<br>
        <br>
        PS:<br>
        <br>
        The folllowing code was used:<br>
        <blockquote><tt>use strict;</tt><tt><br>
          </tt><tt>use warnings;</tt><tt><br>
          </tt><tt><br>
          </tt><tt>use Bio::EnsEMBL::Registry;</tt><tt><br>
          </tt><tt>use Bio::AlignIO;</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $reg = 'Bio::EnsEMBL::Registry';</tt><tt><br>
          </tt><tt><br>
          </tt><tt>$reg->load_registry_from_db(</tt><tt><br>
          </tt><tt>    -host=>'ensembldb.ensembl.org',</tt><tt><br>
          </tt><tt>    -port=>5306,</tt><tt><br>
          </tt><tt>    -user=>'anonymous', </tt><tt><br>
          </tt><tt>);</tt><tt><br>
          </tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $mlss_adaptor = $reg->get_adaptor("Multi",
            "compara", "MethodLinkSpeciesSet");</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $mlss         =
$mlss_adaptor->fetch_by_method_link_type_registry_aliases('LASTZ_NET',
            ['human', 'mouse']);</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $species_slice_adaptor       =
            $reg->get_adaptor("mouse", "core", "Slice");</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $genomic_align_block_adaptor =
            $reg->get_adaptor("Multi", "compara",
            "GenomicAlignBlock");</tt><tt><br>
          </tt><tt><br>
          </tt><tt># Define a region to fetch</tt><tt><br>
          </tt><tt>my ($species_start, $species_end) = (143702058,
            143702091);</tt><tt><br>
          </tt><tt>my $species_slice =
            $species_slice_adaptor->fetch_by_region("chromosome", 1,
            $species_start, $species_end, -1);</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $all_genomic_align_blocks =
$genomic_align_block_adaptor->fetch_all_by_MethodLinkSpeciesSet_Slice($mlss,
            $species_slice);</tt><tt><br>
          </tt><tt><br>
          </tt><tt>my $alignIO =
            Bio::AlignIO->newFh(-interleaved=>0,</tt><tt><br>
          </tt><tt>                  -fh=>\*STDOUT,</tt><tt><br>
          </tt><tt>                  -format=>'clustalw',</tt><tt><br>
          </tt><tt>                  -idlength=>20);</tt><tt><br>
          </tt><tt><br>
          </tt><tt># print the restricted alignments</tt><tt><br>
          </tt><tt>foreach my $genomic_align_block ( @{
            $all_genomic_align_blocks } ) {</tt><tt><br>
          </tt><tt>    my $restricted_gab =
$genomic_align_block->restrict_between_reference_positions($species_start,
            $species_end);</tt><tt><br>
          </tt><tt><br>
          </tt><tt>    foreach my $genomic_align ( @{
            $restricted_gab->get_all_GenomicAligns() } ) {</tt><tt><br>
          </tt><tt>        printf("%s %s:%d-%d:%s:%s\n",
            $genomic_align->genome_db->name,
            $genomic_align->dnafrag->name,  
            $genomic_align->dnafrag_start,
            $genomic_align->dnafrag_end,
            $genomic_align->dnafrag_strand,
            $genomic_align->aligned_sequence());</tt><tt><br>
          </tt><tt>    }</tt><tt><br>
          </tt><tt>    print "\n";</tt><tt>    </tt><tt><br>
          </tt><tt>}</tt><tt><br>
          </tt><tt><br>
          </tt></blockquote>
        <tt>The output is then: <br>
        </tt>
        <blockquote><tt>homo_sapiens
            1:193122704-193122731:1:TGTTCTTTATTTTTTTTTTCTCTT------TTCC</tt><tt><br>
          </tt><tt>mus_musculus
            1:143702058-143702091:-1:TGTTCTTAGGTTTTTTTTTTTTTTGTAATCTCCC</tt><br>
        </blockquote>
        <br>
        One way to get to the gene name/transcripts I've used is
        GeneMember-Adaptor & Homology-Adaptor, but then I'd miss the
        genomic alignments.  <br>
        <br>
        This was taken from an ENSEMBL example: <br>
        <blockquote><tt>use strict;</tt><br>
          <tt>use warnings;</tt><br>
          <br>
          <tt># using this script to get the ortholog of a given gene of
            mus musculus</tt><br>
          <br>
          <tt>use Bio::EnsEMBL::Registry;</tt><br>
          <br>
          <tt>my $reg = 'Bio::EnsEMBL::Registry';</tt><br>
          <br>
          <tt>$reg->load_registry_from_db(</tt><br>
          <tt>    -host=>'ensembldb.ensembl.org',</tt><br>
          <tt>    -port=>5306,</tt><br>
          <tt>    -user=>'anonymous', </tt><br>
          <tt>);</tt><br>
          <br>
          <br>
          <tt># Getting the gene_member_adaptor</tt><br>
          <tt>my $gene_member_adaptor =
            Bio::EnsEMBL::Registry->get_adaptor('Multi', 'compara',
            'GeneMember');</tt><br>
          <br>
          <tt>my $gene_member =
            $gene_member_adaptor->fetch_by_stable_id('ENSMUSG00000065782');</tt><br>
          <br>
          <tt># Getting the homology adaptor </tt><br>
          <tt>my $homology_adaptor =
            Bio::EnsEMBL::Registry->get_adaptor('Multi', 'compara',
            'Homology');</tt><br>
          <br>
          <tt>my $homologies =
            $homology_adaptor->fetch_all_by_Member($gene_member);
            #homologies = hash array</tt><br>
          <br>
          <tt>foreach my $homology ( @{$homologies} ) {</tt><br>
          <tt>    foreach my $member ( @{$homology->get_all_Members}
            ) {</tt><br>
          <tt>        if ( $member->taxon->scientific_name eq
            'Homo sapiens' ) {</tt><br>
          <tt>            print $member->description, "\n";</tt><br>
          <tt>        }    </tt><br>
          <tt>    }</tt><br>
          <tt>}</tt><br>
        </blockquote>
            <br>
        Output: <br>
        <br>
        Transcript:ENST00000391309 Gene:ENSG00000212611 Chr:X
        Start:114017033 End:114017102 Acc:RF00088<br>
        Transcript:ENST00000384693 Gene:ENSG00000277846 Chr:11
        Start:62853663 End:62853732 Acc:RF00088<br>
        <br>
        Or is there a better way to get homology members only between 2
        species? <br>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
Dev mailing list    <a class="moz-txt-link-abbreviated" href="mailto:Dev@ensembl.org" moz-do-not-send="true">Dev@ensembl.org</a>
Posting guidelines and subscribe/unsubscribe info: <a class="moz-txt-link-freetext" href="http://lists.ensembl.org/mailman/listinfo/dev" moz-do-not-send="true">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a class="moz-txt-link-freetext" href="http://www.ensembl.info/" moz-do-not-send="true">http://www.ensembl.info/</a>
</pre>
      </blockquote>
      <br>
      <div class="moz-signature">-- <br>
        Carla Cummins, Ph.D.<br>
        Ensembl Compara Developer<br>
        European Bioinformatics Institute (EMBL-EBI),<br>
        European Molecular Biology Laboratory,<br>
        Wellcome Trust Genome Campus, Hinxton,<br>
        Cambridge, CB10 1SD, United Kingdom<br>
        Room A3-145<br>
        Phone + 44 (0) 1223 49 4240</div>
    </blockquote>
    <br>
  </body>
</html>