生物信息学编程题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

生物信息学编程题目

1 , 编程实现将DNA序列文件exam.fa 中,去掉每段序列的第一行(>及其后面的信息以及回车符信息), 将序列信息合并成基因组后统计该基因组的A、C、T、G的个数,并生成把A、C、T、G统计信息写入文件取名stats.fa;同时把拼成基因组写入文件取名genome.fa

2, 编程实现读入上面完成基因组文件genome.fa,统计酶切位点AC (N5) CTCC 个数,并切割模式(N8)AC (N5)CTCC(N6)的片段生成例1所示的fasta文件Tag.fa, 即每段序列第一行为>Tag-i, 第二行为所切基因组序列。

例1:

>Tag-1

TATTGCACACGAAGTCTCCCTCCCA

>Tag-2

GTATTATAACATCTCCTCCCCTTAC

>Tag-3

ATTATGACACAGTTACTCCCCTTCT

注意:

1、题目写《生物信息学编程试题》,不要写成生物信息

学作业,不可以《生物信息学综述》为题目。

2、交作业时,写明专业、年级、姓名和学号。姓名请手

写签名。

3、禁止抄袭和代答,雷同卷低于60分,综述不高于75

分。

4、7月1日前提交、过期不候。

(注:将文件exam.fa存放在D:中,运行“生物信息学1”、“生物信息学2”源程序(见附件),即可得到相应输出文件genoma.fa、stats.fa、Tag.fa。查看.fa文件,可用UltraEdit软件打开,软件安装包见附件)

编程1

#include"string.h"

#include"stdio.h"

#include"stdlib.h"

#define MAXLEN 90

int main(void)

{

int i=0;

int Acount=0,Tcount=0,Ccount=0,Gcount=0;

char buff[MAXLEN]={0};

FILE *F;

FILE *fp;

F=freopen("D:\\exam.fa","r",stdin); //文件指针*F指向打开的文件exam.fa

freopen("D:\\genome.fa","w",stdout); //建立DNA序列文件genome,fa,并进行写操作,将输出缓冲区的内容写入到文件当中

if( F == NULL)

{

printf("can't fine esam.fa\n");

}

else

{

while(!feof(F))

{

fgets(buff,MAXLEN-1,F);

i++;

if((i%2)==0)

printf("%s\n",buff); //输出偶数行

}

}

fclose(stdin);

fclose(stdout);

fp=fopen("D:\\genome.fa","r"); //读取genome.fa中的数据

char num=0;

while(!feof(fp)) //若文件指针*fp不为空,则进行读取字符操作{

num=fgetc(fp); //读取genome.fa中的字符并输出到字符变量num中if(num=='A') //对读取的字符变量进行判断

Acount++;

else if(num=='T')

Tcount++;

else if(num=='C')

Ccount++;

else if(num=='G')

Gcount++;

}

FILE *stream;

stream=fopen("D:\\stats.fa","w"); //文件指针*stream指向新建立的文件stats.fa

fprintf( stream,"A=%d,",Acount); //将统计的A、T、C、G的个数通过指针输入到文件stats.fa中

fprintf( stream,"T=%d,",Tcount);

fprintf( stream,"C=%d,",Ccount);

fprintf( stream,"G=%d\n",Gcount);

fprintf( stream,"共%d",Acount+Tcount+Ccount+Gcount); //A、T、C、G个数的总共fclose(stream); //关闭文件指针

return 0;

}

编程2

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#define MAXLEN 90

int main(void)

{

char enzyme_cutting[20]={0};

char buff[MAXLEN]={0};

long j=0,n=0;

FILE *DNA;

DNA=freopen("D:\\genome.fa","r",stdin);

freopen("D:\\Tag.fa","w",stdout);

if(DNA==NULL)

{

printf("can't find genome.fa!\n");

exit(0);

}

else

while(!feof(DNA))

{

fgets(buff,MAXLEN-1,DNA);

for(j=0;j

{

if(buff[j]=='A' && buff[j+1]=='C')

if(buff[j+6]=='C' && buff[j+7]=='T' && buff[j+8]=='C' && buff[j+9]=='C')

{

for(int t=0;t<8;t++)

enzyme_cutting[t]=buff[t+j-8];

for(int t=10;t<15;t++)

enzyme_cutting[t-2]=buff[t+j-8];

for(int t=19;t<25;t++)

enzyme_cutting[t-6]=buff[t+j-8];

printf(">Tag-%ld\n",++n);

printf("%s\n",enzyme_cutting);

}

}

}

fclose(stdin);

fclose(stdout);

return 0;

}

相关文档
最新文档