public async Task <GeneEditorViewModel> OptimizeDNASequence(GeneEditorViewModel geneEditorViewModel) { string optimizedDNASequence = null; geneEditorViewModel.InitialSequence = geneEditorViewModel.InitialSequence.Trim().Replace(" ", string.Empty).ToUpper(); if (geneEditorViewModel.SelectedInitialSequenceType == InitialSequenceType.ProteinInitialSequence) { optimizedDNASequence = await codonOptimizationService.OptimizeProteinSequence( geneEditorViewModel.InitialSequence, geneEditorViewModel.SelectedOrganismId); } else if (geneEditorViewModel.SelectedInitialSequenceType == InitialSequenceType.DNAInitialSequence) { optimizedDNASequence = await codonOptimizationService.OptimizeDNASequence( geneEditorViewModel.InitialSequence, geneEditorViewModel.SelectedOrganismId); } geneEditorViewModel.OptimizedDNASequence = optimizedDNASequence; Gene gene = CreateGene(geneEditorViewModel.Name, geneEditorViewModel.OptimizedDNASequence, geneEditorViewModel.SelectedOrganismId, geneEditorViewModel.KPlusConcentration, geneEditorViewModel.DMSO); geneEditorViewModel.GeneId = gene.Id; geneEditorViewModel.GeneFragmentLength = DefaultOligoLength; geneEditorViewModel.GeneFragmentOverlappingLength = DefaultOverlappingLength; geneEditorViewModel.IsGeneOptimized = true; Organism organism = unitOfWork.GetById <Organism>(geneEditorViewModel.SelectedOrganismId); geneEditorViewModel.SelectedOrganismName = organism.Name; return(geneEditorViewModel); }
public GeneEditorViewModel GetGeneEditorViewModel(string geneId) { Gene gene = unitOfWork.GetById <Gene>(geneId); GeneEditorViewModel geneEditorViewModel = new GeneEditorViewModel(); geneEditorViewModel.IsGeneOptimized = true; geneEditorViewModel.Name = gene.Name; geneEditorViewModel.GeneId = gene.Id; geneEditorViewModel.OptimizedDNASequence = gene.DNASequence; Organism organism = unitOfWork.GetById <Organism>(gene.OrganismId); geneEditorViewModel.AllOrganisms = new List <ListItem>() { new ListItem { Id = organism.Id, Text = organism.Name } }; geneEditorViewModel.SelectedOrganismId = organism.Id; geneEditorViewModel.SelectedOrganismName = organism.Name; geneEditorViewModel.KPlusConcentration = gene.KPlusConcentration; geneEditorViewModel.DMSO = gene.DMSO; var geneFragment = gene.GeneFragments.First(); geneEditorViewModel.GeneFragmentLength = geneFragment.OligoLength; geneEditorViewModel.GeneFragmentOverlappingLength = geneFragment.OverlappingLength; return(geneEditorViewModel); }
public async Task <GeneEditorViewModel> GetGeneEditorViewModel() { GeneEditorViewModel geneEditorViewModel = new GeneEditorViewModel(); geneEditorViewModel.SelectedInitialSequenceType = InitialSequenceType.ProteinInitialSequence; IEnumerable <Organism> organisms = await unitOfWork.GetAll <Organism>().ToListAsync(); geneEditorViewModel.AllOrganisms = organisms.Select(x => new ListItem() { Id = x.Id, Text = x.Name }); if (geneEditorViewModel.AllOrganisms.Any()) { ListItem defaultOrganism = geneEditorViewModel.AllOrganisms.First(); geneEditorViewModel.SelectedOrganismId = defaultOrganism.Id; } geneEditorViewModel.KPlusConcentration = DefaultKPlusConcentration; geneEditorViewModel.DMSO = DefaultDMSO; geneEditorViewModel.IsGeneOptimized = false; return(geneEditorViewModel); }
public async Task <JsonResult> UpdateGeneFragments(GeneEditorViewModel geneEditorViewModel) { await geneEditorService.UpdateGeneFragments( geneEditorViewModel.GeneId, geneEditorViewModel.OptimizedDNASequence, geneEditorViewModel.GeneFragmentLength, geneEditorViewModel.GeneFragmentOverlappingLength, geneEditorViewModel.KPlusConcentration, geneEditorViewModel.DMSO); return(JsonSuccess(geneEditorViewModel.GeneId)); }
public async Task <JsonResult> OptimizeGene(GeneEditorViewModel geneEditorViewModel) { // if (string.IsNullOrWhiteSpace(geneEditorViewModel.ProteinInitialSequence) && // (string.IsNullOrWhiteSpace(geneEditorViewModel.DNAInitialSequence) || geneEditorViewModel.DNAInitialSequence.Length % 3 != 0)) // { // ModelState.AddModelError(string.Empty, "Wrong sequence"); // return View(geneEditorViewModel); // } // ModelState.Clear(); try { geneEditorViewModel = await geneEditorService.OptimizeDNASequence(geneEditorViewModel); return(Json(geneEditorViewModel)); } catch (Exception ex) { return(JsonError()); } }
public JsonResult GetGeneEditorViewModel(string geneId) { GeneEditorViewModel geneEditorViewModel = geneEditorService.GetGeneEditorViewModel(geneId); return(Json(geneEditorViewModel, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Index(string genesProjectName) { GeneEditorViewModel geneEditorViewModel = await geneEditorService.GetGeneEditorViewModel(); return(View(geneEditorViewModel)); }
public async Task <ActionResult> Index() { GeneEditorViewModel geneEditorViewModel = await geneEditorService.GetGeneEditorViewModel(); return(View(geneEditorViewModel)); }