// The calculations for unlabeled and neucode components are the same, currently
        public static List <Component> generate_neucode_components(double starter_mass)
        {
            List <Component> components = new List <Component>();
            InputFile        inFile     = new ProteoformSuiteInternal.InputFile("somepath", Labeling.NeuCode, Purpose.Identification);

            for (int i = 0; i < 2; i++)
            {
                Component light = new Component();
                Component heavy = new Component();
                light.input_file = inFile;
                heavy.input_file = inFile;
                light.id         = 1.ToString();
                heavy.id         = 2.ToString();
                light.weighted_monoisotopic_mass = starter_mass;
                heavy.weighted_monoisotopic_mass = starter_mass + starter_lysine_count * Lollipop.NEUCODE_LYSINE_MASS_SHIFT;
                light.intensity_sum_olcs         = starter_intensity;     //using the special intensity sum for overlapping charge states in a neucode pair
                heavy.intensity_sum_olcs         = starter_intensity / 2; //using the special intensity sum for overlapping charge states in a neucode pair
                light.rt_apex  = starter_rt;
                heavy.rt_apex  = starter_rt;
                light.accepted = true;
                heavy.accepted = true;
                ChargeState light_charge_state = new ChargeState(1, light.intensity_sum_olcs, light.weighted_monoisotopic_mass, 1.00727645D);
                ChargeState heavy_charge_state = new ChargeState(1, heavy.intensity_sum_olcs, heavy.weighted_monoisotopic_mass, 1.00727645D);
                light.charge_states = new List <ChargeState> {
                    light_charge_state
                };
                heavy.charge_states = new List <ChargeState> {
                    heavy_charge_state
                };
                NeuCodePair n = new NeuCodePair(light, heavy);
                n.lysine_count = starter_lysine_count;
                n.calculate_properties();
                components.Add(n);
            }
            return(components);
        }