Ejemplo n.º 1
0
        public override void GlobalContext()
        {
            base.GlobalContext();

            _compoundProcessRepo = IoC.Resolve <ICompoundProcessRepository>();
            _interactionTask     = IoC.Resolve <IInteractionTask>();
            var cloner             = IoC.Resolve <ICloneManager>();
            var enzymeFactory      = IoC.Resolve <IIndividualEnzymeFactory>();
            var transporterFactory = IoC.Resolve <IIndividualTransporterFactory>();

            var inhibitor = DomainFactoryForSpecs.CreateStandardCompound().WithName("Inhibitor");
            var protocol2 = DomainFactoryForSpecs.CreateStandardIVBolusProtocol().WithName("IV2");

            var allPartialProcesses = PartialProcesses.ToList();

            foreach (var metaTemplate in allPartialProcesses)
            {
                var moleculeName = "Molecule_" + metaTemplate.Name;

                if (metaTemplate as EnzymaticProcess != null)
                {
                    var individualProtein = enzymeFactory.CreateFor(_individual).WithName(moleculeName);
                    _individual.AddMolecule(individualProtein.DowncastTo <IndividualEnzyme>().WithName(moleculeName));
                }
                else
                {
                    var individualProtein = transporterFactory.CreateFor(_individual).WithName(moleculeName);
                    _individual.AddMolecule(individualProtein.DowncastTo <IndividualTransporter>().WithName(moleculeName));
                }

                var process = cloner.Clone(metaTemplate).DowncastTo <PartialProcess>();
                process.Name         = "Process " + moleculeName;
                process.MoleculeName = moleculeName;
                _compound.AddProcess(process);

                var inhibitionTemplate = _compoundProcessRepo.ProcessByName <InteractionProcess>(InhibitionProcessName);
                var inhibitionProcess  = cloner.Clone(inhibitionTemplate);
                inhibitionProcess.Name         = "InhibitionProcess " + moleculeName;
                inhibitionProcess.MoleculeName = moleculeName;
                inhibitor.AddProcess(inhibitionProcess);
            }

            _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(
                _individual, new[] { _compound, inhibitor }, new[] { _protocol, protocol2 }).DowncastTo <IndividualSimulation>();

            foreach (var inhibitionProcess in inhibitor.AllProcesses <InteractionProcess>())
            {
                var interactionSelection = new InteractionSelection {
                    CompoundName = inhibitor.Name, MoleculeName = inhibitionProcess.MoleculeName, ProcessName = inhibitionProcess.Name
                };
                _simulation.InteractionProperties.AddInteraction(interactionSelection);
            }

            DomainFactoryForSpecs.AddModelToSimulation(_simulation);
        }
Ejemplo n.º 2
0
 protected void ValidateInteractionContainersTest()
 {
     _interactionTask.AllInteractionContainers(_simulation).Count().ShouldBeEqualTo(PartialProcesses.Count());
 }