用于执行DNA序列压缩的C ++代码。 [英] C++ code to perform DNA sequence compression.

查看:83
本文介绍了用于执行DNA序列压缩的C ++代码。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

1.p输入是随机方式的任意长度的4个字母(a,t,g,c)的大量DNA碱基(i,e)序列。例如,atgcccctgggaagtgaaaatgcccc ........

2.convert a = 00

t = 01

g = 10

c = 11

3.然后,将序列划分为8位

4.将每个8位值转换为相应的小数值

5 。将每个十进制值转换为相应的ASCII值。

6.现在,考虑序列的前16个ASCII字符,将其与接下来的16个字符进行比较。

7.for每次比较,只打印位置并更改符号。

ie。 1 @表示第一个位置被@替换。不要改变常用条款。



我尝试过:



i只手动尝试逻辑

解决方案

我们不做你的功课:设置是有原因的。它就是为了让你思考你被告知的事情,并试着理解它。它也在那里,以便您的导师可以识别您身体虚弱的区域,并将更多的注意力集中在补救措施上。



亲自尝试,你可能会发现它不是和你想的一样困难!



如果遇到具体问题,请询问相关问题,我们会尽力提供帮助。但是我们不会为你做这一切!


所以你必须只编写代码。参加一些教程,以获取密码技能。



考虑使用类来为您的代码提供更好的架构。最好将每个任务分成一个函数或类,而不是总结一些数组中的所有结果。这个数组应该是你的结果的typedef数组。



你需要做一些位移并在代码中的某处输入:

  unsigned  < span class =code-keyword> char  byte =(dna1<< 6)| (dna2 << 4)| (dna3<< 2)| (DNA4<&小于0); 
int value =( int )byte;
char c =( char value ;

不要依赖代码适合你!!!



提示:编写一些测试片段来验证你的代码。


你没有说出任何问题或问题,你刚刚粘贴了作业。

你的陈述对我来说很奇怪:

- 4和5是关于将8位值转换为8位值???

- 6这一步只是寻找重复的16个块,距离倍数为16,这意味着重复16个不同的距离你不感兴趣。

- 7自ascii以来也很奇怪,它也是taaa的编码,你怎么知道什么是什么?

-----

我们不做你的家庭作业。

HomeWork不会在乞求别人做你的工作时测试你的技能,它是为了让你思考并帮助你的老师检查你的不足你已经学过的课程,以及你应用它们时遇到的问题。

你的任何失败都会帮助你的老师发现你的弱点并设定补救措施。

你的任何失败都会帮助你了解什么有效,什么无效,被称为'试错'学习。

所以,试一试,重读课程并开始工作。如果您遇到特定问题,请显示您的代码并解释这个问题,我们可能会提供帮助。



作为程序员,您的工作是创建算法解决特定问题,你不能依赖别人永远为你做,所以有一段时间你必须学会​​如何。而且越快越好。

当你要求解决方案时,就像试图通过培训其他人来学习开车一样。

创建算法基本上是找到数学并做出必要的调整以适应你的实际问题。



发展的概念就像这个词所暗示的那样:系统地使用科学和满足特定目标或要求的技术知识。 BusinessDictionary.com [ ^ ]

这与有一个不一样快速谷歌并放弃,如果我找不到正确的代码。


1.input is a large sequence of DNA bases (i,e) sequence of any length of 4 alphabets (a,t,g,c) in random fashion. eg, atgcccctgggaagtgaaaatgcccc........
2.convert a=00
t=01
g=10
c=11
3.then,partition the sequence into 8 bits
4.convert each 8bit value into corresponding decimal value
5.convert each decimal value into corresponding ASCII value.
6.now,consider first 16 ASCII characters of the sequence,compare it with every next 16 characters.
7.for each comparison, print only the position and change in symbol.
ie. 1@ which mean 1st position is replaced by @. dont change the common terms.

What I have tried:

i tried only the logic manually

解决方案

We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.

Try it yourself, you may find it is not as difficult as you think!

If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!


So you must only write the code. Take some tutorial to leverage for codind skills.

Consider to use classes to give your code a better architecture. It is best to split every task in a single function or class, than sum up all results in some array. This array should be typedef array of your results.

You will need to do some bit shifting and type casting somewhere in your code:

unsigned char byte = (dna1<<6) | (dna2<<4) | (dna3<<2) | (dna4<<0);
int value = (int) byte;
char c = (char) value;

Dont rely that the code is suitable for you!!!

Tip: write some test snippets to verify your code.


You didn't state any question or problem, you just pasted an assignment.
Your statement look weird to me:
- 4 and 5 are about converting a 8 bits value to a 8 bits value ???
- 6 this step is only looking for repeats of blocks of 16 and with distance multiples of 16 too, this means that repeats with distances different of 16 do not interest you.
- 7 is weird too since @ in ascii, it is also the encoding for taaa, how do you know what is what ?
-----
We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.

The idea of "development" is as the word suggests: "The systematic use of scientific and technical knowledge to meet specific objectives or requirements." BusinessDictionary.com[^]
That's not the same thing as "have a quick google and give up if I can't find exactly the right code".


这篇关于用于执行DNA序列压缩的C ++代码。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆