示例#1
0
 public static MixHessInfo GetHessMixSbNMA(Universe univ, IList <Vector> coords, ILinAlg la
                                           , IList <ResInfo> lstResAllAtom, double nbondMaxDist, out string errmsg
                                           , bool bGetIntmInfo, string strBkbnReso
                                           )
 {
     // nbondMaxDist = double.PositiveInfinity
     MixModel.FnGetHess GetHess = delegate(Universe luniv, IList <Vector> lcoords, int[] idxAll, int[] idxBuffer, int[] idxCoarse, int[] idxBackbone)
     {
         var hessinfo = Hess.GetHessSbNMA(luniv, lcoords, nbondMaxDist);
         return(hessinfo);
     };
     return(MixModel.GetHessMixModel(univ, coords, la, lstResAllAtom, GetHess, out errmsg, bGetIntmInfo, strBkbnReso));
 }
                public static Tuple <double, double, double[]> GetQuality
                    (string pathbase
                    , Universe univ
                    , Universe univ_scrn
                    , string hesstype
                    , double GetHessCoarseResiIter_thres_zeroblk
                    )
                {
                    Universe             luniv;
                    Func <Hess.HessInfo> GetHessInfo;

                    switch (hesstype)
                    {
                    case "NMA": luniv = univ;      GetHessInfo = delegate() { return(Hess.GetHessNMA(luniv, luniv.GetCoords(), tempbase, 16)); }; break;

                    case "scrnNMA": luniv = univ_scrn; GetHessInfo = delegate() { return(Hess.GetHessNMA(luniv, luniv.GetCoords(), tempbase, 16, "CUTOFF 9", "TAPER")); }; break;

                    case "sbNMA": luniv = univ;      GetHessInfo = delegate() { return(Hess.GetHessSbNMA(luniv, luniv.GetCoords(), double.PositiveInfinity)); }; break;

                    case "ssNMA": luniv = univ;      GetHessInfo = delegate() { return(Hess.GetHessSsNMA(luniv, luniv.GetCoords(), double.PositiveInfinity)); }; break;

                    case "eANM": luniv = univ;      GetHessInfo = delegate() { return(Hess.GetHessEAnm(luniv, luniv.GetCoords())); }; break;

                    case "AA-ANM": luniv = univ;      GetHessInfo = delegate() { return(Hess.GetHessAnm(luniv, luniv.GetCoords(), 4.5)); }; break;

                    default:
                        throw new HException();
                    }

                    string pathcache = pathbase + string.Format("{0}.{1}.txt", hesstype, GetHessCoarseResiIter_thres_zeroblk);

                    Tuple <double, double, double[]> corr_wovlp_ovlps;

                    try
                    {
                        corr_wovlp_ovlps = GetQuality(pathcache, luniv, GetHessInfo, GetHessCoarseResiIter_thres_zeroblk);
                        return(corr_wovlp_ovlps);
                    }
                    catch
                    {
                        return(null);
                    }
                }