示例#1
0
        /// <summary>
        /// the intra-chain domain interfaces from chains of the ASU
        /// </summary>
        /// <param name="relSeqId"></param>
        /// <param name="pdbId"></param>
        /// <returns></returns>
        private Dictionary <int, DomainInterfaceComponent> GetIntraChainDomainInterfaceContents(int relSeqId, string pdbId)
        {
            //       int asuRelSeqId = ConvertRelSeqID(relSeqId, BuCompBuilder.BuType, "asu");
            string queryString = string.Format("Select * From AsuIntraDomainInterfaces " +
                                               " Where RelSeqID = {0} AND PdbID = '{1}';", relSeqId, pdbId);
            DataTable intraChainDomainInterfaceTable = dbQuery.Query(ProtCidSettings.buCompConnection, queryString);

            Dictionary <int, DomainInterfaceComponent> domainInterfaceHash = new Dictionary <int, DomainInterfaceComponent> ();

            if (intraChainDomainInterfaceTable.Rows.Count > 0)
            {
                string[] familyCodes       = GetRelationFamilyCodes(relSeqId);
                int      domainInterfaceId = -1;
                int      chainInterfaceId  = 0;
                string   asymChain         = "";
                Dictionary <long, Range[]> domainRangeHash = new Dictionary <long, Range[]> ();
                string isReversed = "";

                foreach (DataRow domainInterfaceRow in intraChainDomainInterfaceTable.Rows)
                {
                    domainInterfaceId = Convert.ToInt32(domainInterfaceRow["DomainInterfaceID"].ToString());
                    asymChain         = domainInterfaceRow["AsymChain"].ToString().TrimEnd();

                    DomainInterfaceComponent domainInterfaceContent = new DomainInterfaceComponent();
                    domainInterfaceContent.chainSymOpString1 = asymChain + "_1_555";
                    domainInterfaceContent.chainSymOpString2 = asymChain + "_1_555";
                    Range[] domainRange1 = GetDomainRange(pdbId, Convert.ToInt64(domainInterfaceRow["DomainID1"].ToString()), ref domainRangeHash);
                    if (domainRange1 == null)
                    {
                        continue;
                    }
                    Range[] domainRange2 = GetDomainRange(pdbId, Convert.ToInt64(domainInterfaceRow["DomainID2"].ToString()), ref domainRangeHash);
                    if (domainRange2 == null)
                    {
                        continue;
                    }
                    domainInterfaceContent.domainRange1     = domainRange1;
                    domainInterfaceContent.domainRange2     = domainRange2;
                    domainInterfaceContent.chainInterfaceId = chainInterfaceId;
                    domainInterfaceContent.domainId1        = Convert.ToInt64(domainInterfaceRow["DomainID1"].ToString());
                    domainInterfaceContent.domainId2        = Convert.ToInt64(domainInterfaceRow["DomainID2"].ToString());
                    isReversed = domainInterfaceRow["IsReversed"].ToString();
                    if (isReversed == "1")
                    {
                        domainInterfaceContent.familyCode1 = familyCodes[1];
                        domainInterfaceContent.familyCode2 = familyCodes[0];
                    }
                    else
                    {
                        domainInterfaceContent.familyCode1 = familyCodes[0];
                        domainInterfaceContent.familyCode2 = familyCodes[1];
                    }
                    domainInterfaceHash.Add(domainInterfaceId, domainInterfaceContent);
                }
            }
            return(domainInterfaceHash);
        }
示例#2
0
        /// <summary>
        /// domain-domain interactions with the relation in the BU
        /// </summary>
        /// <param name="domainInterfacesHash">domain interfaces for the BU</param>
        /// <param name="biolUnitHash">the chains and atoms for the BU</param>
        /// <returns>the domain-domain interfaces in the BU</returns>
        private DomainInterface[] GetDomainInterfaces(Dictionary <int, DomainInterfaceComponent> domainInterfacesHash, Dictionary <string, AtomInfo[]> biolUnitHash)
        {
            List <DomainInterface> domainInterfaceList = new List <DomainInterface> ();

            foreach (int domainInterfaceId in domainInterfacesHash.Keys)
            {
                DomainInterfaceComponent component = (DomainInterfaceComponent)domainInterfacesHash[domainInterfaceId];
                AtomInfo[] domainAtoms1            = null;
                AtomInfo[] domainAtoms2            = null;
                foreach (string chainSymOpString in biolUnitHash.Keys)
                {
                    if (component.chainSymOpString1 == chainSymOpString)
                    {
                        domainAtoms1 = GetDomainAtoms((AtomInfo[])biolUnitHash[chainSymOpString],
                                                      component.domainRange1);
                    }
                    if (component.chainSymOpString2 == chainSymOpString)
                    {
                        domainAtoms2 = GetDomainAtoms((AtomInfo[])biolUnitHash[chainSymOpString],
                                                      component.domainRange2);
                    }
                }
                DomainInterface domainInterface = new DomainInterface();
                domainInterface.domainInterfaceId = domainInterfaceId;
                domainInterface.interfaceId       = component.chainInterfaceId;
                domainInterface.chain1            = domainAtoms1;
                domainInterface.chain2            = domainAtoms2;
                domainInterface.firstSymOpString  = component.chainSymOpString1;
                domainInterface.secondSymOpString = component.chainSymOpString2;
                domainInterface.domainId1         = component.domainId1;
                domainInterface.domainId2         = component.domainId2;
                domainInterface.familyCode1       = component.familyCode1;
                domainInterface.familyCode2       = component.familyCode2;
                domainInterface.GetInterfaceResidueDist();
                domainInterfaceList.Add(domainInterface);
            }
            return(domainInterfaceList.ToArray());
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="relSeqId"></param>
        /// <param name="pdbId"></param>
        /// <param name="domainInterfaceTable"></param>
        /// <returns></returns>
        private Dictionary <string, Dictionary <int, DomainInterfaceComponent> > GetDomainInterfaceContents(int relSeqId, string pdbId, DataTable domainInterfaceTable)
        {
            string[] familyCodes = GetRelationFamilyCodes(relSeqId);

            Dictionary <string, Dictionary <int, DomainInterfaceComponent> > buDomainInterfaceHash = new Dictionary <string, Dictionary <int, DomainInterfaceComponent> > ();
            string buId = "";
            int    domainInterfaceId = -1;
            int    chainInterfaceId  = -1;
            Dictionary <long, Range[]> domainRangeHash = new Dictionary <long, Range[]> ();
            string isReversed = "";

            foreach (DataRow domainInterfaceRow in domainInterfaceTable.Rows)
            {
                buId = domainInterfaceRow["BuID"].ToString().TrimEnd();
                domainInterfaceId = Convert.ToInt32(domainInterfaceRow["DomainInterfaceID"].ToString());
                chainInterfaceId  = Convert.ToInt32(domainInterfaceRow["InterfaceID"].ToString());
                string[] chainSymOpStrings = GetChainInterfaceChainComponent(pdbId, buId, chainInterfaceId);
                if (chainSymOpStrings == null)
                {
                    continue;
                }
                DomainInterfaceComponent domainInterfaceContent = new DomainInterfaceComponent();
                domainInterfaceContent.chainSymOpString1 = chainSymOpStrings[0];
                domainInterfaceContent.chainSymOpString2 = chainSymOpStrings[1];
                Range[] domainRange1 = GetDomainRange(pdbId, Convert.ToInt64(domainInterfaceRow["DomainID1"].ToString()), ref domainRangeHash);
                if (domainRange1 == null)
                {
                    continue;
                }
                Range[] domainRange2 = GetDomainRange(pdbId, Convert.ToInt64(domainInterfaceRow["DomainID2"].ToString()), ref domainRangeHash);
                if (domainRange2 == null)
                {
                    continue;
                }
                domainInterfaceContent.domainRange1     = domainRange1;
                domainInterfaceContent.domainRange2     = domainRange2;
                domainInterfaceContent.chainInterfaceId = chainInterfaceId;
                domainInterfaceContent.domainId1        = Convert.ToInt64(domainInterfaceRow["DomainID1"].ToString());
                domainInterfaceContent.domainId2        = Convert.ToInt64(domainInterfaceRow["DomainID2"].ToString());
                isReversed = domainInterfaceRow["IsReversed"].ToString();
                if (isReversed == "1")
                {
                    domainInterfaceContent.familyCode1 = familyCodes[1];
                    domainInterfaceContent.familyCode2 = familyCodes[0];
                }
                else
                {
                    domainInterfaceContent.familyCode1 = familyCodes[0];
                    domainInterfaceContent.familyCode2 = familyCodes[1];
                }

                if (buDomainInterfaceHash.ContainsKey(buId))
                {
                    buDomainInterfaceHash[buId].Add(domainInterfaceId, domainInterfaceContent);
                }
                else
                {
                    Dictionary <int, DomainInterfaceComponent> domainInterfaceHash = new Dictionary <int, DomainInterfaceComponent> ();
                    domainInterfaceHash.Add(domainInterfaceId, domainInterfaceContent);
                    buDomainInterfaceHash.Add(buId, domainInterfaceHash);
                }
            }
            return(buDomainInterfaceHash);
        }