<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Perform a DIAMOND2 reciprocal best hit (RBH) search — diamond_rec • orthologr</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Perform a DIAMOND2 reciprocal best hit (RBH) search — diamond_rec"><meta property="og:description" content="This function performs a DIAMOND2 search (reciprocal best hit) of a given set of protein sequences against a second
set of protein sequences and vice versa."><meta property="og:image" content="/logo.png"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
    

    <div class="container template-reference-topic">
      <header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">orthologr</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">0.4.2</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav"><li>
  <a href="../reference/index.html">Reference</a>
</li>
<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    Articles
     
    <span class="caret"></span>
  </a>
  <ul class="dropdown-menu" role="menu"><li>
      <a href="../articles/Install.html">Installing Prerequisite Tools</a>
    </li>
    <li>
      <a href="../articles/blast.html">BLAST searches using orthologr</a>
    </li>
    <li>
      <a href="../articles/dNdS_estimation.html">Orthology inference dNdS estimation of orthologous genes using orthologr</a>
    </li>
    <li>
      <a href="../articles/divergence_stratigraphy.html">Performing Divergence Stratigraphy</a>
    </li>
    <li>
      <a href="../articles/orthology_inference.html">Orthology Inference using orthologr</a>
    </li>
    <li>
      <a href="../articles/sequence_alignments.html">Sequence alignments with orthologr</a>
    </li>
  </ul></li>
<li>
  <a href="../news/index.html">Changelog</a>
</li>
      </ul><ul class="nav navbar-nav navbar-right"><li>
  <a href="https://github.com/drostlab/orthologr/" class="external-link">
    <span class="fab fa-github fa-lg"></span>
     
  </a>
</li>
      </ul></div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header><div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Perform a DIAMOND2 reciprocal best hit (RBH) search</h1>
    <small class="dont-index">Source: <a href="https://github.com/drostlab/orthologr/blob/HEAD/R/diamond_rec.R" class="external-link"><code>R/diamond_rec.R</code></a></small>
    <div class="hidden name"><code>diamond_rec.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>This function performs a DIAMOND2 search (reciprocal best hit) of a given set of protein sequences against a second
set of protein sequences and vice versa.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">diamond_rec</span><span class="op">(</span></span>
<span>  <span class="va">query_file</span>,</span>
<span>  <span class="va">subject_file</span>,</span>
<span>  seq_type <span class="op">=</span> <span class="st">"cds"</span>,</span>
<span>  format <span class="op">=</span> <span class="st">"fasta"</span>,</span>
<span>  diamond_algorithm <span class="op">=</span> <span class="st">"blastp"</span>,</span>
<span>  sensitivity_mode <span class="op">=</span> <span class="st">"fast"</span>,</span>
<span>  delete_corrupt_cds <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  eval <span class="op">=</span> <span class="st">"1E-5"</span>,</span>
<span>  max.target.seqs <span class="op">=</span> <span class="fl">10000</span>,</span>
<span>  path <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  comp_cores <span class="op">=</span> <span class="fl">1</span>,</span>
<span>  diamond_params <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  clean_folders <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span>  save.output <span class="op">=</span> <span class="cn">NULL</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>query_file</dt>
<dd><p>a character string specifying the path to the CDS file of interest (query organism).</p></dd>


<dt>subject_file</dt>
<dd><p>a character string specifying the path to the CDS file of interest (subject organism).</p></dd>


<dt>seq_type</dt>
<dd><p>a character string specifying the sequence type stored in the input file.
Options are are: "cds", "protein", or "dna". In case of "cds", sequence are translated to protein sequences,
in case of "dna", cds prediction is performed on the corresponding sequences which subsequently are
translated to protein sequences. Default is <code>seq_type</code> = "cds".</p></dd>


<dt>format</dt>
<dd><p>a character string specifying the file format of the sequence file, e.g. <code>format</code> = <code>"fasta"</code>.
Default is <code>format</code> = <code>"fasta"</code>.</p></dd>


<dt>diamond_algorithm</dt>
<dd><p>a character string specifying the DIAMOND2 algorithm that shall be used, option is currently limited to: <code>diamond_algorithm</code> = <code>"blastp"</code></p></dd>


<dt>sensitivity_mode</dt>
<dd><p>specify the level of alignment sensitivity. The higher the sensitivity level, the more deep homologs can be found, but at the cost of reduced computational speed.
- sensitivity_mode = "faster" : fastest alignment mode, but least sensitive (default). Designed for finding hits of &gt;70
- sensitivity_mode = "default" : Default mode. Designed for finding hits of &gt;70
- sensitivity_mode = "fast" : fast alignment mode, but least sensitive (default). Designed for finding hits of &gt;70
- sensitivity_mode = "mid-sensitive" : fast alignments between the fast mode and the sensitive mode in sensitivity.
- sensitivity_mode = "sensitive" : fast alignments, but full sensitivity for hits &gt;40
- sensitivity_mode = "more-sensitive" : more sensitive than the sensitive mode.
- sensitivity_mode = "very-sensitive" : sensitive alignment mode.
- sensitivity_mode = "ultra-sensitive" : most sensitive alignment mode (sensitivity as high as BLASTP).</p></dd>


<dt>delete_corrupt_cds</dt>
<dd><p>a logical value indicating whether sequences with corrupt base triplets should be removed from the input <code>file</code>. This is the case when the length of coding sequences cannot be divided by 3 and thus the coding sequence contains at least one corrupt base triplet.</p></dd>


<dt>eval</dt>
<dd><p>a numeric value specifying the E-Value cutoff for DIAMOND2 hit detection.</p></dd>


<dt>max.target.seqs</dt>
<dd><p>a numeric value specifying the number of aligned sequences to keep.
Please be aware that <code>max.target.seqs</code> selects best hits based on the database entry and not by the best e-value. See details here: https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/bty833/5106166 .</p></dd>


<dt>path</dt>
<dd><p>a character string specifying the path to the DIAMOND2 program (in case you don't use the default path).</p></dd>


<dt>comp_cores</dt>
<dd><p>a numeric value specifying the number of cores to be used for multicore DIAMOND2 computations.</p></dd>


<dt>diamond_params</dt>
<dd><p>a character string listing the input paramters that shall be passed to the executing DIAMOND2 program. Default is <code>NULL</code>, implicating
that a set of default parameters is used when running DIAMOND2.</p></dd>


<dt>clean_folders</dt>
<dd><p>a boolean value spefiying whether all internall folders storing the output of used programs
shall be removed. Default is <code>clean_folders</code> = <code>FALSE</code>.</p></dd>


<dt>save.output</dt>
<dd><p>a path to the location were the DIAMOND2 output shall be stored. E.g. <code>save.output</code> = <code><a href="https://rdrr.io/r/base/getwd.html" class="external-link">getwd()</a></code>
to store it in the current working directory, or <code>save.output</code> = <code>file.path(put,your,path,here)</code>.</p></dd>

</dl></div>
    <div id="value">
    <h2>Value</h2>
    

<p>A data.table as returned by the <code><a href="diamond.html">diamond</a></code> function, storing the geneids
of orthologous genes (reciprocal best hit) in the first column and the amino acid sequences in the second column.</p>
    </div>
    <div id="details">
    <h2>Details</h2>
    <p>Given a set of protein sequences A and a different set of protein sequences B,
first a best hit diamond search is being performed from A to B: diamond(A,B) and afterwards
a best hit diamond search is being performed from B to A: diamond(B,A). Only protein sequences
that were found to be best hits in both directions are retained and returned.</p>
<p>This function gives the same output as <code><a href="blast_rec.html">blast_rec</a></code> while being much much faster.</p>
<p>This function can be used to perform orthology inference using DIAMOND2 best reciprocal hit methodology.</p>
    </div>
    <div id="references">
    <h2>References</h2>
    <p>Buchfink, B., Reuter, K., &amp; Drost, H. G. (2021) "Sensitive protein alignments at tree-of-life scale using DIAMOND." Nature methods, 18(4), 366-368.</p>
<p>https://github.com/bbuchfink/diamond/wiki/3.-Command-line-options</p>
    </div>
    <div id="see-also">
    <h2>See also</h2>
    <div class="dont-index"><p><code><a href="diamond.html">diamond</a></code>, <code><a href="diamond_best.html">diamond_best</a></code>, <code><a href="set_diamond.html">set_diamond</a></code>, <code><a href="blast_rec.html">blast_rec</a></code></p></div>
    </div>
    <div id="author">
    <h2>Author</h2>
    <p>Jaruwatana Sodai Lotharukpong</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</span> <span class="op">{</span></span></span>
<span class="r-in"><span><span class="co"># performing gene orthology inference using the reciprocal best hit (RBH) method</span></span></span>
<span class="r-in"><span><span class="fu">diamond_rec</span><span class="op">(</span>query_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_thal_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            subject_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_lyra_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span><span class="co"># performing gene orthology inference using the reciprocal best hit (RBH) method</span></span></span>
<span class="r-in"><span><span class="co"># starting with protein sequences</span></span></span>
<span class="r-in"><span><span class="fu">diamond_rec</span><span class="op">(</span>query_file   <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_thal_aa.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            subject_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_lyra_aa.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            seq_type     <span class="op">=</span> <span class="st">"protein"</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># save the DIAMOND2 output file to the current working directory</span></span></span>
<span class="r-in"><span><span class="fu">diamond_rec</span><span class="op">(</span>query_file   <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_thal_aa.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            subject_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_lyra_aa.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            seq_type     <span class="op">=</span> <span class="st">"protein"</span>,</span></span>
<span class="r-in"><span>            save.output  <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/getwd.html" class="external-link">getwd</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span></span></span>
<span class="r-in"><span><span class="co"># use multicore processing</span></span></span>
<span class="r-in"><span><span class="fu">diamond_rec</span><span class="op">(</span>query_file    <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_thal_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>, </span></span>
<span class="r-in"><span>            subject_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_lyra_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            comp_cores   <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></span>
<span class="r-in"><span>           </span></span>
<span class="r-in"><span>           </span></span>
<span class="r-in"><span>           </span></span>
<span class="r-in"><span><span class="co"># performing gene orthology inference using the reciprocal best hit (RBH) method</span></span></span>
<span class="r-in"><span><span class="co"># and external path to diamond</span></span></span>
<span class="r-in"><span><span class="fu">diamond_rec</span><span class="op">(</span>query_file   <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_thal_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            subject_file <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span><span class="st">'seqs/ortho_lyra_cds.fasta'</span>, package <span class="op">=</span> <span class="st">'orthologr'</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>            path         <span class="op">=</span> <span class="st">"path/to/diamond"</span><span class="op">)</span></span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span>          </span></span>
<span class="r-in"><span><span class="op">}</span></span></span>
<span class="r-in"><span></span></span>
</code></pre></div>
    </div>
  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
    </nav></div>
</div>


      <footer><div class="copyright">
  <p></p><p>Developed by Hajk-Georg Drost.</p>
</div>

<div class="pkgdown">
  <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>

      </footer></div>

  


  

  </body></html>

