Ejemplo n.º 1
0
 public static void SetPosition(ref Command cmd, ref XYZData xyzData, Transform trans)
 {
     cmd.types              |= EPacketTypes.POSITION;
     cmd.xyzData.position    = new double[3];
     cmd.xyzData.position[0] = trans.localPosition.x;
     cmd.xyzData.position[1] = trans.localPosition.y;
     cmd.xyzData.position[2] = trans.localPosition.z;
 }
Ejemplo n.º 2
0
    public static void SetRotation(ref Command cmd, ref XYZData xyzData, Transform trans)
    {
        cmd.types |= EPacketTypes.ROTATION;

        xyzData.rotation    = new double[4];
        xyzData.rotation[0] = trans.localRotation.x;
        xyzData.rotation[1] = trans.localRotation.y;
        xyzData.rotation[2] = trans.localRotation.z;
        xyzData.rotation[3] = trans.localRotation.w;
    }
Ejemplo n.º 3
0
    public static XYZData Parse(string input)
    {
        var xyzData = new XYZData {
            X = 100000, Y = 100000, Z = 100000
        };

        if (string.IsNullOrWhiteSpace(input))
        {
            return(xyzData);
        }
        var parts = input.Split();

        foreach (var part in parts)
        {
            double result;
            if (part.Length < 2 ||
                !double.TryParse(part.Substring(1), out result))
            {
                continue;
            }
            if (part.StartsWith("X", StringComparison.OrdinalIgnoreCase))
            {
                xyzData.X = result;
                continue;
            }
            if (part.StartsWith("Y", StringComparison.OrdinalIgnoreCase))
            {
                xyzData.Y = result;
                continue;
            }
            if (part.StartsWith("Z", StringComparison.OrdinalIgnoreCase))
            {
                xyzData.Z = result;
                continue;
            }
        }
        return(xyzData);
    }
Ejemplo n.º 4
0
        /// <summary>
        ///     Creates SIC's mapped by charge state for the MS Features in the feature.
        /// </summary>
        /// <param name="feature"></param>
        /// <param name="provider">Object that can read data from a raw file or data source.</param>
        /// <returns></returns>
        public static Dictionary <int, List <XYZData> > CreateChargeSIC(this UMCLight feature, ISpectraProvider provider)
        {
            var chargeMap = feature.CreateChargeMap();
            var sicMap    = new Dictionary <int, List <XYZData> >();

            foreach (var charge in chargeMap.Keys)
            {
                chargeMap[charge].Sort(delegate(MSFeatureLight x, MSFeatureLight y) { return(x.Scan.CompareTo(y.Scan)); }
                                       );
                var data = chargeMap[charge].ConvertAll(x => new XYZData(x.Scan, x.Abundance, x.Mz));
                sicMap.Add(charge, data);
            }

            if (provider != null)
            {
                // Creates an SIC map for a given charge state of the feature.
                foreach (var charge in sicMap.Keys)
                {
                    var data = sicMap[charge];

                    // The data is alread sorted.
                    var minScan  = int.MaxValue;
                    var maxScan  = int.MinValue;
                    var mzValues = new List <double>();
                    foreach (var x in data)
                    {
                        mzValues.Add(x.Z);
                        minScan = Math.Min(minScan, Convert.ToInt32(x.X));
                        maxScan = Math.Max(maxScan, Convert.ToInt32(x.X));
                    }
                    mzValues.Sort();
                    double mz  = 0;
                    var    mid = Convert.ToInt32(mzValues.Count / 2);
                    mz       = mzValues[mid];
                    minScan -= 20;
                    maxScan += 20;

                    // Build the SIC
                    var intensities = new List <XYZData>();
                    for (var scan = minScan; scan < maxScan; scan++)
                    {
                        var    summary     = new ScanSummary();
                        var    spectrum    = provider.GetRawSpectra(scan, 1, out summary);
                        double intensity   = 0;
                        var    minDistance = double.MaxValue;
                        var    index       = -1;
                        for (var i = 0; i < spectrum.Count; i++)
                        {
                            var distance = spectrum[i].X - mz;
                            if (distance < minDistance)
                            {
                                index       = i;
                                minDistance = distance;
                            }
                        }

                        if (index >= 0)
                        {
                            intensity = spectrum[index].Y;
                        }
                        var newPoint = new XYZData(scan, intensity, mz);
                        intensities.Add(newPoint);
                    }

                    sicMap[charge] = intensities;
                }
            }

            return(sicMap);
        }
Ejemplo n.º 5
0
 public static void SetAction(ref Command cmd, ref XYZData xyzData, int actionID)
 {
     cmd.types     |= EPacketTypes.ACTION;
     xyzData.action = actionID;
 }