public void MatchSeq(SequenceModels sequenceModels) { if (!Regex.IsMatch(sequenceModels.Seq.Seq, @"^[ACGTacgt]*$")) { sequenceModels.Match.Match = false; } }
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); }
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; } }
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); }
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)); }
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)); }