Kurzusok
/
Rust
Rust
/
Feladatok
/
RNS-átírás
RNS-átírás

RNS-átírás

Közepes

Bevezetés

Egy biomérnöki cégnél dolgozol, amely terápiás megoldások fejlesztésére szakosodott.

A csapatod most kapott egy új projektet: célzott terápiát kell kifejlesztenetek egy ritka ráktípus ellen.

Note

Az egész nagyon bonyolult, de az alapötlet az, hogy az emberi szervezet néha túl sokat termel egy adott fehérjéből. Ez pedig sok bajt okozhat.

Ha viszont sikerül létrehoznod egy nagyon speciális molekulát (ezt nevezik mikro-RNS-nek), az megakadályozhatja, hogy a fehérje termelődjön.

Ezt a technikát RNS-interferenciának hívják.

Utasítások

A feladatod, hogy meghatározd egy adott DNS-szekvencia RNS-komplementerét.

A DNS- és az RNS-szálak is nukleotidok sorozatából állnak.

A DNS-ben négy nukleotid található: adenin (A), citozin (C), guanin (G) és timin (T).

Az RNS-ben négy nukleotid található: adenin (A), citozin (C), guanin (G) és uracil (U).

Egy DNS-szálról átírt RNS-szál úgy jön létre, hogy minden nukleotidot kicserélünk a komplementerére:

  • G -> C
  • C -> G
  • T -> A
  • A -> U
Note

Ha szeretnéd megnézni, hogyan épülnek fel a bemenetek és a kimenetek, vess egy pillantást a tesztcsomag példáira.

Megjegyzések a Rust-implementációhoz

Ha a struktúrákban privát mezőket használunk, a nyilvános new függvények pedig Option vagy Result értéket adnak vissza (ahogy itt a DNA::new és a RNA::new esetében), garantálhatjuk, hogy a DNA belső reprezentációja helyes. Mivel minden érvényes DNA stringhez tartozik egy érvényes RNA string, az into_rna függvényből nem kell Result/Option értéket visszaadnunk.

Ez magyarázza a tesztekben látható típusszignatúrákat.

A DNA::new() és a RNA::new() visszatérési típusa egyaránt Result<Self, usize>, ahol a usize hibatípus az első érvénytelen karakter indexét jelöli (karakterindex, nem utf8).


Forrás

HyperphysicsA hivatkozás új ablakban vagy lapon nyílik meg
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Rust Exercism

Készen állsz elkezdeni a(z) RNS-átírás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 feladat segítségével, valódi emberi mentorálással, mindez ingyen.