/// <summary> /// Calculation method. /// </summary> /// <param name="chain"> /// Source sequence. /// </param> /// <param name="link"> /// Link of intervals in chain. /// </param> /// <returns> /// AT skew value as <see cref="double"/>. /// </returns> public double Calculate(Chain chain, Link link) { DnaProcessor.CheckDnaAlphabet(chain.Alphabet); var a = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("A")), link); var t = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("T")), link); return (int)(a + t) == 0 ? 0 : (a - t) / (a + t); }
/// <summary> /// Calculation method. /// </summary> /// <param name="chain"> /// Source sequence. /// </param> /// <param name="link"> /// Link of intervals in chain. /// </param> /// <returns> /// G+C Ratio value as <see cref="double"/>. /// </returns> public double Calculate(Chain chain, Link link) { DnaProcessor.CheckDnaAlphabet(chain.Alphabet); var g = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("G")), link); var c = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("C")), link); var l = remotenessCalculator.Calculate(chain, link); return 100 * (g + c) / l; }
/// <summary> /// Calculation method. /// </summary> /// <param name="chain"> /// Source sequence. /// </param> /// <param name="link"> /// Link of intervals in chain. /// </param> /// <returns> /// G+C skew value as <see cref="double"/>. /// </returns> public double Calculate(Chain chain, Link link) { DnaProcessor.CheckDnaAlphabet(chain.Alphabet); var g = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("G")), link); var c = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("C")), link); var result = (g - c) / (g + c); return result; }
/// <summary> /// Calculation method. /// </summary> /// <param name="chain"> /// Source sequence. /// </param> /// <param name="link"> /// Link of intervals in chain. /// </param> /// <returns> /// G+C Ratio value as <see cref="double"/> . /// </returns> public double Calculate(Chain chain, Link link) { DnaProcessor.CheckDnaAlphabet(chain.Alphabet); var g = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("G")), link); var c = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("C")), link); var a = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("A")), link); var t = remotenessCalculator.Calculate(chain.GetOrCreateCongenericChain(new ValueString("T")), link); var result = (g + c) / (a + t); return result; }
/// <summary> /// Calculation method. /// </summary> /// <param name="chain"> /// Source sequence. /// </param> /// <param name="link"> /// Link of intervals in chain. /// </param> /// <returns> /// RY skew value as <see cref="double"/>. /// </returns> public double Calculate(Chain chain, Link link) { DnaProcessor.CheckDnaAlphabet(chain.Alphabet); var g = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("G")), link); var c = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("C")), link); var a = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("A")), link); var t = counter.Calculate(chain.GetOrCreateCongenericChain(new ValueString("T")), link); var l = counter.Calculate(chain, link); var result = ((g + a) - (c + t)) / l; return result; }