Exemple #1
0
        public string UpdateAntigen(Antigen antigen)
        {
            try
            {
                var antigenToUpdate = App.dbcontext.Antigens.FirstOrDefault(a => a.AntigenId == antigen.AntigenId);
                if (antigenToUpdate.AntigenName != antigen.AntigenName)
                {
                    var auditRecord = new Audit
                    {
                        RecordId    = antigen.AntigenId,
                        Type        = AuditTypes.Antigen.ToString(),
                        Description = AuditEvents.AntigenUpdated.ToString(),
                        UpdatedBy   = App.LoggedInUser.UserId,
                        UpdatedDt   = DateTime.Now
                    };
                    App.dbcontext.Audits.Add(auditRecord);

                    antigenToUpdate.AntigenName = antigen.AntigenName;

                    App.dbcontext.SaveChanges();
                }

                return(null);
            }
            catch (Exception ex)
            {
                var logNumber = Logger.Log(nameof(CreateAntigen), new Dictionary <string, object>
                {
                    { LogConsts.Exception, ex }
                });

                return($"{ Messages.Exception} - log: {logNumber}");
            }
        }
Exemple #2
0
        public AntigenResponse CreateAntigen(Antigen antigen)
        {
            try
            {
                var existingAntigen = App.dbcontext.Antigens.FirstOrDefault(a => a.AntigenName == antigen.AntigenName);
                if (existingAntigen != null)
                {
                    return(new AntigenResponse {
                        ErrorMessage = Messages.AlreadyExists
                    });
                }

                antigen.AntigenId = Guid.NewGuid().ToString();
                antigen.CreatedBy = App.LoggedInUser.UserId;
                antigen.CreatedDt = DateTime.Now;

                App.dbcontext.Antigens.Add(antigen);
                App.dbcontext.SaveChanges();

                return(new AntigenResponse {
                    Antigen = antigen
                });
            }
            catch (Exception ex)
            {
                var logNumber = Logger.Log(nameof(CreateAntigen), new Dictionary <string, object>
                {
                    { LogConsts.Exception, ex }
                });

                return(new AntigenResponse {
                    ErrorMessage = $"{ Messages.Exception} - log: {logNumber}"
                });
            }
        }
Exemple #3
0
        protected virtual MolecularPattern ProcessAntigen(Antigen <T> antigen)
        {
            var e = new ProcessAntigenEventArgs <T>(antigen.RawData);

            OnProcessAntigen(e);

            return(e.Peptide);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            // описали антигены, составляющие обучающую выборку.
            Antigen[] trainingSet = new Antigen[] {
                //new Antigen(new int[,] { { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } }, 1),
                //new Antigen(new int[,] { { 1, 0, 1 }, { 1, 0, 1 }, { 1, 1, 1 }, { 0, 0, 1 } }, 4),
                //new Antigen(new int[,] { { 1, 1, 1 }, { 0, 0, 1 }, { 0, 0, 1 }, { 0, 0, 1 } }, 7)
                new Antigen(new bool[, ] {
                    { false, true, false }, { false, true, false }, { false, true, false }, { false, true, false }
                }, 1),
                new Antigen(new bool[, ] {
                    { true, false, true }, { true, false, true }, { true, true, true }, { false, false, true }
                }, 4),
                new Antigen(new bool[, ] {
                    { true, true, true }, { false, false, true }, { false, false, true }, { false, false, true }
                }, 7)
            };
            foreach (Antigen ag in trainingSet)
            {
                ag.ShowCell();
            }

            AISRecognition ais = new AISRecognition(PopulationAbSize, PopulationMCellSize);

            ais.Training(trainingSet, (double)(Cell.PixelCount - 1) / Cell.PixelCount, SelectionForCloningAmount, MutationProbability);

            Console.WriteLine();
            Console.WriteLine("Test set:");
            Console.WriteLine();

            // набор тестовых антигенов, потом вместо него будет функция для запроса ввода антигена от пользователя
            Antigen[] testAg =
            {
                new Antigen(new bool[, ] {
                    { false,           true, false },{ true,    true,  false }, { false, true,  false }, { false, true,  false }
                }, 1),
                new Antigen(new bool[, ] {
                    { true,            false, true },{ true,    true,  true  }, { false, false, true  }, { false, false, true  }
                }, 4),
                new Antigen(new bool[, ] {
                    { true,            false, true },{ true,    true,  true  }, { false, true,  false }, { false, true,  false }
                }, 4),
                new Antigen(new bool[, ] {
                    { true,            true, true },{ true,    false, true  }, { false, false, true  }, { false, false, true  }
                }, 7),
                new Antigen(new bool[, ] {
                    { true,            true, true },{ false,   false, true  }, { false, false, true  }, { false, false, true  }
                }, 7)
            };
            foreach (Antigen ag in testAg)
            {
                ag.ShowCell();
                ais.GetResult(ag);
                Console.WriteLine();
                Console.WriteLine();
            }
        }
Exemple #5
0
        private bool IsPAMP(Antigen <T> antigen, out double level)
        {
            var e = new ProcessSpampEventArgs(antigen.Spamp);

            OnProcessSpamp(e);
            level = e.Level;

            return(e.IsPamp);
        }
Exemple #6
0
 // Use this for initialization
 void Start()
 {
     health          = 100;
     bulletDamage    = 50;
     speed           = 5;
     duplicationTime = 5f;
     offset          = new Vector3(3f, 0f, 3f);
     antigen         = (Antigen)Random.Range(0, 3);
     gameObject.tag  = "Virus " + ((int)antigen).ToString();
 }
Exemple #7
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Q))
     {
         Rigidbody clone = (Rigidbody)Instantiate(projectile, transform.position, transform.rotation);
         // Add force to the cloned object in the object's forward direction
         clone.velocity = transform.TransformDirection(Vector3.forward * acceleration);
     }
     if (Input.GetKeyDown(KeyCode.E))
     {
         antigen = (Antigen)((int)(antigen + 1) % numAntigens);
         //Debug.Log(antigen);
     }
 }
Exemple #8
0
        protected Signal[] GetSignals(T eventBlock)
        {
            var signals = new List <Signal>();

            // compute Antigen signal
            var spamp = GetSpamp(eventBlock);

            if (spamp != null)
            {
                var antigen = new Antigen <T>(Address.Unknown, spamp, eventBlock);
                signals.Add(antigen);
            }

            var dangerPattern = GetSdamp(eventBlock);

            if (dangerPattern != null)
            {
                var sdamp = new Sdamp(Address.Unknown, dangerPattern);
                signals.Add(sdamp);
            }

            /*if (ITH >= 0 && LBP >= 0 && OHD >= 0)
             * {
             *      var dangerDistance =
             *              -0.131203973036663 * ITH +
             *              7.899539817161498 * LBP -
             *              0.203824367425025 * OHD -
             *              2.916552222394642;
             *
             *      if (dangerDistance < 0)
             *      {
             *              signal.Type = SignalType.DAMP;
             *              signal.Concentration = Math.Abs(dangerDistance);
             *      }
             *      else
             *      {
             *              signal.Type = SignalType.Safe;
             *              signal.Concentration = dangerDistance;		// TODO: Unknwon value
             *      }
             * }
             * else
             * {
             *      signal.Type = SignalType.Safe;
             *      signal.Concentration = 0;
             * }*/
            return(signals.ToArray());
        }