代码说明
sequence24371.txt
以上为所有氨基酸的编号,序列,与位点标记。根据标记为“1”的位点,截取窗口:如下(实验结果):
图示为一个窗口为12的蛋白质片段 2N+1=25;
实现代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define N 12
using namespace std;
void jieduan(int n,char s3[],char s1[],int l)
{
int i;
if(n<N)
{
for(i=n-N;i<;i++)
{
s3[i+N-n]='*';
}
for(i=;i<=n+N;i++)
{
s3[i+N-n]=s1[i];
}
s3[i+N-n]='\n';
}
else if(n>=l-N)
{
for(i=n-N;i<l;i++)
{
s3[i+N-n]=s1[i];
}
for(i=l;i<=n+N;i++)
{
s3[i+N-n]='*';
}
s3[i+N-n]='\n';
}
else
{
for(i=n-N;i<=n+N;i++)
{
s3[i+N-n]=s1[i];
}
s3[i+N-n]='\n';
}
}
int main()
{
int i,j,k,l,m,n;
char s[],s1[],s2[],s3[];
FILE *p1=fopen("sequence24371.txt","r");
if(p1==NULL) printf("File not open!\n");
FILE *p2=fopen("positive12.txt","w");
FILE *p3=fopen("negative12.txt","w");
while(fgets(s,,p1))
{
fgets(s1,,p1);
fgets(s2,,p1);
l=strlen(s2)-;
for(i=;i<l;i++)
{
if(s1[i]=='K')
{
jieduan(i,s3,s1,l); if(s2[i]=='')
{
fputs(s3,p3);
}
else
{
fputs(s3,p2);
}
}
}
}
//system("pause");
return ;
}
注:
①更改#define N 12 可以任意改变要截取的窗口大小
②positive12.txt为生成的正样本窗口,原本标记为“1”
negative12.txt为生成的正样本窗口,原本标记为“0”