Esempio n. 1
0
 public void ActivateMolecule(IndividualMolecule molecule)
 {
     _transporter = molecule.DowncastTo <IndividualTransporter>();
     _view.HideWarning();
     _view.BindTo(_transporterExpressionDTOMapper.MapFrom(_transporter));
     _moleculePropertiesPresenter.Edit(molecule, SimulationSubject.DowncastTo <TSimulationSubject>());
 }
        protected override void Context()
        {
            _context = A.Fake <IExecutionContext>();
            var expressionProfile = DomainHelperForSpecs.CreateExpressionProfile <IndividualEnzyme>();

            (_molecule, _)     = expressionProfile;
            _protein           = _molecule.DowncastTo <IndividualProtein>();
            _result            = new QueryExpressionResults(_expressionResults);
            _simulationSubject = A.Fake <ISimulationSubject>();
            sut = new EditIndividualMoleculeExpressionInSimulationSubjectFromQueryCommand(_molecule, _result, _simulationSubject);

            A.CallTo(() => _simulationSubject.AllExpressionParametersFor(_molecule)).Returns(_allExpressionParameters);
        }
 public void ActivateMolecule(IndividualMolecule molecule)
 {
     Activate(molecule.DowncastTo <TProtein>());
 }
        private IEnumerable <IContainer> allContainersFor(Organism organism, IndividualMolecule molecule, IEnumerable <IContainer> allContainers, IMoleculeExpressionContainer expressionContainer)
        {
            if (molecule.MoleculeType == QuantityType.Transporter)
            {
                return(allContainersForTransporter(organism, molecule.DowncastTo <IndividualTransporter>(), allContainers, expressionContainer.DowncastTo <ITransporterExpressionContainer>()));
            }

            var protein = molecule.DowncastTo <IndividualProtein>();

            //plasma always generated
            if (expressionContainer.IsPlasma())
            {
                return(allPlasmaCompartmentsOf(allContainers));
            }

            switch (protein.TissueLocation)
            {
            case TissueLocation.ExtracellularMembrane:
                if (expressionContainer.IsBloodCell())
                {
                    return(allPlasmaCompartmentsOf(allContainers));
                }
                if (expressionContainer.IsVascularEndothelium())
                {
                    if (protein.MembraneLocation == MembraneLocation.Apical)
                    {
                        return(allPlasmaCompartmentsOf(allContainers));
                    }

                    return(allInterstitialCompartmentsOf(allContainers));
                }
                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Interstitial));

            case TissueLocation.Intracellular:
                if (expressionContainer.IsBloodCell())
                {
                    return(allBloodCellsCompartmentsOf(allContainers));
                }

                if (expressionContainer.IsVascularEndothelium())
                {
                    if (protein.IntracellularVascularEndoLocation == IntracellularVascularEndoLocation.Endosomal)
                    {
                        return(allEndosomeCompartmentsOf(allContainers));
                    }

                    return(allInterstitialCompartmentsOf(allContainers));
                }
                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Intracellular));

            case TissueLocation.Interstitial:
                if (expressionContainer.IsBloodCell())
                {
                    return(allBloodCellsCompartmentsOf(allContainers));
                }

                if (expressionContainer.IsVascularEndothelium())
                {
                    return(allInterstitialCompartmentsOf(allContainers));
                }

                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Interstitial));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }