Ticket #33400

pdbListRMSDCalc

오픈 날짜: 2014-03-06 17:06 마지막 업데이트: 2014-05-01 04:00

Reporter:
소유자:
Type:
Status:
Open [Owner assigned]
Component:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

	ファイル名: /src/Tools/pdbUtil/pdbListRMSDCalc/src/pdbListRMSDCalc.c
	関数名: lpdbRMSDCalc

	【問題内容】
	mode=0において読み込まれていないファイル(-r)をコピーしていると思います。

	【ソースコード(一部)】(ref記述箇所)
	(113行目付近)
		pdbFile ref;
		int old=0,now=0;
		if(mode==1) {
			pdbFileRead(fptRef, &ref);
			pdbFileTop(&ref);
		}

	(165行目付近)
	if(mode==0){
		pdbFileOneRecordCopy(&ref,pdbRMSD);
	}

	【補足】
	おそらく(113行目付近)をmode==0にするのだと思います。


-追記-
【問題内容】
	修正して頂きましたが、まだmode=0のときの動作ができないようです
	
【考察】
	mode=0のときreferenceはwhile文内にてnline=0のときのみnewするようになってますが、
 	その前にnline++があるので、newされずAppendするようになっている点が
 	原因かと思います。

【ソースコード(一部)】
ファイル名: /src/Tools/pdbUtil/pdbListRMSDCalc/src/pdbListRMSDCalc.c
関数名: lpdbRMSDCalc
	(143行目付近)
	nline=0;
	(150行目付近: while文内)
	    // New
	    if(0==nline) {
	      pdbFileNew(pdbRMSD);
	    } else {
	      pdbFileAppend(pdbRMSD);
	    }
	    nline++;

	(183行目付近: while文内 - if(入力PDBファイルで原子データがあるときに入るようです))
	       // mode_0 Average Coord 
	       if(mode==0){
	         if(0==nline) {
 	          pdbFileNew(&ref);
	         } else {
	           pdbFileAppend(&ref);
	         }
	         pdbFileOneRecordCopy(&ref,pdbRMSD);
	       }
	
【対策案】
	referenceのnewを最初に持ってくるとよいかと思います。
	(修正前)
		(132行目付近)
		  // fptRef
		  if(mode==1) {
		    pdbFileRead(fptRef, &ref);
		    pdbFileTop(&ref);
		  }

		(183行目付近)
	      // mode_0 Average Coord 
	      if(mode==0){
	        if(0==nline) {
	          pdbFileNew(&ref);
	        } else {
	          pdbFileAppend(&ref);
 	       }
	        pdbFileOneRecordCopy(&ref,pdbRMSD);
	      }

	(修正後)
		(132行目付近)
		  // fptRef
		  if(mode==1) {
		    pdbFileRead(fptRef, &ref);
		    pdbFileTop(&ref);
		  } else {
	           pdbFileNew(&ref);
		  } 

		(183行目付近)
	      // mode_0 Average Coord 
	      if(mode==0){
	        if(0==nline) {
	          // pdbFileNew(&ref);
	        } else {
	          pdbFileAppend(&ref);
 	       }
	        pdbFileOneRecordCopy(&ref,pdbRMSD);
	      }

Ticket History (3/5 Histories)

2014-03-06 17:06 Updated by: kinoshita-eos
  • New Ticket "pdbListRMSDCalc" created
2014-03-20 21:28 Updated by: tacyas
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2014-03-20 21:28
  • Resolution Update from None to Fixed
댓글 올리기

modeは合っていますが、領域が確保されていませんでした。

mode=0は、平均座標に対するRMSD mode=1は、reference座標に対するRMSD となります。

-r をOptionalに変更しています。 これは、 -m 0の時には必要ないからです。 -m 1の時には必要です。

-m 1のとき、-rが設定されていないと、修了するように変更しています。

176 // mode_0 Average Coord 177 if(mode==0){ 178 if(0==nline) { 179 pdbFileNew(&ref); 180 } else { 181 pdbFileAppend(&ref); 182 } 183 pdbFileOneRecordCopy(&ref,pdbRMSD); 184 } 1

2014-03-27 10:06 Updated by: kinoshita-eos
2014-05-01 04:00 Updated by: tacyas
  • Component Update from (None) to base-v2.0

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login