生物信息学编程题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; }