Example #1
0
        /// <summary>
        ///     Validate different paired read types
        /// </summary>
        /// <param name="nodeName">XML node name</param>
        /// <param name="pams">GetPairedReadTypes method parameters</param>
        private void ValidatePairedReadTypes(string nodeName, GetPairedReadTypeParameters pams)
        {
            // Get input and output values from xml node.
            string bamFilePath = this.utilityObj.xmlUtil.GetTextValue(nodeName,
                                                                 Constants.FilePathNode);
            string mean = this.utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.MeanNode);
            string deviation = this.utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.DeviationValueNode);
            string library = this.utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.LibraryNameNode);
            string[] pairedReadType = this.utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.PairedReadTypeNode).Split(',');
            string[] insertLength = this.utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.InsertLengthNode).Split(',');

            var bamParser = new BAMParser();
            SequenceAlignmentMap seqAlignmentMapObj = bamParser.ParseOne<SequenceAlignmentMap>(bamFilePath);
            CloneLibraryInformation libraryInfo;
            int i = 0;
            try
            {
                IList<PairedRead> pairedReads;
                switch (pams)
                {
                    case GetPairedReadTypeParameters.PaireReadTypeUsingLibraryName:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        foreach (PairedRead read in pairedReads)
                        {
                            PairedReadType type = PairedRead.GetPairedReadType(read, library);
                            Assert.AreEqual(type.ToString(), pairedReadType[i]);
                            i++;
                        }
                        break;
                    case GetPairedReadTypeParameters.PaireReadTypeUsingCloneLibraryInfo:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                        foreach (PairedRead read in pairedReads)
                        {
                            PairedReadType type = PairedRead.GetPairedReadType(read, libraryInfo);
                            Assert.AreEqual(type.ToString(), pairedReadType[i]);
                            i++;
                        }
                        break;
                    case GetPairedReadTypeParameters.PaireReadTypeUsingMeanAndDeviation:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        foreach (PairedRead read in pairedReads)
                        {
                            PairedReadType type = PairedRead.GetPairedReadType(read, float.Parse(mean, null),
                                                                               float.Parse(deviation, null));
                            Assert.AreEqual(type.ToString(), pairedReadType[i]);
                            i++;
                        }
                        break;
                    case GetPairedReadTypeParameters.PaireReadTypeUsingReadsAndLibrary:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        foreach (PairedRead read in pairedReads)
                        {
                            PairedReadType type = PairedRead.GetPairedReadType(read.Read1,
                                                                               read.Read2, library);
                            Assert.AreEqual(type.ToString(), pairedReadType[i]);
                            i++;
                        }
                        break;
                    case GetPairedReadTypeParameters.PaireReadTypeUsingReadsAndLibraryInfo:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                        foreach (PairedRead read in pairedReads)
                        {
                            PairedReadType type = PairedRead.GetPairedReadType(read.Read1,
                                                                               read.Read2, libraryInfo);
                            Assert.AreEqual(type.ToString(), pairedReadType[i]);
                            i++;
                        }
                        break;
                    case GetPairedReadTypeParameters.GetInsertLength:
                        pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, null),
                                                                        float.Parse(deviation, null));
                        libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                        foreach (PairedRead read in pairedReads)
                        {
                            int length = PairedRead.GetInsertLength(read.Read1, read.Read2);
                            Assert.AreEqual(length.ToString((IFormatProvider) null), insertLength[i]);
                            i++;
                        }
                        break;
                }
                ApplicationLog.WriteLine(string.Format(null,
                                                       "BAM Parser BVT : Validated Paired read Type Successfully"));
            }

            finally
            {
                bamParser.Dispose();
            }
        }
Example #2
0
        /// <summary>
        /// Validate different paired read types
        /// </summary>
        /// <param name="nodeName">XML node name</param>
        /// <param name="pams">GetPairedReadTypes method parameters</param>
        void ValidatePairedReadTypes(string nodeName, GetPairedReadTypeParameters pams)
        {
            // Get input and output values from xml node.
            string bamFilePath = utilityObj.xmlUtil.GetTextValue(nodeName,
                                                                 Constants.FilePathNode);
            string mean = utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.MeanNode);
            string deviation = utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.DeviationValueNode);
            string library = utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.LibraryNameNode);

            string[] pairedReadType = utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.PairedReadTypeNode).Split(',');
            string[] insertLength = utilityObj.xmlUtil.GetTextValue(
                nodeName, Constants.InsertLengthNode).Split(',');

            IList <PairedRead>      pairedReads        = null;
            BAMParser               bamParser          = new BAMParser();
            SequenceAlignmentMap    seqAlignmentMapObj = bamParser.Parse(bamFilePath);
            CloneLibraryInformation libraryInfo;
            int i = 0;

            try
            {
                switch (pams)
                {
                case GetPairedReadTypeParameters.PaireReadTypeUsingLibraryName:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    foreach (PairedRead read in pairedReads)
                    {
                        PairedReadType type = PairedRead.GetPairedReadType(read, library);
                        Assert.AreEqual(type.ToString(), pairedReadType[i]);
                        i++;
                    }
                    break;

                case GetPairedReadTypeParameters.PaireReadTypeUsingCloneLibraryInfo:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                    foreach (PairedRead read in pairedReads)
                    {
                        PairedReadType type = PairedRead.GetPairedReadType(read, libraryInfo);
                        Assert.AreEqual(type.ToString(), pairedReadType[i]);
                        i++;
                    }
                    break;

                case GetPairedReadTypeParameters.PaireReadTypeUsingMeanAndDeviation:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    foreach (PairedRead read in pairedReads)
                    {
                        PairedReadType type = PairedRead.GetPairedReadType(read, float.Parse(mean, (IFormatProvider)null),
                                                                           float.Parse(deviation, (IFormatProvider)null));
                        Assert.AreEqual(type.ToString(), pairedReadType[i]);
                        i++;
                    }
                    break;

                case GetPairedReadTypeParameters.PaireReadTypeUsingReadsAndLibrary:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    foreach (PairedRead read in pairedReads)
                    {
                        PairedReadType type = PairedRead.GetPairedReadType(read.Read1,
                                                                           read.Read2, library);
                        Assert.AreEqual(type.ToString(), pairedReadType[i]);
                        i++;
                    }
                    break;

                case GetPairedReadTypeParameters.PaireReadTypeUsingReadsAndLibraryInfo:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                    foreach (PairedRead read in pairedReads)
                    {
                        PairedReadType type = PairedRead.GetPairedReadType(read.Read1,
                                                                           read.Read2, libraryInfo);
                        Assert.AreEqual(type.ToString(), pairedReadType[i]);
                        i++;
                    }
                    break;

                case GetPairedReadTypeParameters.GetInsertLength:
                    pairedReads = seqAlignmentMapObj.GetPairedReads(float.Parse(mean, (IFormatProvider)null),
                                                                    float.Parse(deviation, (IFormatProvider)null));
                    libraryInfo = CloneLibrary.Instance.GetLibraryInformation(library);
                    foreach (PairedRead read in pairedReads)
                    {
                        int length = PairedRead.GetInsertLength(read.Read1, read.Read2);
                        Assert.AreEqual(length.ToString((IFormatProvider)null), insertLength[i]);
                        i++;
                    }
                    break;
                }
                ApplicationLog.WriteLine(string.Format((IFormatProvider)null,
                                                       "BAM Parser BVT : Validated Paired read Type Successfully"));
            }

            finally
            {
                bamParser.Dispose();
            }
        }