Teppei Kinoshita
kinos****@yasun*****
2014年 3月 6日 (木) 09:42:59 JST
eos-documentメンバー各位 木下 哲平です。お世話になっております。 3月6日(木)現在にて残っている問題を報告致します。 【ソースでの問題】 (R1) mrcImageTfunction: 以下の点が気になりましたので、保留とさせて頂きます。 getStatDataOfWhole関数(ObjectsのlmrcImageTfunction.c: 138行目付近) mrcImageInformation info; lmrcImageInformation(&info, src); 宣言したinfoデータをそのままlmrcImageInformationに入れていますが、 lmrcImageInformation関数(ObjectsのmrcImageInfo.c: 537行目付近)では 入力のままでinfo->modeをswitchに使用しています。(動作させたところdefaultでエラーとなりました) (R2) mrcImageFTest: main関数(ToolsのmrcImageFTest.c: 49行目付近) lmrcImagesFTest(&Out, &OutF, in, info.flagIn, ref, info.flagRef, info.mode); lmrcImagesFTest(&Out, &OutF, in, info.flagIn, ref, info.flagRef, info.mode); mrcFileWrite(&Out, info.Out, "write Out in main", 0); exit(EXIT_SUCCESS); 2つ気になる箇所があります。 (i) lmrcImagesFTestは出力データを関数内でNULLに初期化しているようですので、 2回使用する必要はないかと思います。 (ObjectsのlmrcImagesFTest.c: 49行目付近) (ii) OutFについてのmrcFileWriteがありませんので、オプション-fのファイルが出力されないようです。 (R3) anglediffchk: こちらは2つの角度の差を180度以内で出力する仕様であると推測してますが、 main関数(Toolsのanglediffchk.c: 49行目付近) 誤: if(ans>180) 360-ans; 正: if(ans>180) ans=360-ans; ではないのでしょうか。 (R4) llDataResolutionCheck: こちらのコマンドは未完成だと思いますが、念のため報告致します。 (未完成の判断箇所)main関数(ToolsのllDataResolutionCheck.c)の流れ init0 -> argchk -> init1 -> llDataFileRead -> exit (報告事項) main関数内(ToolsのllDataResolutionCheck.c: 53行目付近) 誤: llDataFileRead(info.In[i], &(In[i]), 0); 正: llDataFileRead(info.fptIn[i], &(In[i]), 0); かと思います。 第1引数にファイル名の配列を入れていますが、 定義(ObjectsのllDataRead.c: 79行目付近)によれば、 llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status) と、ファイルポインタの配列が期待されているようです。 (R5) llExtract: レイヤーラインデータについて-Lを使用した場合 argCheck関数内(ToolsのllExtractのargCheck.c内: 200行目付近) SCASE("L") { if(i+8<argc) { nv = argc - i - 1; info->n = (long*)memoryAllocate(sizeof(long)*nv, "in argCheck"); for(j=0; j<nv; j++) { info->n[j] = stringGetNthIntegerData(argv[i+j+1], 1, " ,"); } info->flagn=nv; i+=nv; nv = argc - i - 1; . . (以降、各値について同様の処理) となっていますが、このとき i: オプション文字(-L) の位置 arg: 引数の数 + i + 1 かと思いますので、ここで nv = 引数の数 になり、最初のfor文であるnの項目で引数分のデータを全て取り出してしまい、 以降のデータは i+=nv; nv = argc - i - 1; から、nvが負になってしまいうまく取り出せないのではないかと思います。 但し、こちらはコンフィグファイルからの読み込みも出来るようですので、 こちらについての動作も現在確認しております。 (R6) mrcImageAutoFilamentExtract: -TはmrcImageTransposeをかけるオプションだと思いますが、 ToolsのmrcImageAutoFilamentExtract.c: 358行目、422行目付近にて 綴りがコマンドと違うことにより動作できませんでした。 正: mrcImageTranspose 誤: mrcImageTransepose かと思います。 (R7) mrcImageOrientationSearch: -oで出力ファイルが指定されていますが、ファイルに書き込み処理が見つかりませんでした。 標準出力される以下のようなデータが本質の部分なのでしょうか。 (データ) angle[0] = 4.813094 >> cosine = 0.100535 sine = -0.994933 angle[1] = 2.668259 >> cosine = -0.890054 sine = 0.455856 . . cosineXr1 = 0.349082 cosineXr2 = -0.224265 ratio = -0.961585 Xrotation1 = 1.214205 Xrotation2 = 1.796985 filename : /Eos/img/Input0.mrc >>> ZENR (0.000000, 0.000000, 0.000000) filename : /Eos/img/Input1.mrc >>> ZENR (152.880000, 275.770000, 69.568827) . . (R8) lProjectionDirectionMapCreateについて: オプション: -psは未対応と判断しました。(設定するとNo supportといわれるので) さらに、オプションm=3: モルワイデ図法は未対応と判断しました。 (判断箇所) __OutputFileWrite関数内(ToolsのProjectionDirectionMapCreate.c: 255行目付近) -> モード3で処理がありません。 lProjectionDirectionMapCreate -> モード3では__OutputFileWriteでメモリ確保したx, yを出力してますが、 上記の通り処理がないので、0しか出力されません。 (R9) pdbChargeFitについて: lpdbChargeFit関数内(ToolsのpdbChargeFit.c: 104行目付近) pdbFileCopyAll(&tmpPdb,&inMoveCA); この処理の前後で-o のファイルポインタ(info内)やlengthV->DataなどNULLになっています。 -> pdbSufaceの件と同様、書き換わっているかもしれません -> 以下のデータが宣言されていますが、pdbFileNewでメモリ確保していないため起きた現象でしょうか? pdbFile inFix; pdbFile inMove; pdbFile inFixCA; pdbFile inMoveCA; pdbFile tmpPdb; 【ソースから未実装と判断】 ctfDeterminationFromMultiImage mrcImagePhaseCTFCompensationFromCTFINFO llDataFit mrcImageBoundaryInfo mrcImagePolyROI mrcImageSimilarImageSearch mrcFFTBandPassFilter mrcImagePrint3D mrcRefImageOmegaCorrelation mrcRefImagepwzCorrelationByFFT mrcImageActinSingleParticleAnalysis mrcImageNormalDistributionTest pdb2bender pdbDisplay rasmonyo LCalculationForOrientationSearch ソースコードが以下の内容のとき未実装と判断しています ・main関数がinit関数とargcheck関数のみでexitしている。 以上、よろしくお願い致します。 木下 哲平