Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.test.gb";

            GBSequence gbSequence = new GBSequence(fileName);
            GBSeq      gbSeq      = gbSequence.GbSeq();
            TrinucCalc trinucCalc = new TrinucCalc();

            int    scanStart = 20000;
            int    scanEnd   = 40000;
            string scanSeq   = gbSeq.Seq.Substring(scanStart, scanEnd - scanStart);
            int    fragment  = 65;
            //int step = 66;
            int step = 5;

            try
            {
                for (int i = 0; i < scanSeq.Length; i += step)
                {
                    string fragSeq = scanSeq.Substring(i, fragment);
                    //Console.WriteLine( fragSeq);
                    double trinucDiff = trinucCalc.Calculation("FRAG", fragSeq);
                    Console.WriteLine($"FRAG\t{fragSeq}\t{trinucDiff.ToString("0.0000")}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemplo n.º 2
0
        public static void Main(string [] args)
        {
            Console.WriteLine("Pentanuc calculation");

            string     fileName   = "/home/alvydas/SequenciesTest/Bacteria/Escherichia.coli.test.gb";
            GBSequence gbSequence = new GBSequence(fileName);
            var        gbSeq      = gbSequence.GbSeq();

            Console.WriteLine("Seq length " + gbSeq.Seq.Length + " Pentanucs " + gbSeq.Seq.Length / 5);
            Console.WriteLine(gbSeq.Seq);
            //Console.WriteLine($"{gbSeq.Seq.Substring(0, 60)}...{gbSeq.Seq.Substring(gbSeq.Seq.Length - 60)}");

            PentanucCalc pentanucCalculation = new PentanucCalc(gbSeq.Seq);
            var          pentanuc            = pentanucCalculation.Calculation();

            foreach (var item in pentanuc.pentanucleotides)
            {
                Console.Write($"{item.Pentanuc}\t");
                Console.Write($"{ item.Pentanuc1st}\t{item.Pentanuc2nd}\t{item.Pentanuc3rd}\t{item.Pentanuc4th}\t{item.Pentanuc5th}\t");
                Console.Write($"{item.PentaFrq1st.ToString("0.0000")}\t{item.PentaFrq2nd.ToString("0.0000")}\t{item.PentaFrq3rd.ToString("0.0000")}\t{item.PentaFrq4th.ToString("0.0000")}\t{item.PentaFrq5th.ToString("0.0000")}\t");
                Console.WriteLine($"{(item.PentaFrq1st+ item.PentaFrq2nd+ item.PentaFrq3rd+ item.PentaFrq4th+item.PentaFrq5th).ToString("0.0000")}");
            }
        }
Exemplo n.º 3
0
        public static void Main(string[] args)
        {
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.gb";
            string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.test.gb";

            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short1.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short2.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short3.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.shuffle.test.gb";
            Console.WriteLine($"Calc seq cds trinucs for { Path.GetFileName(fileName) }");

            GBSequence gbSequence = new GBSequence(fileName);
            GBSeq      gbSeq      = gbSequence.GbSeq();

            Console.WriteLine(gbSeq);

            GBSeqFeatures gBSeqFeatures    = new GBSeqFeatures(fileName);
            List <GBFeat> cdsFeatures      = gBSeqFeatures.FeaturesSeparation();
            List <GBFeat> completeFeatures = gBSeqFeatures.CompleteSeparation(cdsFeatures);

            TrinucCalc trinucCalc = new TrinucCalc();
            Sequence   mixSeq     = new Sequence()
            {
                SeqName = "CDS and random seq mix"
            };
            RandSeq randSeq = new RandSeq();

            double trinucDiff = 0;

            foreach (var item in completeFeatures)
            {
                string subSeq       = string.Empty;
                string randomSubSeq = string.Empty;

                if (item.SeqType == "CDS" && item.SeqEnd - item.SeqStart > 30)
                {
                    Console.Write($"{item.SeqType}\t{item.SeqStart}\t{item.SeqEnd}\t");
                    subSeq = gbSeq.Seq.Substring(item.SeqStart, item.SeqEnd - item.SeqStart + 1);
                    //var trinucCalc = new TrinucCalc(item.SeqType, subSeq);
                    trinucDiff = trinucCalc.Calculation("CDS", subSeq);
                    Console.WriteLine($"{subSeq}\t{trinucDiff.ToString("0.0000")}");
                    mixSeq.Seq += subSeq;

                    int    randSeqNumber = 20;
                    double averageRCDS1  = 0;

                    for (int i = 0; i < randSeqNumber; i++)
                    {
                        randomSubSeq = randSeq.RandomSeq(subSeq, 1);
                        Console.Write($"RCDS1\t{item.SeqStart}\t{item.SeqEnd}\t");
                        trinucDiff = trinucCalc.Calculation("RCDS1", randomSubSeq);
                        Console.WriteLine($"{randomSubSeq}\t{trinucDiff.ToString("0.0000")}");
                        averageRCDS1 += trinucDiff;
                    }
                    Console.WriteLine($"Average RCDS1 {(averageRCDS1/randSeqNumber).ToString("0.0000")}\n");
                    mixSeq.Seq += randomSubSeq;

                    double averageRCDS2 = 0;
                    for (int i = 0; i < randSeqNumber; i++)
                    {
                        randomSubSeq = randSeq.RandomSeq(subSeq, 2);
                        Console.Write($"RCDS2\t{item.SeqStart}\t{item.SeqEnd}\t");
                        trinucDiff = trinucCalc.Calculation("RCDS2", randomSubSeq);
                        Console.WriteLine($"{randomSubSeq}\t{trinucDiff.ToString("0.0000")}");
                        averageRCDS2 += trinucDiff;
                    }
                    Console.WriteLine($"Average RCDS2 {(averageRCDS2/ randSeqNumber).ToString("0.0000")}\n");
                    mixSeq.Seq += randomSubSeq;

                    double averageRCDS3 = 0;
                    for (int i = 0; i < randSeqNumber; i++)
                    {
                        randomSubSeq = randSeq.RandomSeq(subSeq, 3);
                        Console.Write($"RCDS3\t{item.SeqStart}\t{item.SeqEnd}\t");
                        trinucDiff = trinucCalc.Calculation("RCDS3", randomSubSeq);
                        Console.WriteLine($"{randomSubSeq}\t{trinucDiff.ToString("0.0000")}");
                        averageRCDS3 += trinucDiff;
                    }
                    Console.WriteLine($"Average RCDS3 {(averageRCDS3 / randSeqNumber).ToString("0.0000")}\n");
                    mixSeq.Seq += randomSubSeq;

                    Console.WriteLine("\n");
                    //Console.WriteLine(subSeq);
                    //Console.WriteLine(randomSubSeq);
                    //Console.WriteLine(  );
                }
            }

            //CDS search in artificial sequence mooving fragment by particular step.
            //for (int i = 0; i < mixSeq.Seq.Length; i++)
            //{
            //    if (i > 0 && i % 60 == 0) Console.Write("\n");
            //    Console.Write(mixSeq.Seq[i]);
            //}
            Console.WriteLine("\n");

            string seq      = mixSeq.Seq;
            int    fragment = 65;
            //int step = 66;
            int step = 5;

            try
            {
                for (int i = 0; i < seq.Length; i += step)
                {
                    string fragSeq = seq.Substring(i, fragment);
                    //Console.WriteLine( fragSeq);
                    trinucDiff = trinucCalc.Calculation("FRAG", fragSeq);
                    Console.WriteLine($"FRAG\t{fragSeq}\t{trinucDiff.ToString("0.0000")}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemplo n.º 4
0
        public static void Main(string [] args)
        {
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.gb";
            string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.test.gb";

            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short1.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short2.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.shuffle.test.gb";
            Console.WriteLine($"Calc seq cds trinucs for { Path.GetFileName (fileName) }");

            GBSequence gbSequence = new GBSequence(fileName);
            var        gbSeq      = gbSequence.GbSeq();



            GBFeatures gbFeatures = new GBFeatures(fileName);
            var        gbCds      = gbFeatures.Cds();

            GBSeparation gBSeparation = new GBSeparation(gbSeq, gbCds);

            gBSeparation.GBSeq();

            TrinucDiff trinucDiff = new TrinucDiff();

            Console.WriteLine($"Seq length {gbSeq.Seq.Length}\n{ gbSeq.Seq.Substring (0, 30)}....{ gbSeq.Seq.Substring (gbSeq.Seq.Length - 30)}\n");

            int randFragLength = 1;

            foreach (var item in gbCds)
            {
                if (item.CdsEnd - item.CdsStart >= 60)
                {
                    TrinucCalc trinucCalc = new TrinucCalc();
                    double     triDiff    = trinucCalc.Calculation("CDS", item.CdsSeq);
                    Console.Write($"CDS\t{item.CdsStart}\t{item.CdsEnd}\t{item.CdsSeq.Substring (0, 9)}...{item.CdsSeq.Substring (item.CdsSeq.Length - 9)}\t");
                    Console.Write($"{trinucDiff.DiffSum1st2nd.ToString("0.0000")}\t{trinucDiff.DiffSum1st3rd.ToString ("0.0000")}\t{trinucDiff.DiffSum2nd3rd.ToString ("0.0000")}\t");
                    Console.WriteLine($"{triDiff.ToString("0.0000")}");

                    for (int i = 0; i < 10; i++)
                    {
                        RandomSeq randomSeq = new RandomSeq(item.CdsSeq);
                        string    randSeq   = randomSeq.RandomSeqByFragment(randFragLength);

                        TrinucCalc randtrinucCalc = new TrinucCalc();
                        triDiff = randtrinucCalc.Calculation("RCDS", randSeq);
                        Console.Write($"RCDS\t{item.CompCdsStart}\t{item.CompCdsEnd}\t{randSeq.Substring (0, 9)}...{randSeq.Substring (randSeq.Length - 9)}\t");
                        Console.Write($"{trinucDiff.DiffSum1st2nd.ToString ("0.0000")}\t{trinucDiff.DiffSum1st3rd.ToString ("0.0000")}\t{trinucDiff.DiffSum2nd3rd.ToString ("0.0000")}\t");
                        Console.WriteLine($"{triDiff.ToString ("0.0000")}");
                    }
                }

                if (item.CompCdsEnd - item.CompCdsStart >= 60)
                {
                    TrinucCalc trinucCalc = new TrinucCalc();
                    double     triDiff    = trinucCalc.Calculation("CCDS", item.CompCdsSeq);
                    Console.Write($"CCDS\t{item.CompCdsStart}\t{item.CompCdsEnd}\t{item.CompCdsSeq.Substring (0, 9)}...{item.CompCdsSeq.Substring (item.CompCdsSeq.Length - 9)}\t");
                    Console.Write($"{trinucDiff.DiffSum1st2nd.ToString ("0.0000")}\t{trinucDiff.DiffSum1st3rd.ToString ("0.0000")}\t{trinucDiff.DiffSum2nd3rd.ToString ("0.0000")}\t");
                    Console.WriteLine($"{triDiff.ToString ("0.0000")}");

                    for (int i = 0; i < 10; i++)
                    {
                        RandomSeq randomSeq = new RandomSeq(item.CompCdsSeq);
                        string    randSeq   = randomSeq.RandomSeqByFragment(randFragLength);

                        TrinucCalc randtrinucCalc = new TrinucCalc();
                        triDiff = randtrinucCalc.Calculation("RCCDS", randSeq);
                        Console.Write($"RCCDS\t{item.CdsStart}\t{item.CdsEnd}\t{randSeq.Substring (0, 9)}...{randSeq.Substring (randSeq.Length - 9)}\t");
                        Console.Write($"{trinucDiff.DiffSum1st2nd.ToString ("0.0000")}\t{trinucDiff.DiffSum1st3rd.ToString ("0.0000")}\t{trinucDiff.DiffSum2nd3rd.ToString ("0.0000")}\t");
                        Console.WriteLine($"{triDiff.ToString ("0.0000")}");
                    }
                }

                //PrintOut printOut = new PrintOut (gbSeq, gbCds, 30, trinucDiff);
                //printOut.SeqPrint ();
                //printOut.CdsPrint ();
                //printOut.CompCdsPrint ();
            }
        }
Exemplo n.º 5
0
        public static void Main(string[] args)
        {
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.test.gb";
            string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short.gb";

            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short1.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.short2.gb";
            //string fileName = "/home/alvydas/Oligonucleotides/Sequencies/Bacteria/Escherichia.coli.shuffle.test.gb";
            Console.WriteLine($"Calc seq cds trinucs for { Path.GetFileName(fileName) }");

            GBSequence gbSequence = new GBSequence(fileName);
            var        gbSeq      = gbSequence.GbSeq();

            GBSeqFeatures gBSeqFeatures    = new GBSeqFeatures(fileName);
            List <GBFeat> cdsFeatures      = gBSeqFeatures.FeaturesSeparation();
            List <GBFeat> completeFeatures = gBSeqFeatures.CompleteSeparation(cdsFeatures);

            List <TrinucDiff> triDiff = new List <TrinucDiff>();

            foreach (var item in completeFeatures)
            {
                string subSeq = string.Empty;
                Console.Write($"{item.SeqType}\t{item.SeqStart}\t{item.SeqEnd}\t");

                if (item.SeqEnd - item.SeqStart > 40)
                {
                    subSeq = gbSeq.Seq.Substring(item.SeqStart, item.SeqEnd - item.SeqStart + 1);

                    if (item.SeqType == "CDS" || item.SeqType == "JCDS" || item.SeqType == "NCDS")
                    {
                        Console.Write($"{subSeq.Substring(0, 10)}...{subSeq.Substring(subSeq.Length - 10)}\t");
                        TrinucCalc trinucCalc = new TrinucCalc();
                        TrinucDiff trinucDiff = trinucCalc.Calculation(item.SeqType, subSeq);
                        Console.WriteLine($"{ trinucDiff.DiffSum1st2nd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum1st3rd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum2nd3rd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum.ToString("0.0000") }");

                        if (item.SeqType == "CDS" || item.SeqType == "NCDS")
                        {
                            triDiff.Add(new TrinucDiff {
                                SeqType       = item.SeqType,
                                DiffSum1st2nd = trinucDiff.DiffSum1st2nd,
                                DiffSum1st3rd = trinucDiff.DiffSum1st3rd,
                                DiffSum2nd3rd = trinucDiff.DiffSum2nd3rd,
                                DiffSum       = trinucDiff.DiffSum
                            });
                        }
                    }
                    else if (item.SeqType == "CCDS" || item.SeqType == "CJCDS")
                    {
                        GBSequenceComp gbSequenceComp = new GBSequenceComp(subSeq);
                        subSeq = gbSequenceComp.SeqComp();
                        Console.Write($"{subSeq.Substring(0, 10)}...{subSeq.Substring(subSeq.Length - 10)}\t");
                        TrinucCalc trinucCalc = new TrinucCalc();
                        TrinucDiff trinucDiff = trinucCalc.Calculation(item.SeqType, subSeq);
                        Console.WriteLine($"{ trinucDiff.DiffSum1st2nd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum1st3rd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum2nd3rd.ToString("0.0000") }\t" +
                                          $"{ trinucDiff.DiffSum.ToString("0.0000") }");

                        triDiff.Add(new TrinucDiff {
                            SeqType       = item.SeqType,
                            DiffSum1st2nd = trinucDiff.DiffSum1st2nd,
                            DiffSum1st3rd = trinucDiff.DiffSum1st3rd,
                            DiffSum2nd3rd = trinucDiff.DiffSum2nd3rd,
                            DiffSum       = trinucDiff.DiffSum
                        });
                    }
                }
                else
                {
                    Console.WriteLine("nnnnnnnnnn...nnnnnnnnnn\t0.0000");
                }
            }

            Console.WriteLine();

            string       filePath = string.Empty;
            StreamWriter FH;

            filePath = "/home/alvydas/Oligonucleotides/TrinucCalc/cdsframe.dat";
            FH       = new StreamWriter(filePath);
            foreach (var item in triDiff)
            {
                if (item.SeqType == "CDS" || item.SeqType == "CCDS")
                {
                    Console.WriteLine($"{item.SeqType}\t{item.DiffSum1st2nd.ToString("0.0000")}\t{item.DiffSum1st3rd.ToString("0.0000")}\t{item.DiffSum2nd3rd.ToString("0.0000")}\t{item.DiffSum.ToString("0.0000")}");
                    FH.WriteLine($"{item.SeqType}\t{item.DiffSum1st2nd.ToString("0.0000")}\t{item.DiffSum1st3rd.ToString("0.0000")}\t{item.DiffSum2nd3rd.ToString("0.0000")}\t{item.DiffSum.ToString("0.0000")}");
                }
            }
            FH.Close();

            Console.WriteLine();

            filePath = "/home/alvydas/Oligonucleotides/TrinucCalc/ncdsframe.dat";
            FH       = new StreamWriter(filePath);
            foreach (var item in triDiff)
            {
                if (item.SeqType == "NCDS")
                {
                    Console.WriteLine($"{item.SeqType}\t{item.DiffSum1st2nd.ToString("0.0000")}\t{item.DiffSum1st3rd.ToString("0.0000")}\t{item.DiffSum2nd3rd.ToString("0.0000")}\t{item.DiffSum.ToString("0.0000")}");
                    FH.WriteLine($"{item.SeqType}\t{item.DiffSum1st2nd.ToString("0.0000")}\t{item.DiffSum1st3rd.ToString("0.0000")}\t{item.DiffSum2nd3rd.ToString("0.0000")}\t{item.DiffSum.ToString("0.0000")}");
                }
            }
            FH.Close();

            string rpath = "/usr/bin/Rscript";
            //string arg1 = "/home/alvydas/Oligonucleotides/TrinucCalc/R/cdsframe.dat";
            //string arg2 = "/home/alvydas/Oligonucleotides/TrinucCalc/R/ncdsframe.dat";
            string scriptpath = "/home/alvydas/Oligonucleotides/TrinucCalc/framefrq.R cdsframe.dat ncdsframe.dat";
            string output     = RScript.RunRScript(rpath, scriptpath);
        }