Exemplo n.º 1
0
        public List <ILoopTrimer> FindTrimerLoops(ILoopsCollection LoopsCollection, ILoopCriteria LoopCriteria)
        {
            List <ILoopTrimer> LoopTrimers = new List <ILoopTrimer>();

            //Search for pairs if we specify
            if (LoopCriteria.SearchForTrimer)
            {
                foreach (ILoop LoopA in LoopsCollection.Loops)
                {
                    foreach (ILoop LoopB in LoopsCollection.Loops)
                    {
                        double InterPairDistanceAB = EuclideanDistance(LoopA.ApexAtom, LoopB.ApexAtom);
                        if (InterPairDistanceAB > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                            InterPairDistanceAB < LoopCriteria.LoopTrimerDistanceUpperLimit)
                        {
                            foreach (ILoop LoopC in LoopsCollection.Loops)
                            {
                                double InterPairDistanceAC = EuclideanDistance(LoopA.ApexAtom, LoopC.ApexAtom);
                                double InterPairDistanceBC = EuclideanDistance(LoopB.ApexAtom, LoopC.ApexAtom);

                                if (InterPairDistanceAC > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                                    InterPairDistanceAC < LoopCriteria.LoopTrimerDistanceUpperLimit &&
                                    InterPairDistanceBC > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                                    InterPairDistanceBC < LoopCriteria.LoopTrimerDistanceUpperLimit)
                                {
                                    ILoopTrimer LoopTrimer = new ILoopTrimer();
                                    LoopTrimer.LoopA = LoopA;
                                    LoopTrimer.LoopB = LoopB;
                                    LoopTrimer.LoopC = LoopC;
                                    LoopTrimers.Add(LoopTrimer);
                                    Console.WriteLine("Added Trimer");
                                }
                            }
                        }
                    }
                }
            }

            return(LoopTrimers);
            //return CleanupLoopPairs(LoopPairs); //TODO -> Cleanup trimers
        }
Exemplo n.º 2
0
        public List<ILoopTrimer> FindTrimerLoops(ILoopsCollection LoopsCollection, ILoopCriteria LoopCriteria)
        {
            List<ILoopTrimer> LoopTrimers = new List<ILoopTrimer>();

            //Search for pairs if we specify
            if (LoopCriteria.SearchForTrimer) {
                foreach (ILoop LoopA in LoopsCollection.Loops) {
                    foreach (ILoop LoopB in LoopsCollection.Loops) {

                        double InterPairDistanceAB = EuclideanDistance(LoopA.ApexAtom, LoopB.ApexAtom);
                        if (InterPairDistanceAB > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                            InterPairDistanceAB < LoopCriteria.LoopTrimerDistanceUpperLimit)
                        {

                            foreach (ILoop LoopC in LoopsCollection.Loops)
                            {
                                double InterPairDistanceAC = EuclideanDistance(LoopA.ApexAtom, LoopC.ApexAtom);
                                double InterPairDistanceBC = EuclideanDistance(LoopB.ApexAtom, LoopC.ApexAtom);

                                if (InterPairDistanceAC > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                                    InterPairDistanceAC < LoopCriteria.LoopTrimerDistanceUpperLimit &&
                                    InterPairDistanceBC > LoopCriteria.LoopTrimerDistanceLowerLimit &&
                                    InterPairDistanceBC < LoopCriteria.LoopTrimerDistanceUpperLimit)
                                {
                                    ILoopTrimer LoopTrimer = new ILoopTrimer();
                                    LoopTrimer.LoopA = LoopA;
                                    LoopTrimer.LoopB = LoopB;
                                    LoopTrimer.LoopC = LoopC;
                                    LoopTrimers.Add(LoopTrimer);
                                    Console.WriteLine("Added Trimer");

                                }
                            }
                        }
                    }
                }
            }

            return (LoopTrimers);
            //return CleanupLoopPairs(LoopPairs); //TODO -> Cleanup trimers
        }