📄 addsol.c
字号:
#include <stdio.h>#include <string.h>#define LINE_LEN 120#define DATA_LINE_NUM 140 /*lines in sol_par.dat -1*//*----------------------------------------------------------------------------*/void main(argc,argv)int argc;char **argv;/*----------------------------------------------------------------------------*/{int i,j;int found;char record[140][40]; /*buffer to hold sol_par.dat*/char line[LINE_LEN]; /*buffer to hold line and add solvation data */ FILE *pdbq_fp, *outfile;if(argc<3){ fprintf(stderr, "Improper syntax for command. Correct syntax is ...\n"); fprintf(stderr,"addsol <inputfile> <outputfile>\n"); exit(1);}; pdbq_fp=fopen(argv[1],"r");if(pdbq_fp==NULL){ fprintf(stderr,"Cannot open %s\n",argv[1]); exit(1);};/*if can't open pdb file*/outfile=fopen(argv[2],"w+");if(outfile==NULL){ fprintf(stderr,"Cannot open %s\n",argv[2]); exit(1);};/*if can't open output file*/fprintf(outfile,"REMARK Solvation parameters added by \"addsol\"\n");fprintf(outfile,"REMARK \n");strcpy(record[0],"C --- 9.82 4.00");strcpy(record[1],"O --- 8.17 -17.40");strcpy(record[2],"N --- 9.00 -17.40");strcpy(record[3],"CA --- 9.40 4.00");strcpy(record[4],"CB ALA 16.15 4.00");strcpy(record[5],"CB ARG 12.77 4.00");strcpy(record[6],"CG ARG 12.77 4.00");strcpy(record[7],"CD ARG 12.77 4.00");strcpy(record[8],"NE ARG 9.00 -24.67");strcpy(record[9],"CZ ARG 6.95 4.00");strcpy(record[10],"NH1 ARG 9.00 -24.67");strcpy(record[11],"NH2 ARG 9.00 -24.67");strcpy(record[12],"CB ASN 12.77 4.00");strcpy(record[13],"CG ASN 9.82 4.00");strcpy(record[14],"OD1 ASN 8.17 -17.40");strcpy(record[15],"ND2 ASN 13.25 -17.40");strcpy(record[16],"CB ASP 12.77 4.00");strcpy(record[17],"CG ASP 9.82 4.00");strcpy(record[18],"OD1 ASP 8.17 -18.95");strcpy(record[19],"OD2 ASP 8.17 -18.95");strcpy(record[20],"CB CYS 12.77 4.00");strcpy(record[21],"SG CYS 19.93 -6.40");strcpy(record[22],"CB GLU 12.77 4.00");strcpy(record[23],"CG GLU 12.77 4.00");strcpy(record[24],"CD GLU 9.82 4.00");strcpy(record[25],"OE1 GLU 8.17 -18.95");strcpy(record[26],"OE2 GLU 8.17 -18.95");strcpy(record[27],"CB PHE 12.77 4.00");strcpy(record[28],"CG PHE 7.26 0.60");strcpy(record[29],"CD1 PHE 10.80 0.60");strcpy(record[30],"CD2 PHE 10.80 0.60");strcpy(record[31],"CE1 PHE 10.80 0.60");strcpy(record[32],"CE2 PHE 10.80 0.60");strcpy(record[33],"CZ PHE 10.80 0.60");strcpy(record[34],"CB PRO 12.77 4.00");strcpy(record[35],"CG PRO 12.77 4.00");strcpy(record[36],"CD PRO 12.77 4.00");strcpy(record[37],"CB GLN 12.77 4.00");strcpy(record[38],"CG GLN 12.77 4.00");strcpy(record[39],"CD GLN 9.82 4.00");strcpy(record[40],"OE1 GLN 8.17 -17.40");strcpy(record[41],"NE2 GLN 13.25 -17.40");strcpy(record[42],"CB HIS 12.77 4.00");strcpy(record[43],"CG HIS 7.26 0.60");strcpy(record[44],"ND1 HIS 9.25 -17.40");strcpy(record[45],"CD2 HIS 10.80 0.60");strcpy(record[46],"CE1 HIS 10.80 0.60");strcpy(record[47],"NE2 HIS 9.25 -17.40");strcpy(record[48],"CB ILE 9.40 4.00");strcpy(record[49],"CG1 ILE 12.77 4.00");strcpy(record[50],"CG2 ILE 16.15 4.00");strcpy(record[51],"CD1 ILE 16.15 4.00");strcpy(record[52],"CB LEU 12.77 4.00");strcpy(record[53],"CG LEU 9.40 4.00");strcpy(record[54],"CD1 LEU 16.15 4.00");strcpy(record[55],"CD2 LEU 16.15 4.00");strcpy(record[56],"CB LYS 12.77 4.00");strcpy(record[57],"CG LYS 12.77 4.00");strcpy(record[58],"CD LYS 12.77 4.00");strcpy(record[59],"CE LYS 12.77 4.00");strcpy(record[60],"NZ LYS 13.25 -39.20");strcpy(record[61],"CB MET 12.77 4.00");strcpy(record[62],"CG MET 12.77 4.00");strcpy(record[63],"SD MET 16.39 -6.40");strcpy(record[64],"CE MET 16.15 4.00");strcpy(record[65],"CB TRP 12.77 4.00");strcpy(record[66],"CG TRP 7.26 0.60");strcpy(record[67],"CD1 TRP 10.80 0.60");strcpy(record[68],"CD2 TRP 6.80 0.60");strcpy(record[69],"NE1 TRP 9.00 -17.40");strcpy(record[70],"CE2 TRP 6.80 0.60");strcpy(record[71],"CE3 TRP 10.80 0.60");strcpy(record[72],"CZ2 TRP 10.80 0.60");strcpy(record[73],"CZ3 TRP 10.80 0.60");strcpy(record[74],"CH2 TRP 10.80 0.60");strcpy(record[75],"CB SER 12.77 4.00");strcpy(record[76],"OG SER 11.04 -17.40");strcpy(record[77],"CB THR 9.40 4.00");strcpy(record[78],"OG1 THR 11.04 -17.40");strcpy(record[79],"CG2 THR 16.15 4.00");strcpy(record[80],"CB TYR 12.77 4.00");strcpy(record[81],"CG TYR 7.26 0.60");strcpy(record[82],"CD1 TYR 10.80 0.60");strcpy(record[83],"CD2 TYR 10.80 0.60");strcpy(record[84],"CE1 TYR 10.80 0.60");strcpy(record[85],"CE2 TYR 10.80 0.60");strcpy(record[86],"CZ TYR 7.26 0.60");strcpy(record[87],"OH TYR 10.94 -17.40");strcpy(record[88],"CB VAL 9.40 4.00");strcpy(record[89],"CG1 VAL 16.15 4.00");strcpy(record[90],"CG2 VAL 16.15 4.00");strcpy(record[91],"FE HEM 1.70 -39.20");strcpy(record[92],"CHA HEM 10.80 0.60");strcpy(record[93],"CHB HEM 10.80 0.60");strcpy(record[94],"CHC HEM 10.80 0.60");strcpy(record[95],"CHD HEM 10.80 0.60");strcpy(record[96],"C1A HEM 10.80 0.60");strcpy(record[97],"C2A HEM 10.80 0.60");strcpy(record[98],"C3A HEM 10.80 0.60");strcpy(record[99],"C4A HEM 10.80 0.60");strcpy(record[100],"CMA HEM 16.15 4.00");strcpy(record[101],"NB HEM 9.25 -17.40");strcpy(record[102],"C1B HEM 10.80 0.60");strcpy(record[103],"C4B HEM 10.80 0.60");strcpy(record[104],"NC HEM 9.25 -17.40");strcpy(record[105],"C1C HEM 10.80 0.60");strcpy(record[106],"C2C HEM 10.80 0.60");strcpy(record[107],"C3C HEM 10.80 0.60");strcpy(record[108],"C4C HEM 10.80 0.60");strcpy(record[109],"CMC HEM 16.15 4.00");strcpy(record[110],"ND HEM 9.25 -17.40");strcpy(record[111],"C1D HEM 10.80 0.60");strcpy(record[112],"C4D HEM 10.80 0.60");strcpy(record[113],"NA HEM 9.25 -17.40");strcpy(record[114],"CAA HEM 12.77 4.00");strcpy(record[115],"CBA HEM 12.77 4.00");strcpy(record[116],"CGA HEM 9.82 4.00");strcpy(record[117],"O1A HEM 8.17 -18.95");strcpy(record[118],"O2A HEM 8.17 -18.95");strcpy(record[119],"C1A HEM 10.80 0.60");strcpy(record[120],"C2B HEM 10.80 0.60");strcpy(record[121],"CMB HEM 16.15 4.00");strcpy(record[122],"C3B HEM 10.80 0.60");strcpy(record[123],"CAB HEM 12.77 4.00");strcpy(record[124],"CBB HEM 16.15 4.00");strcpy(record[125],"CAC HEM 12.77 4.00");strcpy(record[126],"CBC HEM 16.15 4.00");strcpy(record[127],"C2D HEM 10.80 0.60");strcpy(record[128],"CMD HEM 16.15 4.00");strcpy(record[129],"C3D HEM 10.80 0.60");strcpy(record[130],"CAD HEM 12.77 4.00");strcpy(record[131],"CBD HEM 12.77 4.00");strcpy(record[132],"CGD HEM 9.82 4.00");strcpy(record[133],"O1D HEM 8.17 -18.95");strcpy(record[134],"O2D HEM 8.17 -18.95");strcpy(record[135],"C CXL 9.82 4.00");strcpy(record[136],"O1 CXL 8.17 -18.95");strcpy(record[137],"O2 CXL 8.17 -18.95");strcpy(record[138],"N AMN 13.25 -39.20");strcpy(record[139],"XX XXX 13.25 -39.20");strcpy(record[140],"OXY --- 8.17 -17.40");while((fgets(line, LINE_LEN, pdbq_fp))!=NULL){/*just write any line without atom data to output file*/ if(strncmp(line,"HETA",4)&&strncmp(line,"ATOM",4)){ fprintf(outfile,"%s",line); } else { found=0; for(j=0;j<4;j++){ if(!strncmp(record[j],line+13,3)){ found++; strncpy(line+76," ",3); strncpy(line+78,record[j]+8,6); strncpy(line+84," ",1); strncpy(line+85,record[j]+14,7); fprintf(outfile,"%s\n",line); }; }; for(j=4;j<DATA_LINE_NUM;j++){ if(!strncmp(record[j],line+13,7)){ found++; strncpy(line+76," ",3); strncpy(line+78,record[j]+8,6); strncpy(line+84," ",1); strncpy(line+85,record[j]+14,7); fprintf(outfile,"%s\n",line); }; }; if(found==0){ strcpy(line+76," 0.00 0.00"); fprintf(outfile,"%s\n",line); }; }} exit(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -