예제 #1
0
 private void Neo_Load(object sender, EventArgs e)
 {
     MS1Tolerance.Text = "5";
     MS2Tolerance.Text = "0.01";
     MassCalculator.importMasses();
     // To report progress from the background worker we need to set this property
     backgroundWorker1.WorkerReportsProgress = true;
     // This event will be raised on the worker thread when the worker starts
     backgroundWorker1.DoWork += new DoWorkEventHandler(Engine);
     // This event will be raised when we call ReportProgress
     backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
 }
        protected override void DoRealGo()
        {
            MassCalculator averageCalc = new MassCalculator(Atom.AverageMassFunction);
            MassCalculator monoCalc    = new MassCalculator(Atom.MonoMassFunction);

            Aminoacids aas = new Aminoacids();

            aas['C'].ResetMass(aas['C'].MonoMass + 57.0215, aas['C'].AverageMass + 57.0215);

            StringBuilder sb = new StringBuilder();

            double totalMass = 0.0;

            if (peptideSequence.Text.Length > 0)
            {
                double averageMass = aas.AveragePeptideMass(peptideSequence.Text);
                sb.Append(MyConvert.Format("PeptideMass={0:0.0000}; ", averageMass));

                totalMass = averageMass;
            }

            if (glycanStructure.Text.Length > 0)
            {
                AtomComposition ac          = new AtomComposition(glycanStructure.Text);
                double          averageMass = averageCalc.GetMass(ac);
                sb.Append(MyConvert.Format("GlycanMass={0:0.0000}; ", averageMass));

                if (totalMass > 0)
                {
                    totalMass += averageMass - 18.0;
                    sb.Append(MyConvert.Format("TotalMass={0:0.0000}; ", totalMass));

                    for (int charge = 2; charge <= 4; charge++)
                    {
                        sb.Append(MyConvert.Format("Charge{0}={1:0.0000}; ", charge, (totalMass + charge) / charge));
                    }
                }
            }

            txtResultInfo.Text = sb.ToString();
        }
예제 #3
0
        private static void MassConverter()
        {
            ICalculator calculator = new MassCalculator();

            Console.WriteLine("What mass unit do you want to convert from?");
            Console.WriteLine("Options: 1 for Milligrams, 2 for Grams, 3 for Kilograms, 4 for Ounces, 5 for Pounds, 6 for Stones");
            Console.WriteLine("Type 'exit' to stop the program.");
            var convertFrom = Console.ReadLine();

            while (!int.TryParse(convertFrom, out int number) || (Convert.ToInt32(convertFrom) < 1 || Convert.ToInt32(convertFrom) > 6))
            {
                Console.WriteLine("Error write only numbers and it must be between 1 and 6");
                Console.WriteLine("Type 'exit' to stop the program.");
                convertFrom = Console.ReadLine();

                if (convertFrom.ToLower() == "exit")
                {
                    break;
                }
            }

            Console.WriteLine("What mass unit do you want to convert to?");
            Console.WriteLine("Options: 1 for Milligrams, 2 for Grams, 3 for Kilograms, 4 for Ounces, 5 for Pounds, 6 for Stones");
            Console.WriteLine("Type 'exit' to stop the program.");
            var convertTo = Console.ReadLine();

            while (!int.TryParse(convertTo, out int number) || (Convert.ToInt32(convertTo) < 1 || Convert.ToInt32(convertTo) > 6))
            {
                Console.WriteLine("Error write only numbers and it must be between 1 and 6");
                Console.WriteLine("Type 'exit' to stop the program.");
                convertTo = Console.ReadLine();

                if (convertTo.ToLower() == "exit")
                {
                    break;
                }
            }

            Console.WriteLine("What is the value you want to convert?");
            var valueToConvert = Console.ReadLine();

            while (!double.TryParse(valueToConvert, out double number))
            {
                Console.WriteLine("Error write only numbers.");
                Console.WriteLine("Type 'exit' to stop the program.");
                valueToConvert = Console.ReadLine();

                if (valueToConvert.ToLower() == "exit")
                {
                    break;
                }
            }

            IUnit from = null;
            IUnit to   = null;

            double valueInDoubleToConvert = double.Parse(valueToConvert);

            switch (convertFrom)
            {
            case "1":
                from = new Milligram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "2":
                from = new Gram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "3":
                from = new Kilogram {
                    Value = valueInDoubleToConvert
                };
                break;

            case "4":
                from = new Ounce {
                    Value = valueInDoubleToConvert
                };
                break;

            case "5":
                from = new Pound {
                    Value = valueInDoubleToConvert
                };
                break;

            case "6":
                from = new Stone {
                    Value = valueInDoubleToConvert
                };
                break;
            }

            switch (convertTo)
            {
            case "1":
                to = new Milligram();
                break;

            case "2":
                to = new Gram();
                break;

            case "3":
                to = new Kilogram();
                break;

            case "4":
                to = new Ounce();
                break;

            case "5":
                to = new Pound();
                break;

            case "6":
                to = new Stone();
                break;
            }

            var result = calculator.Calculate(from, to);

            Console.WriteLine($"Well, {from.Value} {from.Name}(s) is equal to {result} {to.Name}(s).");
        }