Beispiel #1
0
        /// <summary>
        /// Initializes static members of the Alphabets class.
        /// </summary>
        static Alphabets()
        {
            // get the registered alphabets.
            IList <IAlphabet> registeredAlphabets = RegisteredAddIn.GetAlphabets(true);

            if (null != registeredAlphabets && registeredAlphabets.Count > 0)
            {
                foreach (IAlphabet alphabet in registeredAlphabets)
                {
                    if (alphabet != null && all.FirstOrDefault(IA => string.Compare(IA.Name, alphabet.Name, StringComparison.OrdinalIgnoreCase) == 0) == null)
                    {
                        all.Add(alphabet);
                    }
                }

                registeredAlphabets.Clear();
            }

            AmbiguousAlphabetMap = new Dictionary <IAlphabet, IAlphabet>();
            MapAlphabetToAmbiguousAlphabet(DnaAlphabet.Instance, AmbiguousDnaAlphabet.Instance);
            MapAlphabetToAmbiguousAlphabet(RnaAlphabet.Instance, AmbiguousRnaAlphabet.Instance);
            MapAlphabetToAmbiguousAlphabet(ProteinAlphabet.Instance, AmbiguousProteinAlphabet.Instance);
            MapAlphabetToAmbiguousAlphabet(AmbiguousDnaAlphabet.Instance, AmbiguousDnaAlphabet.Instance);
            MapAlphabetToAmbiguousAlphabet(AmbiguousRnaAlphabet.Instance, AmbiguousRnaAlphabet.Instance);

            AlphabetToBaseAlphabetMap = new Dictionary <IAlphabet, IAlphabet>();
            MapAlphabetToBaseAlphabet(AmbiguousDnaAlphabet.Instance, DnaAlphabet.Instance);
            MapAlphabetToBaseAlphabet(AmbiguousRnaAlphabet.Instance, RnaAlphabet.Instance);
            MapAlphabetToBaseAlphabet(AmbiguousProteinAlphabet.Instance, ProteinAlphabet.Instance);

            MapAlphabetToBaseAlphabet(Bio.Algorithms.MUMmer.MummerDnaAlphabet.Instance, DnaAlphabet.Instance);
            MapAlphabetToBaseAlphabet(Bio.Algorithms.MUMmer.MummerRnaAlphabet.Instance, RnaAlphabet.Instance);
            MapAlphabetToBaseAlphabet(Bio.Algorithms.MUMmer.MummerProteinAlphabet.Instance, ProteinAlphabet.Instance);
        }
Beispiel #2
0
        /// <summary>
        /// Gets all registered specified classes in core folder and addins (optional) folders
        /// </summary>
        /// <param name="includeAddinFolder">include add-ins folder or not</param>
        /// <returns>List of registered classes</returns>
        private static IList <T> GetClasses <T>(bool includeAddinFolder)
        {
            IList <T> registeredAligners = new List <T>();

            if (includeAddinFolder)
            {
                IList <T> addInAligners;
                if (null != RegisteredAddIn.AddinFolderPath)
                {
                    addInAligners =
                        RegisteredAddIn.GetInstancesFromAssemblyPath <T>(RegisteredAddIn.AddinFolderPath,
                                                                         RegisteredAddIn.DLLFilter);
                    if (null != addInAligners && addInAligners.Count > 0)
                    {
                        foreach (T aligner in addInAligners)
                        {
                            if (aligner != null)
                            {
                                registeredAligners.Add(aligner);
                            }
                        }
                    }
                }
            }

            return(registeredAligners);
        }
Beispiel #3
0
        /// <summary>
        /// Gets all registered sequence alignment formatters in core folder and addins (optional) folders
        /// </summary>
        /// <param name="includeAddinFolder">include add-ins folder or not</param>
        /// <returns>List of registered formatters</returns>
        private static IList <ISequenceAlignmentFormatter> GetAlignmentFormatters(bool includeAddinFolder)
        {
            IList <ISequenceAlignmentFormatter> registeredFormatters = new List <ISequenceAlignmentFormatter>();

            if (includeAddinFolder)
            {
                IList <ISequenceAlignmentFormatter> addInFormatters;
                if (null != RegisteredAddIn.AddinFolderPath)
                {
                    addInFormatters = RegisteredAddIn.GetInstancesFromAssemblyPath <ISequenceAlignmentFormatter>(RegisteredAddIn.AddinFolderPath, RegisteredAddIn.DLLFilter);
                    if (null != addInFormatters && addInFormatters.Count > 0)
                    {
                        foreach (ISequenceAlignmentFormatter formatter in addInFormatters)
                        {
                            if (formatter != null && registeredFormatters.FirstOrDefault(IA => string.Compare(
                                                                                             IA.Name, formatter.Name, StringComparison.OrdinalIgnoreCase) == 0) == null)
                            {
                                registeredFormatters.Add(formatter);
                            }
                        }
                    }
                }
            }

            return(registeredFormatters);
        }
Beispiel #4
0
        public void TestAddinsRegisterAssembler()
        {
            var assemblers = RegisteredAddIn.GetInstancesFromAssembly <IDeNovoAssembler>(
                Assembly.GetExecutingAssembly().CodeBase.Substring(8));

            Assert.AreEqual(1, assemblers.Count);
            Assert.AreEqual(typeof(TestAutomationSequenceAssembler), assemblers[0].GetType());
        }
Beispiel #5
0
        public void TestAddinsSequenceAligners()
        {
            List <ISequenceAligner> expectedAligners = new List <ISequenceAligner>
            {
                new TestAutomationSequenceAligner(),
                new TestAutomationPairwiseSequenceAligner()
            };

            // Gets the registered Instances for the path passed
            IList <ISequenceAligner> actualAligners = RegisteredAddIn.GetInstancesFromAssembly <ISequenceAligner>(
                typeof(TestAutomationSequenceAligner).Assembly.FullName);

            CompareAlignerElements(expectedAligners, actualAligners);
        }
Beispiel #6
0
        public void RegisterAddinsGetInstancesFilter()
        {
            CreateAddinsFolder();
            IList <ISequenceAligner> finalValue = new List <ISequenceAligner>();

            finalValue.Add(new TestAutomationSequenceAligner());
            finalValue.Add(new TestAutomationPairwiseSequenceAligner());

            // Gets the registered Instances for the path passed and the filter
            IList <ISequenceAligner> registeredAligners =
                RegisteredAddIn.GetInstancesFromAssemblyPath <ISequenceAligner>(
                    RegisteredAddIn.AddinFolderPath, "*.dll");

            RegisterAlignGeneralTestCases(registeredAligners, finalValue);
            DeleteAddinsFolder();
        }
Beispiel #7
0
        /// <summary>
        /// Gets all registered aligners in core folder and addins (optional) folders
        /// </summary>
        /// <returns>List of registered aligners</returns>
        private static IEnumerable <ISequenceAligner> GetAligners()
        {
            IList <ISequenceAligner> registeredAligners = new List <ISequenceAligner>();
            IList <ISequenceAligner> addInAligners      = RegisteredAddIn.GetComposedInstancesFromAssemblyPath <ISequenceAligner>(
                "NetBioSequenceAlignersExport", RegisteredAddIn.AddinFolderPath, RegisteredAddIn.DLLFilter);

            if (null != addInAligners && addInAligners.Count > 0)
            {
                foreach (ISequenceAligner aligner in addInAligners.Where(
                             aligner => aligner != null && registeredAligners.All(sa => string.Compare(sa.Name, aligner.Name, StringComparison.OrdinalIgnoreCase) != 0)))
                {
                    registeredAligners.Add(aligner);
                }
            }
            return(registeredAligners);
        }
Beispiel #8
0
        public void RegisterAddinsGetInstances()
        {
            CreateAddinsFolder();
            IList <ISequenceAligner> finalValue = new List <ISequenceAligner>();

            finalValue.Add(new TestAutomationSequenceAligner());
            finalValue.Add(new TestAutomationPairwiseSequenceAligner());

            // Gets the registered Instances for the path passed
            string assemblyPath = string.Concat(RegisteredAddIn.AddinFolderPath,
                                                BioTestAutomationDll);
            IList <ISequenceAligner> registeredAligners =
                RegisteredAddIn.GetInstancesFromAssembly <ISequenceAligner>(assemblyPath);

            RegisterAlignGeneralTestCases(registeredAligners, finalValue);
            DeleteAddinsFolder();
        }
Beispiel #9
0
        /// <summary>
        /// Static constructor
        /// </summary>
        static Alphabets()
        {
            //get the registered alphabets
            IList <IAlphabet> registeredAlphabets = RegisteredAddIn.GetAlphabets(true);

            if (null != registeredAlphabets && registeredAlphabets.Count > 0)
            {
                foreach (IAlphabet alphabet in registeredAlphabets)
                {
                    if (alphabet != null && all.FirstOrDefault(IA => string.Compare(IA.Name,
                                                                                    alphabet.Name, StringComparison.InvariantCultureIgnoreCase) == 0) == null)
                    {
                        all.Add(alphabet);
                    }
                }
                registeredAlphabets.Clear();
            }
        }
Beispiel #10
0
        public void RegisterAddinsGetInstancesExecutingAssembly()
        {
            CreateAddinsFolder();
            IList <ISequenceAligner> finalValue = new List <ISequenceAligner>();

            finalValue.Add(new TestAutomationSequenceAligner());
            finalValue.Add(new TestAutomationPairwiseSequenceAligner());

            // Gets the registered Instances for the path passed
            IList <ISequenceAligner> registeredAligners =
                RegisteredAddIn.GetInstancesFromExecutingAssembly <ISequenceAligner>();

            if (0 == registeredAligners.Count)
            {
                Console.WriteLine("Referring from the Bio.dll, hence validation is not required.");
                ApplicationLog.WriteLine("Referring from the Bio.dll, hence validation is not required.");
            }
            DeleteAddinsFolder();
        }
Beispiel #11
0
        /// <summary>
        /// Gets all registered alphabets in core folder and addins (optional) folders.
        /// </summary>
        /// <returns>List of registered alphabets.</returns>
        private static IList <IAlphabet> GetAlphabets()
        {
            IList <IAlphabet> registeredAlphabets = new List <IAlphabet>();

            IList <IAlphabet> addInAlphabets = RegisteredAddIn.GetComposedInstancesFromAssemblyPath <IAlphabet>(
                "NetBioAlphabetsExport", RegisteredAddIn.AddinFolderPath, RegisteredAddIn.DLLFilter);

            if (null != addInAlphabets)
            {
                foreach (IAlphabet alphabet in addInAlphabets.Where(
                             alphabet => alphabet != null && !registeredAlphabets.Any(
                                 ra => String.Compare(ra.Name, alphabet.Name, StringComparison.OrdinalIgnoreCase) == 0)))
                {
                    registeredAlphabets.Add(alphabet);
                }
            }

            return(registeredAlphabets);
        }
Beispiel #12
0
        public void GetAlphabetsTest()
        {
            //IMPORTANT: To pass this test case, it required two folders under...\MBF\MBF.Test\bin
            // 1. ...\MBF\MBF.Test\bin\Core
            // 2. ...\MBF\MBF.Test\bin\Add-ins
            // MBF.Test.dll needs to be copied under Add-ins folder.
            IList <IAlphabet> finalValue = new List <IAlphabet>();

            finalValue.Add(new NewAlphabet4TestingRegistration());

            IList <IAlphabet> registeredAlphabets = RegisteredAddIn.GetAlphabets(true);

            if (null != registeredAlphabets && registeredAlphabets.Count > 0)
            {
                foreach (IAlphabet alphabet in finalValue)
                {
                    string name = null;
                    registeredAlphabets.FirstOrDefault(IA => string.Compare(name = IA.Name, alphabet.Name, StringComparison.InvariantCultureIgnoreCase) == 0);
                    Assert.AreSame(alphabet.Name, name);
                }
            }
        }
Beispiel #13
0
        public void RegisterAddinsRegisterAlphabet()
        {
            CreateAddinsFolder();
            IList <IAlphabet> finalValue = new List <IAlphabet>();

            finalValue.Add(new TestAutomationAlphabet());

            // Gets the registered Alphabets
            IList <IAlphabet> registeredAlphabets = RegisteredAddIn.GetAlphabets(true);

            if (null != registeredAlphabets && registeredAlphabets.Count > 0)
            {
                foreach (IAlphabet alphabet in finalValue)
                {
                    string name = string.Empty;

                    registeredAlphabets.FirstOrDefault(IA => string.Compare(name = IA.Name,
                                                                            alphabet.Name, StringComparison.OrdinalIgnoreCase) == 0);

                    // Validates the Name
                    Assert.AreEqual(alphabet.Name, name);
                    Console.WriteLine(
                        string.Format((IFormatProvider)null, @"Successfully validated the Registered components for Alphabet '{0}'.",
                                      name));
                    ApplicationLog.WriteLine(
                        string.Format((IFormatProvider)null, @"Successfully validated the Registered components for Alphabet '{0}'.",
                                      name));
                }
            }
            else
            {
                Console.WriteLine("No Components to Register.");
                ApplicationLog.WriteLine("No Components to Register.");
                Assert.Fail();
            }
            DeleteAddinsFolder();
        }