ruby - rna-transcription
This commit is contained in:
parent
e8af849460
commit
d83ab1df67
49
ruby/rna-transcription/README.md
Normal file
49
ruby/rna-transcription/README.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# RNA Transcription
|
||||||
|
|
||||||
|
Given a DNA strand, return its RNA complement (per RNA transcription).
|
||||||
|
|
||||||
|
Both DNA and RNA strands are a sequence of nucleotides.
|
||||||
|
|
||||||
|
The four nucleotides found in DNA are adenine (**A**), cytosine (**C**),
|
||||||
|
guanine (**G**) and thymine (**T**).
|
||||||
|
|
||||||
|
The four nucleotides found in RNA are adenine (**A**), cytosine (**C**),
|
||||||
|
guanine (**G**) and uracil (**U**).
|
||||||
|
|
||||||
|
Given a DNA strand, its transcribed RNA strand is formed by replacing
|
||||||
|
each nucleotide with its complement:
|
||||||
|
|
||||||
|
* `G` -> `C`
|
||||||
|
* `C` -> `G`
|
||||||
|
* `T` -> `A`
|
||||||
|
* `A` -> `U`
|
||||||
|
|
||||||
|
* * * *
|
||||||
|
|
||||||
|
For installation and learning resources, refer to the
|
||||||
|
[exercism help page](http://exercism.io/languages/ruby).
|
||||||
|
|
||||||
|
For running the tests provided, you will need the Minitest gem. Open a
|
||||||
|
terminal window and run the following command to install minitest:
|
||||||
|
|
||||||
|
gem install minitest
|
||||||
|
|
||||||
|
If you would like color output, you can `require 'minitest/pride'` in
|
||||||
|
the test file, or note the alternative instruction, below, for running
|
||||||
|
the test file.
|
||||||
|
|
||||||
|
Run the tests from the exercise directory using the following command:
|
||||||
|
|
||||||
|
ruby rna_transcription_test.rb
|
||||||
|
|
||||||
|
To include color from the command line:
|
||||||
|
|
||||||
|
ruby -r minitest/pride rna_transcription_test.rb
|
||||||
|
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
|
||||||
|
|
||||||
|
## Submitting Incomplete Solutions
|
||||||
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
7
ruby/rna-transcription/rna_transcription.rb
Normal file
7
ruby/rna-transcription/rna_transcription.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
class Complement
|
||||||
|
RNA_MAP = {G: 'C', C: 'G', T: 'A', A: 'U'}
|
||||||
|
|
||||||
|
def self.of_dna(dna_strand)
|
||||||
|
dna_strand.chars.map{|n| RNA_MAP[n.to_sym]}.join
|
||||||
|
end
|
||||||
|
end
|
35
ruby/rna-transcription/rna_transcription_test.rb
Normal file
35
ruby/rna-transcription/rna_transcription_test.rb
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
require 'minitest/autorun'
|
||||||
|
require_relative 'rna_transcription'
|
||||||
|
|
||||||
|
# Common test data version: 1.3.0 294c831
|
||||||
|
class RnaTranscriptionTest < Minitest::Test
|
||||||
|
def test_empty_rna_sequence
|
||||||
|
# skip
|
||||||
|
assert_equal '', Complement.of_dna('')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rna_complement_of_cytosine_is_guanine
|
||||||
|
# skip
|
||||||
|
assert_equal 'G', Complement.of_dna('C')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rna_complement_of_guanine_is_cytosine
|
||||||
|
# skip
|
||||||
|
assert_equal 'C', Complement.of_dna('G')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rna_complement_of_thymine_is_adenine
|
||||||
|
# skip
|
||||||
|
assert_equal 'A', Complement.of_dna('T')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rna_complement_of_adenine_is_uracil
|
||||||
|
# skip
|
||||||
|
assert_equal 'U', Complement.of_dna('A')
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_rna_complement
|
||||||
|
# skip
|
||||||
|
assert_equal 'UGCACCAGAAUU', Complement.of_dna('ACGTGGTCTTAA')
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user