<!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>Internal function for dNdS computations — substitutionrate • 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="Internal function for dNdS computations — substitutionrate"><meta property="og:description" content="This function takes a pairwise alignment as input file and estimates the
dNdS ratio of the corresponding alignment. Nevertheless, this function is a helper function for
dNdS. For dNdS computations you should use the function: dNdS."><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>Internal function for dNdS computations</h1>
    <small class="dont-index">Source: <a href="https://github.com/drostlab/orthologr/blob/HEAD/R/substitutionrate.R" class="external-link"><code>R/substitutionrate.R</code></a></small>
    <div class="hidden name"><code>substitutionrate.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>This function takes a pairwise alignment as input file and estimates the
dNdS ratio of the corresponding alignment. Nevertheless, this function is a helper function for
<code><a href="dNdS.html">dNdS</a></code>. For dNdS computations you should use the function: <code><a href="dNdS.html">dNdS</a></code>.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">substitutionrate</span><span class="op">(</span></span>
<span>  <span class="va">file</span>,</span>
<span>  <span class="va">est.method</span>,</span>
<span>  format <span class="op">=</span> <span class="st">"fasta"</span>,</span>
<span>  quiet <span class="op">=</span> <span class="cn">FALSE</span>,</span>
<span>  kaks_calc.params <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  kaks_calc_path <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  subst_name <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>file</dt>
<dd><p>a character string specifying the path to a codon alignment file</p></dd>


<dt>est.method</dt>
<dd><p>a character string specifying the dNdS estimation method, e.g. "Comeron","Li" .
Note, that when using "Comeron" as dNdS estimation method, the program 'gestimator' is used to compute the
corresponding dNdS values from a given alignment. The program 'gestimator' can only read "fasta" files,
hence it is important to use format = "fasta" when choosing est.method = "Comeron".</p></dd>


<dt>format</dt>
<dd><p>a character string specifying the file format in which the alignment is stored:
"mase", "clustal", "phylip", "fasta" , "msf"</p></dd>


<dt>quiet</dt>
<dd><p>a logical value specifying whether the output of the coresponding interface shall be printed out.</p></dd>


<dt>kaks_calc.params</dt>
<dd><p>a character string storing additional parameters for KaKs_Claculator 1.2 . Default is <code>NULL</code>. Example:
<code>kaks_calc.params</code> = "-m NG -m YN".</p></dd>


<dt>kaks_calc_path</dt>
<dd><p>a character string specifying the execution path to KaKs_Calculator. Default is <code>kaks_calc_path</code> = <code>NULL</code>
(meaning that KaKs_Calculator is stored and executable in your default <code>PATH</code>).</p></dd>


<dt>subst_name</dt>
<dd><p>a character string specifying the substitution name that shall be added to the internal folder path naming. 
Default is <code>subst_name</code> = <code>NULL</code>.</p></dd>

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

<p>A data.table storing the query_id, subject_id, dN, dS, and dNdS values or 
a data.table storing the query_id, method, dN, dS, and dNdS values when using KaKs_Calculator.
If the dNdS value cannot be calculated NA is returned. This can happen because of constraints
of the used model. As each program throws different exception values we set all of them to NA instead.</p>
    </div>
    <div id="details">
    <h2>Details</h2>
    <p>This function takes a pairwise alignments file as input and estimates dNdS ratios
of the corresponding alignments using predefined dNdS estimation methods.</p>
<p>The dNdS estimation methods available in this function are:</p>
<ul><li><p>"Li" : Li's method (1993) -&gt; provided by the ape package</p></li>
<li><p>"Comeron" : Comeron's method (1995)</p></li>
</ul><p>dNdS estimation methods provided by KaKs_Calculator 1.2 :</p>
<p>Approximate Methods:</p>
<ul><li><p>"NG": Nei, M. and Gojobori, T. (1986)</p></li>
<li><p>"LWL": Li, W.H., et al. (1985)</p></li>
<li><p>"LPB": Li, W.H. (1993) and Pamilo, P. and Bianchi, N.O. (1993)</p></li>
<li><p>"MLWL": (Modified LWL), MLPB (Modified LPB): Tzeng, Y.H., et al. (2004)</p></li>
<li><p>"YN": Yang, Z. and Nielsen, R. (2000)</p></li>
<li><p>"MYN": (Modified YN): Zhang, Z., et al. (2006)</p></li>
<li><p>"GMYN": Wang, D.P., et al. Biology Direct. (2009)</p></li>
<li><p>"GY": Goldman, N. and Yang, Z. (1994)</p></li>
<li><p>"MS": (Model Selection)</p></li>
<li><p>"MA": (Model Averaging): based on a set of candidate models, Posada, D. (2003)</p></li>
</ul><p>Maximum-Likelihood Methods:</p><ul><li><p>GY: Goldman, N. and Yang, Z. (1994)</p></li>
</ul></div>
    <div id="references">
    <h2>References</h2>
    <p>Li, W.-H. (1993) Unbiased estimation of the rates of synonymous and nonsynonymous substitution. J. Mol. Evol., 36:96-99.</p>
<p>Charif, D. and Lobry, J.R. (2007) SeqinR 1.0-2: a contributed package to the R project for statistical computing devoted to biological sequences retrieval and analysis.</p>
<p>Thornton, K. (2003) libsequence: a C++ class library for evolutionary genetic analysis. Bioinformatics 19(17): 2325-2327</p>
<p>Zhang Z, Li J, Zhao XQ, Wang J, Wong GK, Yu J: KaKs Calculator:
Calculating Ka and Ks through model selection and model averaging. Genomics Proteomics Bioinformatics 2006 , 4:259-263.</p>
<p>https://code.google.com/p/kaks-calculator/wiki/KaKs_Calculator</p>
<p>https://code.google.com/p/kaks-calculator/wiki/AXT</p>
    </div>
    <div id="see-also">
    <h2>See also</h2>
    <div class="dont-index"><p><code><a href="dNdS.html">dNdS</a></code>, <code><a href="multi_aln.html">multi_aln</a></code>, <code><a href="codon_aln.html">codon_aln</a></code>, <code><a href="blast_best.html">blast_best</a></code>,
<code><a href="blast_rec.html">blast_rec</a></code>, <code><a href="read.cds.html">read.cds</a></code></p></div>
    </div>
    <div id="author">
    <h2>Author</h2>
    <p>Hajk-Georg Drost and Sarah Scharfenberg</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></span>
<span class="r-in"><span><span class="co"># estimate the dNdS rate using Li's method</span></span></span>
<span class="r-in"><span><span class="fu">substitutionrate</span><span class="op">(</span></span></span>
<span class="r-in"><span>   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/pal2nal.aln"</span>, package <span class="op">=</span> <span class="st">"orthologr"</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>   est.method <span class="op">=</span> <span class="st">"Li"</span>, </span></span>
<span class="r-in"><span>   format     <span class="op">=</span> <span class="st">"fasta"</span><span class="op">)</span></span></span>
<span class="r-in"><span> </span></span>
<span class="r-in"><span><span class="co"># estimate the dNdS rate using Comeron's method</span></span></span>
<span class="r-in"><span><span class="fu">substitutionrate</span><span class="op">(</span></span></span>
<span class="r-in"><span>   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/pal2nal.aln"</span>, package <span class="op">=</span> <span class="st">"orthologr"</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>   est.method <span class="op">=</span> <span class="st">"Comeron"</span>, </span></span>
<span class="r-in"><span>   format     <span class="op">=</span> <span class="st">"fasta"</span><span class="op">)</span></span></span>
<span class="r-in"><span>                 </span></span>
<span class="r-in"><span><span class="co"># estimate the dNdS rate using model averaging provided by</span></span></span>
<span class="r-in"><span><span class="co"># the KaKs_Calculator 1.2 program</span></span></span>
<span class="r-in"><span> <span class="fu">substitutionrate</span><span class="op">(</span></span></span>
<span class="r-in"><span>    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/pal2nal.aln"</span>, package <span class="op">=</span> <span class="st">"orthologr"</span><span class="op">)</span>, </span></span>
<span class="r-in"><span>    est.method <span class="op">=</span> <span class="st">"MA"</span>, </span></span>
<span class="r-in"><span>    format     <span class="op">=</span> <span class="st">"fasta"</span><span class="op">)</span> </span></span>
<span class="r-in"><span>                  </span></span>
<span class="r-in"><span> <span class="co"># estimate the dNdS rate using Nei and Gojobori's method provided by the </span></span></span>
<span class="r-in"><span> <span class="co"># KaKs_Calculator 1.2 program</span></span></span>
<span class="r-in"><span> <span class="fu">substitutionrate</span><span class="op">(</span></span></span>
<span class="r-in"><span>    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/pal2nal.aln"</span>, package <span class="op">=</span> <span class="st">"orthologr"</span><span class="op">)</span>, </span></span>
<span class="r-in"><span>    est.method <span class="op">=</span> <span class="st">"NG"</span>, </span></span>
<span class="r-in"><span>    format     <span class="op">=</span> <span class="st">"fasta"</span><span class="op">)</span>     </span></span>
<span class="r-in"><span>  </span></span>
<span class="r-in"><span>  <span class="co"># estimate the dNdS rate using Nei and Gojobori's method AND Yang and Nielsen's </span></span></span>
<span class="r-in"><span>  <span class="co"># method provided by the KaKs_Calculator 1.2 program </span></span></span>
<span class="r-in"><span>  <span class="co"># for this purpose we choose: </span></span></span>
<span class="r-in"><span>  <span class="co"># est.method = "kaks_calc" and kaks_calc.params = "-m NG -m YN"                 </span></span></span>
<span class="r-in"><span> <span class="fu">substitutionrate</span><span class="op">(</span></span></span>
<span class="r-in"><span>   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/pal2nal.aln"</span>, package <span class="op">=</span> <span class="st">"orthologr"</span><span class="op">)</span>,</span></span>
<span class="r-in"><span>   est.method       <span class="op">=</span> <span class="st">"kaks_calc"</span>, </span></span>
<span class="r-in"><span>   format           <span class="op">=</span> <span class="st">"fasta"</span>,</span></span>
<span class="r-in"><span>   kaks_calc.params <span class="op">=</span> <span class="st">"-m NG -m YN"</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 class="op">}</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>

