Wednesday, 27 October 2021

Finding a Spliced Motif (Rosalind)

     

   rosalind


Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Finding a Spliced Motif". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini). 

Overview 

Di problem ini kita akan disajikan 2 string dalam format FASTA, sebut saja s dan t. String pertama (atau s) mewakili urutan sebuah DNA, sedangkan string kedua (atau t) mewakili subsequence dari string s. Tugas kita ialah mencari index dari subsequence t tersebut pada string s. Sebagai contoh, index dari subsequence "ACG" di string "TATCCAG" ialah (2, 4, 7) dan (2, 5, 7). 

Kode Pengerjaan

Berikut kode pengerjaannya dalam bahasa java :
  1. static void solve() {
  2. Scanner sc = new Scanner(System.in);
  3. String strand = "";
  4. String sample = "";
  5. boolean ganti = false;
  6. sc.next();
  7. while (sc.hasNext()) {
  8. String masuk = sc.next();
  9. if (masuk.charAt(0) == '>') {
  10. ganti = true; continue;
  11. }
  12. if (ganti) {
  13. sample += masuk;
  14. }
  15. else {
  16. strand += masuk;
  17. }
  18. }
  19. int pvt = 0;
  20. for (int i = 0; i < sample.length(); i++) {
  21. while (strand.charAt(pvt) != sample.charAt(i)) {
  22. pvt++;
  23. }
  24. out.print((pvt + 1) + " ");
  25. pvt++;
  26. }
  27.     
Input dan Output

Seperti yang teman-teman lihat, disini saya memakai fungsi next() (baris 8) untuk meng-input data string. Saya juga menggunakan hasNext() (baris 7) dikarenakan fungsi tersebut mampu meng-input data yang tidak diketahui jumlahnya. Fungsi tersebut sangat cocok jika dipakai untuk menangani input dengan format FASTA

Sedangkan untuk output-nya saya memakai fungsi out.print() (baris 24)Fungsi tersebut adalah modifikasi dari fungsi System.out.print() yang merupakan fungsi default di java. Untuk lebih jelasnya, teman-teman bisa melihat kode tambahan untuk memodifikasi fungsi tersebut (input maupun outputdi versi lengkap kode saya di github

Sekian dari saya. Jika teman-teman ingin menanyakan sesuatu, teman-teman bisa menulisnya di kolom komentar. Semoga bermanfaat dan sampai jumpa di artikel berikutnya!


Referensi :
Sumber gambar 1: https://www.facebook.com/ProjectRosalind/

No comments:

Post a Comment