/// <summary>
        /// Constructor
        /// </summary>
        public MainViewModel()
        {
            LoadedSequences     = new ObservableCollection <SequenceViewModel>();
            SelectedAligner     = SequenceAligners.SmithWaterman;
            SelectedAssembler   = AvailableAssemblers.FirstOrDefault();
            TranslatedSequences = new ObservableCollection <ISequence>();

            ImportFile        = new DelegatingCommand(OnLoadFile);
            AlignSequences    = new DelegatingCommand(OnAlignSequences, () => SelectedSequences.Count >= 2);
            AssembleSequences = new DelegatingCommand(OnAssembleSequences, () => SelectedSequences.Count >= 2 && SelectedAssembler != null);
            TransformSequence = new DelegatingCommand(OnTransformSequences, () => SelectedSequences.Count > 0 && SelectedSequences.Any(si => si.Alphabet.IsComplementSupported));
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public MainViewModel()
        {
            LoadedSequences = new ObservableCollection <SequenceViewModel>();

            ImportFile        = new DelegatingCommand(OnLoadFile);
            AlignSequences    = new DelegatingCommand(OnAlignSequences, () => SelectedSequences.Count >= 2);
            AssembleSequences = new DelegatingCommand(OnAssembleSequences, () => SelectedSequences.Count >= 2);
            TransformSequence = new DelegatingCommand(OnTransformSequences, () => SelectedSequences.Count > 0 && SelectedSequences.Any(si => si.Alphabet.IsComplementSupported));
        }