public void GetClippedCigar() { // from middle Assert.Equal("3M", CigarExtensions.GetClippedCigar(new CigarAlignment("3S6M"), 3, 6).ToString()); Assert.Equal("3M", CigarExtensions.GetClippedCigar(new CigarAlignment("3S3D6M"), 3, 6, false).ToString()); Assert.Equal("3M", CigarExtensions.GetClippedCigar(new CigarAlignment("3S3M3D4M"), 3, 6, false).ToString()); Assert.Equal("3M3D", CigarExtensions.GetClippedCigar(new CigarAlignment("3S3M3D4M"), 3, 6).ToString()); Assert.Equal("3D3M", CigarExtensions.GetClippedCigar(new CigarAlignment("3S3D4M"), 3, 6).ToString()); Assert.Equal("3D3M", CigarExtensions.GetClippedCigar(new CigarAlignment("1S1D2S3D4M"), 3, 6).ToString()); // readcycles < 0 Assert.Equal("", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 0).ToString()); Assert.Equal("", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 0).ToString()); Assert.Equal("", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), -1, -1).ToString()); //readcycles > 0 Assert.Equal("1M", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 1).ToString()); Assert.Equal("5M3D2M", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 7).ToString()); Assert.Equal("5M3D", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 5).ToString()); // skip end dels if specified (but not internal dels) Assert.Equal("5M3D2M", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 7, false).ToString()); Assert.Equal("5M", CigarExtensions.GetClippedCigar(new CigarAlignment("5M3D7M"), 0, 5, false).ToString()); //softclips Assert.Equal("2M1S", CigarExtensions.GetClippedCigar(new CigarAlignment("2M1S"), 0, 3).ToString()); Assert.Equal("2M", CigarExtensions.GetClippedCigar(new CigarAlignment("2M1S"), 0, 2).ToString()); }
public void HasOperationAtOpIndex() { var alignment = new CigarAlignment("5M3D4M7I2S8M"); Assert.True(alignment.HasOperationAtOpIndex(3, 'I')); Assert.False(alignment.HasOperationAtOpIndex(5, 'D')); Assert.False(CigarExtensions.HasOperationAtOpIndex(null, 3, 'D')); Assert.False(CigarExtensions.HasOperationAtOpIndex(null, 3, 'D', true)); Assert.True(alignment.HasOperationAtOpIndex(1, 'S', true)); Assert.False(alignment.HasOperationAtOpIndex(2, 'D', true)); Assert.False(alignment.HasOperationAtOpIndex(-1, 'D', true)); Assert.False(alignment.HasOperationAtOpIndex(8, 'D', true)); }
public void SetOpsForRead(ReadNumber num, List <StitchableItem> ops) { if (num == ReadNumber.Read1) { R1Ops = ops; R1OpsCount = ops.Count; R1HasReferenceSpan = ops.Any(x => CigarExtensions.IsReferenceSpan(x.CigarOp)); } else { R2Ops = ops; R2OpsCount = ops.Count; R2HasReferenceSpan = ops.Any(x => CigarExtensions.IsReferenceSpan(x.CigarOp)); } }
public void AddOpsForRead(ReadNumber num, List <StitchableItem> ops) { if (num == ReadNumber.Read1) { R1OpsCount += ops.Count; R1Ops.AddRange(ops); if (!R1HasReferenceSpan) { R1HasReferenceSpan = ops.Any(x => CigarExtensions.IsReferenceSpan(x.CigarOp)); } } else { R2OpsCount += ops.Count; R2Ops.AddRange(ops); if (!R2HasReferenceSpan) { R2HasReferenceSpan = ops.Any(x => CigarExtensions.IsReferenceSpan(x.CigarOp)); } } }
public void AddOpsForRead(ReadNumber num, StitchableItem ops) { if (num == ReadNumber.Read1) { R1OpsCount++; R1Ops.Add(ops); if (CigarExtensions.IsReferenceSpan(ops.CigarOp)) { R1HasReferenceSpan = true; } } else { R2OpsCount++; R2Ops.Add(ops); if (CigarExtensions.IsReferenceSpan(ops.CigarOp)) { R2HasReferenceSpan = true; } } }
public void GetTrimmed() { //readcycles < 0 Assert.Equal("", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 0).ToString()); Assert.Equal("", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 0, true).ToString()); Assert.Equal("", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), -1, true).ToString()); //readcycles > 0 Assert.Equal("1M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 1).ToString()); Assert.Equal("1M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 1, true).ToString()); Assert.Equal("5M3D2M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 7).ToString()); Assert.Equal("3D7M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 7, true).ToString()); Assert.Equal("5M3D", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 5).ToString()); // skip end dels if specified (but not internal dels) Assert.Equal("7M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 7, true, false).ToString()); Assert.Equal("7M", CigarExtensions.GetTrimmed(new CigarAlignment("4M1D1M3D7M"), 7, true, false).ToString()); Assert.Equal("4M1D3M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D4M1D3M"), 7, true, false).ToString()); Assert.Equal("5M3D2M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 7, false, false).ToString()); Assert.Equal("5M", CigarExtensions.GetTrimmed(new CigarAlignment("5M3D7M"), 5, false, false).ToString()); }