Exemple #1
0
 public void  MatchSeq(SequenceModels sequenceModels)
 {
     if (!Regex.IsMatch(sequenceModels.Seq.Seq, @"^[ACGTacgt]*$"))
     {
         sequenceModels.Match.Match = false;
     }
 }
Exemple #2
0
        public SequenceModels SeqFile(SequenceModels sequenceModels)
        {
            string filePath = "Data/";
            string seqLine  = string.Empty;

            sequenceModels.Seq.Seq = string.Empty;

            using (StreamReader stream = new StreamReader(filePath))
            {
                while ((seqLine = stream.ReadLine()) != null)
                {
                    if (seqLine.Contains(">"))
                    {
                        continue;
                    }

                    sequenceModels.Seq.Seq += seqLine.ToLower();
                }
            }

            sequenceModels.Seq.SeqLength = sequenceModels.Seq.Seq.Length;

            if (sequenceModels.Seq.Seq.Length >= 400)
            {
                sequenceModels.OutputSeq.OutSeq = sequenceModels.Seq.Seq.Substring(0, 200) + "..." +
                                                  sequenceModels.Seq.Seq.Substring(sequenceModels.Seq.Seq.Length - 200);
            }
            else
            {
                sequenceModels.OutputSeq.OutSeq = sequenceModels.Seq.Seq;
            }

            return(sequenceModels);
        }
Exemple #3
0
        public void Calc(SequenceModels sequenceModels)
        {
            List <string> dinuc1st = new List <string>();
            List <string> dinuc2nd = new List <string>();

            char[] nucArray;
            int    seqLength = sequenceModels.Seq.SeqLength;

            Cseq     = sequenceModels.Seq.Seq + sequenceModels.Seq.Seq.Substring(0, 2);
            nucArray = Cseq.ToCharArray();

            try
            {
                if (seqLength % 2 == 0)
                {
                    for (int i = 0; i < seqLength; i += 2)
                    {
                        dinuc1st.Add(nucArray[i].ToString() + nucArray[i + 1].ToString());
                        dinuc2nd.Add(nucArray[i + 1].ToString() + nucArray[i + 2].ToString());
                    }
                }
                else
                {
                    for (int i = 0; i < seqLength - 1; i += 2)
                    {
                        dinuc1st.Add(nucArray[i].ToString() + nucArray[i + 1].ToString());
                        dinuc2nd.Add(nucArray[i + 1].ToString() + nucArray[i + 2].ToString());
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            foreach (var item in sequenceModels.Dinuc.Dinucs)
            {
                item.Dinuc1stFrame = dinuc1st.Count(di => di.Contains(item.Dinuc));
                item.Dinuc2ndFrame = dinuc2nd.Count(di => di.Contains(item.Dinuc));

                item.Dinuc1stFrameFrq = (double)decimal.Divide(item.Dinuc1stFrame, dinuc1st.Count);
                item.Dinuc2ndFrameFrq = (double)decimal.Divide(item.Dinuc2ndFrame, dinuc2nd.Count);

                item.DinucFrqDiff = Math.Abs(item.Dinuc1stFrameFrq - item.Dinuc2ndFrameFrq);

                sequenceModels.Dinuc.DinucDiffSum += item.DinucFrqDiff;
            }
        }
Exemple #4
0
        public ActionResult Calculation(SequenceModels sequenceModels)
        {
            Match match = new Match();

            match.MatchSeq(sequenceModels);
            if (sequenceModels.Match.Match)
            {
                DiCalc diCalc = new DiCalc();
                diCalc.Calc(sequenceModels);
                sequenceModels.Match.Match = true;

                return(View(sequenceModels));
            }
            else
            {
                return(View("~/Views/Home/Index.cshtml", sequenceModels));
            }

            //DinucCalc dinucCalculation = new DinucCalc();
            //dinucCalculation.Calculation(multipleModel);
        }
Exemple #5
0
        public ActionResult SeqIn(SequenceModels sequenceModels, string choose)
        {
            switch (choose)
            {
            //case "add-test":
            //sequenceModels.TestSeq.TSeq = sequenceModels.TestSeq.TSeq;
            //break;
            case "make-random":
                RandomSeq randomSeq = new RandomSeq();
                sequenceModels.Seq.Seq = randomSeq.RandSeq();
                break;

            case "add-random":
                sequenceModels.Seq.Seq = sequenceModels.RandomSeq.Seq;
                break;
                //case "add-from-list":
                //SequenceFile sequenceFile = new SequenceFile();
                //sequenceFile.SeqFile(sequenceModels);
                //break;
            }

            return(View("~/Views/Home/Index.cshtml", sequenceModels));
        }
Exemple #6
0
        public ActionResult Index()
        {
            Sequence sequence = new Sequence
            {
                Seq     = string.Empty,
                SeqName = "SomeSeq"
            };

            sequence.SeqLength = sequence.Seq.Length;

            SeqMatch seqMatch = new SeqMatch
            {
                Match = true
            };

            List <TestSequence> testSequence = new List <TestSequence>
            {
                new TestSequence {
                    Seq = "aaacagatcacccgctgagcgggttatctgtt", SeqName = "All dinucs"
                },
                new TestSequence {
                    Seq = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", SeqName = "Mono dinucs"
                },
                new TestSequence {
                    Seq = "agcgggctagtgcgtgagcgggctagtgcgtg", SeqName = "Odd seq length"
                },
                new TestSequence {
                    Seq = "agcgggctagtgcgtgcagcgggctagtgcgtg", SeqName = "Even seq length"
                }
            };

            TestSequence selectedTestSeq = new TestSequence
            {
                Seq     = string.Empty,
                SeqName = string.Empty
            };

            FileSequence fileSequence = new FileSequence
            {
                Seq         = string.Empty,
                SeqName     = string.Empty,
                SeqFileName = string.Empty
            };

            List <string> fSeqs = new List <string>
            {
                "Esherichia coli",
                "Lactococcus lactis"
            };

            SequenceModels sequenceModels = new SequenceModels
            {
                Seq             = sequence,
                Match           = seqMatch,
                TestSeq         = testSequence,
                SelectedTestSeq = selectedTestSeq,
                FSeqs           = fSeqs,
                FileSeq         = fileSequence
            };

            return(View(sequenceModels));
        }