【Biocode】产生三行的seq+01序列
代码说明:
sequence.txt与site.txt整合 如下图:
sequence.txt:
site.txt:
整理之后如下:
蛋白质序列中发生翻译后修饰的位置标记为“1”,其他的位置标记为“0”
代码如下:
#include<stdio.h> #include<stdlib.h> #include<iostream> #include<string.h> #include<algorithm> #include<time.h> #include<math.h> using namespace std; char str[50000]; char s[5000]; int map[50000]; int main() { //序列与位点结合 输出 一行序列 一行0 1 样本 int i,j,k,l,m,n; //序列文件 FILE *p=fopen("sequence.txt","r"); //位置文件 FILE *p1=fopen("site_after.txt","r"); //输出文件 freopen("3lines_sequence.txt","w",stdout); while(fgets(str,1000,p)) { printf("%s",str); fgets(str,50000,p); l=strlen(str); printf("%s",str); fgets(s,5000,p1); char *pp=strtok(s," "); i=0; memset(map,0,sizeof(map)); while(pp!=NULL) { k=atoi(pp); // printf("**%d\n",k); map[k-1]=1; pp=strtok(NULL," "); } for(i=0;i<l-1;i++) { if(map[i]==1) printf("1"); else printf("0"); } printf("\n"); } return(0); }
注:
①在初始化字符数组的时候,空间要大于所读取文件最长的长度,否则会出现篡位的问题。