public void Should_return_proper_sequence()
        {
            const string expectedResult = "GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACA";
            var          result         = _sut.Provide(".fasta", $"> Complement: Complement: HSBGPG Human gene for bone gla protein(BGP)\n{expectedResult}");

            result.First().ToString().ShouldBe(expectedResult);
        }
        public IList <long> GetDeltas(SequenceModel[] sequenceData)
        {
            var sequences = sequenceData.Select(sequence => _provider.Provide(sequence?.FileName, sequence?.Content).First()).ToList();

            _aligner = new DeltaAlignment(sequences.First(), sequences.Last());
            return(_aligner.Deltas);
        }
Beispiel #3
0
        public IList <ISequenceAlignment> AlignSequences(SequenceModel[] sequenceData, int minimumScore = 200)
        {
            _aligner.MinimumScore = minimumScore;
            var sequences = sequenceData.SelectMany(sequence => _provider.Provide(sequence?.FileName, sequence?.Content));

            return(_aligner.Align(sequences));
        }
        public IEnumerable <Match> GetMatches(SequenceModel sequenceData)
        {
            var sequence = _sequenceProvider.Provide(sequenceData?.FileName, sequenceData?.Content)?.First();

            _suffixTree = new MultiWaySuffixTree(sequence);
            return(_suffixTree.SearchMatches(sequence));
        }
Beispiel #5
0
        public IDictionary <string, object> GetMetadata(SequenceModel[] sequenceData)
        {
            var sequences = sequenceData.SelectMany(sequence => _provider.Provide(sequence?.FileName, sequence?.Content)).ToList();
            var alignment = new PairwiseSequenceAlignment(sequences.First(), sequences.Last());

            return(alignment.Metadata);
        }
Beispiel #6
0
        public IDictionary <string, IList <int> > GetMatches(SequenceModel sequenceData, string[] searches, bool ignoreCase = false, int startIndex = 0)
        {
            var sequence = _sequenceProvider.Provide(sequenceData?.FileName, sequenceData?.Content)?.First();

            _boyerMoore.IgnoreCase = ignoreCase;
            _boyerMoore.StartIndex = startIndex;
            return(_boyerMoore.FindMatch(sequence, searches));
        }
        public IndexModule(ISequenceProvider provider)
        {
            _provider = provider;
            Get["/"]  = parameters => View["index"];

            Post["/Sequence/Parse"] = _ =>
            {
                var data = this.Bind <SequenceModel>();
                return(Response.AsJson(_provider.Provide(data?.FileName, data?.Content).Select(x => x.ToString())));
            };
        }
Beispiel #8
0
        private IEnumerable <TItem> BaseStatistics <TItem>(string fileName, string content,
                                                           Func <SequenceStatistics, TItem> selector)
        {
            var sequences = _sequenceProvider.Provide(fileName, content);

            return(sequences.ToList().Select(x =>
            {
                var stats = new SequenceStatistics(x);
                return selector(stats);
            }));
        }
Beispiel #9
0
        public ISequence Translate(SequenceModel sequenceData)
        {
            var sequence = _provider.Provide(sequenceData?.FileName, sequenceData?.Content)?.First();

            return(ProteinTranslation.Translate(sequence));
        }
Beispiel #10
0
        public IList <IPairwiseSequenceAlignment> AlignSequences(SequenceModel[] sequenceData)
        {
            var sequences = sequenceData.SelectMany(sequence => _provider.Provide(sequence?.FileName, sequence?.Content));

            return(_aligner.Align(sequences));
        }
        public ISequence TranscribeToRNA(SequenceModel sequenceData)
        {
            var sequence = _sequenceProvider.Provide(sequenceData?.FileName, sequenceData?.Content)?.First();

            return(Transcription.Transcribe(sequence));
        }