本文整理汇总了C#中Sequence.GetReversedSequence方法的典型用法代码示例。如果您正苦于以下问题:C# Sequence.GetReversedSequence方法的具体用法?C# Sequence.GetReversedSequence怎么用?C# Sequence.GetReversedSequence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sequence
的用法示例。
在下文中一共展示了Sequence.GetReversedSequence方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestSimpleSequenceAssemblerWithRandomSequence
public void TestSimpleSequenceAssemblerWithRandomSequence()
{
// Test parameters.
//
// In theory, as long as all positions in the master sequence are
// covered by at least one read, we should be able to pass this test.
// But some parameter settings will make the test fail, for
// various reasons, including:
// 1. Short reads, caused by the strategy used to ensure full coverage
// at the ends, might not score well enough to merge.
// 2. Uncovered positions are always possible due to the random
// generation of reads. (Increasing the number of reads helps with this)
// 3. The assembler might construct the reverse or complement (or both)
// of the master sequence.
// 4. Too low a merge threshold could cause incorrect merges, which
// the algorithm will not repair.
int matchScore = 1;
int mismatchScore = -8;
int gapCost = -8;
double mergeThreshold = 3;
double consensusThreshold = 99;
const int MasterLength = 100;
const int MinReadLength = 10;
const int MaxReadLength = 30;
const int NumReads = 200;
const bool AssumeOrientedReads = true;
// if this is uncommented, assembly details appear in log.
// this is extremely verbose.
// Trace.Set(Trace.AssemblyDetails);
// make random master sequence
// (use seed for repeatability, or omit seed for
// different test each time)
// Random randGen = new Random();
Random randGen = new Random(654321);
StringBuilder randSeq = new StringBuilder();
for (int i = 0; i < MasterLength; ++i)
{
int randm = randGen.Next(8);
if (randm < 2)
{
randSeq.Append('A');
}
else if (randm < 4)
{
randSeq.Append('C');
}
else if (randm < 6)
{
randSeq.Append('G');
}
else
{
randSeq.Append('T');
}
}
Sequence master = new Sequence(Alphabets.AmbiguousDNA, randSeq.ToString());
// create the reads
List<ISequence> inputs = new List<ISequence>();
for (int i = 0; i < NumReads; ++i)
{
// try for uniform coverage clear to the ends (this can lead to short reads, though)
int rndPos = Math.Max(0, randGen.Next(-MinReadLength, MasterLength - 1));
int rndLen = Math.Min(MasterLength - rndPos, randGen.Next(MinReadLength, MaxReadLength + 1));
string data = master.ConvertToString().Substring(Math.Max(0, rndPos), rndLen);
bool revcomp = randGen.Next(2) > 0;
bool reverse = randGen.Next(2) > 0 && !AssumeOrientedReads;
ISequence read;
if (reverse && revcomp)
{
Sequence tmp = new Sequence(Alphabets.DNA, data);
read = new Sequence(Alphabets.DNA, tmp.GetReversedSequence().ConvertToString());
}
else if (revcomp)
{
Sequence tmp = new Sequence(Alphabets.DNA, data);
read = new Sequence(Alphabets.DNA, tmp.GetReverseComplementedSequence().ConvertToString());
}
else
{
read = new Sequence(Alphabets.DNA, data);
}
ApplicationLog.WriteLine("read {0}: {1}", i, read);
inputs.Add(read);
}
OverlapDeNovoAssembler assembler = new OverlapDeNovoAssembler();
assembler.MergeThreshold = mergeThreshold;
assembler.OverlapAlgorithm = new PairwiseOverlapAligner();
((IPairwiseSequenceAligner)assembler.OverlapAlgorithm).SimilarityMatrix = new DiagonalSimilarityMatrix(matchScore, mismatchScore);
((IPairwiseSequenceAligner)assembler.OverlapAlgorithm).GapOpenCost = gapCost;
assembler.ConsensusResolver = new SimpleConsensusResolver(consensusThreshold);
assembler.AssumeStandardOrientation = AssumeOrientedReads;
IOverlapDeNovoAssembly seqAssembly = (IOverlapDeNovoAssembly)assembler.Assemble(inputs);
//.........这里部分代码省略.........
示例2: ValidateSequences
/// <summary>
/// Supporting method for validating Sequence operations.
/// Input Data: Parent node,child node and Enum.
/// Output Data : Validation of public methods in Sequence class.
/// </summary>
void ValidateSequences(string parentNode, SequenceMethods option)
{
string alphabetName = this.utilityObj.xmlUtil.GetTextValue(
parentNode, Constants.AlphabetNameNode);
IAlphabet alphabet = Utility.GetAlphabet(alphabetName);
ISequence seq = null;
string expectedValue = "";
ISequence sequence = new Sequence(alphabet, Encoding.UTF8.GetBytes(
this.utilityObj.xmlUtil.GetTextValue(parentNode,
Constants.ExpectedDerivedSequence)));
switch (option)
{
case SequenceMethods.Reverse:
seq = sequence.GetReversedSequence();
expectedValue = this.utilityObj.xmlUtil.GetTextValue(
parentNode, Constants.Reverse);
break;
case SequenceMethods.ReverseComplement:
seq = sequence.GetReverseComplementedSequence();
expectedValue = this.utilityObj.xmlUtil.GetTextValue(
parentNode, Constants.ReverseComplement);
break;
case SequenceMethods.Complement:
seq = sequence.GetComplementedSequence();
expectedValue = this.utilityObj.xmlUtil.GetTextValue(
parentNode, Constants.Complement);
break;
}
Assert.AreEqual(expectedValue, seq.ConvertToString());
ApplicationLog.WriteLine(string.Concat(
"Sequence BVT: Validation of Sequence operation ", option, " completed successfully."));
}
示例3: TestSimpleSequenceAssemblerWithSemiRandomSequence
public void TestSimpleSequenceAssemblerWithSemiRandomSequence()
{
// test parameters
int matchScore = 1;
int mismatchScore = -8;
int gapCost = -8;
double mergeThreshold = 4;
double consensusThreshold = 66;
const int MasterLength = 30;
const int ReadLength = 10;
const int NumReads = 5;
const bool AssumeOrientedReads = false;
// if this is uncommented, assembly details appear in log.
// this is extremely verbose.
Trace.Set(Trace.AssemblyDetails);
// make random master sequence
// (use seed for repeatability, or omit seed for
// different test each time)
// Random randGen = new Random();
Random randGen = new Random(654321);
StringBuilder randSeq = new StringBuilder();
for (int i = 0; i < MasterLength; ++i)
{
int randm = randGen.Next(8);
if (randm < 2)
{
randSeq.Append('A');
}
else if (randm < 4)
{
randSeq.Append('C');
}
else if (randm < 6)
{
randSeq.Append('G');
}
else
{
randSeq.Append('T');
}
}
Sequence master = new Sequence(Alphabets.DNA, randSeq.ToString());
// create the reads
List<ISequence> inputs = new List<ISequence>();
for (int i = 0; i < NumReads; ++i)
{
int pos = 5 * i;
string data = master.ConvertToString().Substring(pos, ReadLength);
bool revcomp = randGen.Next(2) > 0;
bool reverse = randGen.Next(2) > 0 && !AssumeOrientedReads;
ISequence read;
if (reverse && revcomp)
{
Sequence tmp = new Sequence(Alphabets.DNA, data);
read = new Sequence(Alphabets.DNA, tmp.GetReversedSequence().ConvertToString());
}
else if (revcomp)
{
Sequence tmp = new Sequence(Alphabets.DNA, data);
read = new Sequence(Alphabets.DNA, tmp.GetReverseComplementedSequence().ConvertToString());
}
else
{
read = new Sequence(Alphabets.DNA, data);
}
inputs.Add(read);
}
OverlapDeNovoAssembler assembler = new OverlapDeNovoAssembler();
assembler.MergeThreshold = mergeThreshold;
assembler.OverlapAlgorithm = new PairwiseOverlapAligner();
((IPairwiseSequenceAligner)assembler.OverlapAlgorithm).SimilarityMatrix = new DiagonalSimilarityMatrix(matchScore, mismatchScore);
((IPairwiseSequenceAligner)assembler.OverlapAlgorithm).GapOpenCost = gapCost;
assembler.ConsensusResolver = new SimpleConsensusResolver(consensusThreshold);
assembler.AssumeStandardOrientation = AssumeOrientedReads;
IOverlapDeNovoAssembly seqAssembly = (IOverlapDeNovoAssembly)assembler.Assemble(inputs);
Assert.AreEqual(0, seqAssembly.UnmergedSequences.Count);
Assert.AreEqual(1, seqAssembly.Contigs.Count);
Contig contig0 = seqAssembly.Contigs[0];
ApplicationLog.WriteLine("master sequence and contig 0 consensus:");
ApplicationLog.WriteLine(master.ConvertToString());
ApplicationLog.WriteLine(contig0.Consensus.ConvertToString());
// note that this is tricky, esp. without oriented reads - consensus
// could be reversed and/or complemented relative to original
Assert.AreEqual(master.ConvertToString(), contig0.Consensus.ConvertToString());
}