1. 程式人生 > >【BioCode】根據seq與位點信息截取窗口

【BioCode】根據seq與位點信息截取窗口

窗口大小 txt -s font == def n) image pau

代碼說明

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<0;i++) { s3[i+N-n]=*; } for(i=0;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[10000],s1[10000],s2[10000],s3[100]; 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,50000,p1)) { fgets(s1,50000,p1); fgets(s2,50000,p1); l=strlen(s2)-1; for(i=0;i<l;i++) { if(s1[i]==K) { jieduan(i,s3,s1,l); if(s2[i]==0) { fputs(s3,p3); } else { fputs(s3,p2); } } } } //system("pause"); return 0; }

註:

①更改#define N 12 可以任意改變要截取的窗口大小

positive12.txt為生成的正樣本窗口,原本標記為“1”

negative12.txt為生成的正樣本窗口,原本標記為“0”

【BioCode】根據seq與位點信息截取窗口