Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        public void Initialize(bool isUpdate)
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            // for connecting to ProtBuD database, converting sequence numbers
            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.pdbfamDbPath);
            }

            if (alignmentDbConnection == null)
            {
                alignmentDbConnection = new DbConnect();
                alignmentDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.alignmentDbPath;
            }
            alignmentDbConnection.ConnectToDatabase();

            FatcatTables.InitializeTables(dbAlignTableName);

            /*          if (! isUpdate) // intend to comment out, to prevent drop the tables
             *        {
             *            FatcatTables.InitializeDbTable(alignmentDbConnection, dbAlignTableName); // create new fatcat alignments table in the db
             *            FatcatTables.InitializeDbTable(alignmentDbConnection, dbAlignTableName + "Rigid");
             *        }*/

            if (logWriter == null)
            {
                logWriter = new StreamWriter("FatcatAlignmentsParsingLog.txt", true);
                logWriter.WriteLine(DateTime.Today.ToShortDateString());
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="nonAlignedPairsFile"></param>
        public string GetFatcatAlignmentsOnLinux(string nonAlignedPairsFile)
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (ProtCidSettings.alignmentDbConnection == null)
            {
                ProtCidSettings.alignmentDbConnection = new DbLib.DbConnect();
                ProtCidSettings.alignmentDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;" +
                                                                      "PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.alignmentDbPath;
            }

            string repChainPairsFileName = "NonAlignRepEntryPairs.txt";

            WriteRepChainPairsToFile(nonAlignedPairsFile, repChainPairsFileName);

            CmdOperations linuxOperator = new CmdOperations();

            linuxOperator.CopyWindowsDataToLinux(repChainPairsFileName, exeFatcatDir + repChainPairsFileName);

            string cmdLineFile = WriteFatcatCommandFile(repChainPairsFileName);

            linuxOperator.RunPlink(cmdLineFile);

            string alignFileInLinux   = fatcatDir + repChainPairsFileName.Replace(".txt", ".aln");
            string alignFileInWindows = Path.Combine(ProtCidSettings.dirSettings.fatcatPath, repChainPairsFileName.Replace(".txt", ".aln"));

            linuxOperator.CopyLinuxDataToWindows(alignFileInLinux, alignFileInWindows);
            return(alignFileInWindows);
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="updateGroups"></param>
        public string ReverseClusterInterfaceFiles(int[] updateGroups)
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }
            string updateReverseInterfaceFile = Path.Combine(ProtCidSettings.applicationStartPath, "ReverseInterfacesInCluster.txt");

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Update Non-symmetry interface files in the clusters.");
            string updateNonSymInterfaceFile = UpdateClusterNonSymmetryInterfaces(updateGroups);

            //     string updateNonSymInterfaceFile = "UpdateClusterNonSymInterfaces.txt";

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Compare Non symmetry interface files to the first interface in the cluster (in alphabet order)");
            string updateNonSymInterfaceCompFile = interfaceComp.CompareClusterNonSymInterfaces(updateNonSymInterfaceFile);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Reverse interface files in pdb format.");
            updateReverseInterfaceFile = GetInterfacesToReversed(updateNonSymInterfaceCompFile);

            interfaceGenerator.ReverseInterfaceChains(updateReverseInterfaceFile);

            return(updateReverseInterfaceFile);
        }
Exemplo n.º 4
0
        public void WriteAsuToPdbFiles()
        {
            SetFilePaths();
            ProtCidSettings.LoadDirSettings();
            ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.pdbfamDbPath);
            ProtCidSettings.pdbfamDbConnection.ConnectToDatabase();

            string[] pdbCodes        = GetMissingEntries();
            string   gzCoordXmlFile  = "";
            string   coordXmlFile    = "";
            string   coordXmlFileDir = @"D:\Qifang\ProjectData\DbProjectData\CoordXml";

            foreach (string pdbCode in pdbCodes)
            {
                try
                {
                    gzCoordXmlFile = Path.Combine(coordXmlFileDir, pdbCode + ".xml.gz");
                    coordXmlFile   = ParseHelper.UnZipFile(gzCoordXmlFile, ProtCidSettings.tempDir);
                    // read data from crystal xml file
                    EntryCrystal  thisEntryCrystal;
                    XmlSerializer xmlSerializer = new XmlSerializer(typeof(EntryCrystal));
                    FileStream    xmlFileStream = new FileStream(coordXmlFile, FileMode.Open);
                    thisEntryCrystal = (EntryCrystal)xmlSerializer.Deserialize(xmlFileStream);
                    xmlFileStream.Close();
                    WriteXmlFileToPdbFile(pdbCode, thisEntryCrystal);
                }
                catch (Exception ex)
                {
                    ProtCidSettings.progressInfo.progStrQueue.Enqueue(pdbCode + ": " + ex.Message);
                }
            }
            ProtCidSettings.pdbfamDbConnection.DisconnectFromDatabase();
        }
Exemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        public void UpdateBuAssemblies()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (!Directory.Exists(ProtCidSettings.tempDir))
            {
                Directory.CreateDirectory(ProtCidSettings.tempDir);
            }

            bool needLigands   = true;
            bool authorDefined = true;

            // add new/updated BU files on May 24, 2011 for Qiong's paper
            string[] updateEntries = GetUpdateFileList();
            //         string[] updateEntries = GetEntriesWithBugs();

            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();
            ProtCidSettings.progressInfo.totalOperationNum     = updateEntries.Length;
            ProtCidSettings.progressInfo.totalStepNum          = updateEntries.Length;
            ProtCidSettings.progressInfo.currentOperationLabel = "Generate BU files";

            string[]     entryBuFiles  = null;
            string       newLsFileName = Path.Combine(ProtCidSettings.dirSettings.pisaPath, "newls.txt");
            StreamWriter lsFileWriter  = new StreamWriter(newLsFileName);

            foreach (string pdbId in updateEntries)
            {
                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;
                ProtCidSettings.progressInfo.currentFileName = pdbId;

                entryBuFiles = GenerateEntryBuFiles(pdbId, needLigands, authorDefined);
                if (entryBuFiles != null && entryBuFiles.Length > 0)
                {
                    CopyEntryBuFilesToLinux(entryBuFiles);

                    foreach (string buFile in entryBuFiles)
                    {
                        FileInfo fileInfo = new FileInfo(buFile);
                        lsFileWriter.WriteLine(fileInfo.Name);
                    }
                    lsFileWriter.Flush();
                }
            }
            try
            {
                Directory.Delete(ProtCidSettings.tempDir);
            }
            catch { }
            logWriter.Close();
            lsFileWriter.Close();

            CopyLsFileToLinux(newLsFileName);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Done!");
            ProtCidSettings.progressInfo.threadFinished = true;
        }
Exemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        public void AddPeptideSequencesInfoToClusterFile()
        {
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();
            AppSettings.LoadSymOps();

            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                   ProtCidSettings.dirSettings.pdbfamDbPath);
            }

            if (ProtCidSettings.protcidDbConnection == null)
            {
                ProtCidSettings.protcidDbConnection = new DbConnect();
                ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                    ProtCidSettings.dirSettings.protcidDbPath;
            }

            string       clusterFile         = @"D:\DbProjectData\pfam\PfamPeptide\Pkinase\cutoff3\PfamPepInterfaceClusters3.txt";
            string       clusterSequenceFile = @"D:\DbProjectData\pfam\PfamPeptide\Pkinase\cutoff3\PkinaseCluster2PeptideSeq.txt";
            StreamReader dataReader          = new StreamReader(clusterFile);
            StreamWriter dataWriter          = new StreamWriter(clusterSequenceFile);
            string       line = dataReader.ReadLine(); // header line
            int          selectedClusterId = 2;
            int          clusterId         = 0;
            string       pdbId             = "";
            int          domainInterfaceId = 0;

            while ((line = dataReader.ReadLine()) != null)
            {
                string[] fields = line.Split('\t');
                clusterId = Convert.ToInt32(fields[1]);
                if (clusterId == selectedClusterId)
                {
                    pdbId             = fields[2];
                    domainInterfaceId = Convert.ToInt32(fields[3]);

                    dataWriter.WriteLine(line);
                    string[] pdbDbSeqInfos = GetPeptideSeqInfo(pdbId, domainInterfaceId);
                    if (pdbDbSeqInfos == null)
                    {
                        dataWriter.WriteLine();
                    }
                    else
                    {
                        foreach (string seq in pdbDbSeqInfos)
                        {
                            dataWriter.WriteLine(seq);
                        }
                        dataWriter.WriteLine();
                    }
                }
            }
            dataReader.Close();
            dataWriter.Close();
        }
Exemplo n.º 7
0
        public void BuildPfamDatabase()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }

            DownloadPfamFiles();

            string connectString = "Driver={MySQL ODBC 5.1 Driver}; Server=localhost;Database=pfam;UID=root;PWD=learnsql2011;";

            mysqlConnect.ConnectString = connectString;
            mysqlConnect.ConnectToDatabase();

            //     OutputPdbPfamFiles();

            string tempDir = "C:\\temp";

            if (!Directory.Exists(tempDir))
            {
                Directory.CreateDirectory(tempDir);
            }
            string[] sqlFiles       = Directory.GetFiles(Path.Combine(ProtCidSettings.dirSettings.pfamPath, "pfam_database"), "*sql.gz");
            string   loadDataString = "";
            string   unzippedFile   = "";
            string   unixFilePath   = "";
            string   tableName      = "";

            string[] createTableStrings = null;
            foreach (string sqlFile in sqlFiles)
            {
                unzippedFile = ParseHelper.UnZipFile(sqlFile, tempDir);

                createTableStrings = ReadCreatTableString(unzippedFile);
                foreach (string createTableString in createTableStrings)
                {
                    dbQuery.Query(mysqlConnect, createTableString);
                }
            }

            string[] pfamFiles = Directory.GetFiles(Path.Combine(ProtCidSettings.dirSettings.pfamPath, "pfam_database"), "*txt.gz");
            foreach (string pfamFile in pfamFiles)
            {
                unzippedFile   = ParseHelper.UnZipFile(pfamFile, tempDir);
                tableName      = GetTableName(pfamFile);
                unixFilePath   = unzippedFile.Replace("\\", "/");
                loadDataString = "Load data local infile '" + unixFilePath + "' into table " + tableName;
                //	" fields enclosed by '\t';";
                //   int fieldIndex = loadDataString.IndexOf("fields enclosed by \'");
                // loadDataString = loadDataString.Insert (fieldIndex + "fields enclosed by \'".Length, "\\");
                dbQuery.Query(mysqlConnect, loadDataString);
            }
            Directory.Delete(tempDir, true);

            OutputPdbPfamFiles();
        }
Exemplo n.º 8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="isUpdate"></param>
 private void Initialize(bool isUpdate)
 {
     if (ProtCidSettings.dirSettings == null)
     {
         ProtCidSettings.LoadDirSettings();
         ProtCidSettings.alignmentDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.alignmentDbPath);
     }
     hhAlignTable = CreateHHAlignmentTable(isUpdate, hhAlignTableName);
 }
Exemplo n.º 9
0
 public FatcatEntryPairs()
 {
     if (ProtCidSettings.dirSettings == null)
     {
         ProtCidSettings.LoadDirSettings();
     }
     ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;" +
                                                        "UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.pdbfamDbPath);
     ProtCidSettings.protcidDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;" +
                                                         "UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.protcidDbPath);
 }
Exemplo n.º 10
0
        /// <summary>
        /// initialize dbconnect
        /// </summary>
        public static void Initialize()
        {
            if (IsSettingInitialized)
            {
                return;
            }
            ProtCidSettings.dataType = "pfam";
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();
            AppSettings.LoadSymOps();

            ProtCidSettings.tempDir = "C:\\xtal_temp0";

            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect();
                ProtCidSettings.pdbfamDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                   ProtCidSettings.dirSettings.pdbfamDbPath;
                ProtCidSettings.pdbfamQuery = new DbQuery(ProtCidSettings.pdbfamDbConnection);
            }

            if (ProtCidSettings.protcidDbConnection == null)
            {
                ProtCidSettings.protcidDbConnection = new DbConnect();
                ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                    ProtCidSettings.dirSettings.protcidDbPath;
                ProtCidSettings.protcidQuery = new DbQuery(ProtCidSettings.protcidDbConnection);
            }

            if (ProtCidSettings.alignmentDbConnection == null)
            {
                ProtCidSettings.alignmentDbConnection = new DbConnect();
                ProtCidSettings.alignmentDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                      ProtCidSettings.dirSettings.alignmentDbPath;
                ProtCidSettings.alignmentQuery = new DbQuery(ProtCidSettings.alignmentDbConnection);
            }

            if (ProtCidSettings.buCompConnection == null)
            {
                ProtCidSettings.buCompConnection = new DbConnect();
                ProtCidSettings.buCompConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                 ProtCidSettings.dirSettings.baInterfaceDbPath;
                ProtCidSettings.buCompQuery = new DbQuery(ProtCidSettings.buCompConnection);
            }

            ProtCidSettings.logWriter.WriteLine(DateTime.Today.ToShortDateString() + "\r\n");

            DataTables.GroupDbTableNames.SetGroupDbTableNames(ProtCidSettings.dataType);

            PfamLibSettings.InitializeFromProtCidSettings();

            IsSettingInitialized = true;
        }
Exemplo n.º 11
0
        /// <summary>
        ///
        /// </summary>
        public static void InitializeThread()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }

            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect();
                ProtCidSettings.pdbfamDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                   ProtCidSettings.dirSettings.pdbfamDbPath;
                ProtCidSettings.pdbfamQuery = new DbQuery(ProtCidSettings.pdbfamDbConnection);
            }

            if (ProtCidSettings.protcidDbConnection == null)
            {
                ProtCidSettings.protcidDbConnection = new DbConnect();
                ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                    ProtCidSettings.dirSettings.protcidDbPath;
                ProtCidSettings.protcidQuery = new DbQuery(ProtCidSettings.protcidDbConnection);
            }

            if (ProtCidSettings.alignmentDbConnection == null)
            {
                ProtCidSettings.alignmentDbConnection = new DbConnect();
                ProtCidSettings.alignmentDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                      ProtCidSettings.dirSettings.alignmentDbPath;
                ProtCidSettings.alignmentQuery = new DbQuery(ProtCidSettings.alignmentDbConnection);
            }

            if (ProtCidSettings.buCompConnection == null)
            {
                ProtCidSettings.buCompConnection = new DbConnect();
                ProtCidSettings.buCompConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                 ProtCidSettings.dirSettings.baInterfaceDbPath;
                ProtCidSettings.buCompQuery = new DbQuery(ProtCidSettings.buCompConnection);
            }
            ProtCidSettings.tempDir = "X:\\xtal_temp";
            if (!Directory.Exists(ProtCidSettings.tempDir))
            {
                Directory.CreateDirectory(ProtCidSettings.tempDir);
            }

            PfamLibSettings.pdbfamConnection      = ProtCidSettings.pdbfamDbConnection;
            PfamLibSettings.pdbfamDbQuery         = new DbQuery(PfamLibSettings.pdbfamConnection);
            PfamLibSettings.alignmentDbConnection = ProtCidSettings.alignmentDbConnection;
        }
Exemplo n.º 12
0
 public DownloaderFileRename()
 {
     ProtCidSettings.LoadDirSettings();
     if (ProtCidSettings.protcidDbConnection == null)
     {
         ProtCidSettings.protcidDbConnection = new DbConnect();
         ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                             ProtCidSettings.dirSettings.protcidDbPath;
         ProtCidSettings.protcidQuery = new DbQuery(ProtCidSettings.protcidDbConnection);
     }
     logWriter = new StreamWriter("GroupNameRenameLog.txt", true);
     logWriter.WriteLine(DateTime.Today.ToLongDateString());
 }
Exemplo n.º 13
0
        /// <summary>
        ///
        /// </summary>
        public void SortHomoDimerInterfacesInCluster()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }
            string       queryString  = "Select Distinct SuperGroupSeqID From PfamSuperClusterEntryInterfaces;";
            DataTable    groupTable   = ProtCidSettings.protcidQuery.Query(queryString);
            int          superGroupId = -1;
            StreamWriter logWriter    = new StreamWriter("ClusterHomoDimersSortLog.txt");
            string       dataLine     = "";

            foreach (DataRow groupRow in groupTable.Rows)
            {
                superGroupId = Convert.ToInt32(groupRow["SuperGroupSeqID"].ToString());

                if (!IsSuperGroupSamePfamArch(superGroupId))
                {
                    continue;
                }
                int[] clusterIds = GetGroupClusterIds(superGroupId);
                foreach (int clusterId in clusterIds)
                {
                    string[] clusterInterfaces     = GetClusterInterfaces(superGroupId, clusterId);
                    string   firstInterface        = GetRepInterfaceInAlphabetOrder(superGroupId, clusterId);
                    string[] nonSymmetryInterfaces = GetNonSymmetryDimers(clusterInterfaces);
                    if (nonSymmetryInterfaces.Length == 0)
                    {
                        logWriter.WriteLine(superGroupId.ToString() + "  " + clusterId.ToString() +
                                            " no non-symmetric h**o-dimers ");
                        continue;
                    }
                    dataLine = superGroupId.ToString() + "   " + clusterId.ToString() + "   " + firstInterface;
                    foreach (string nonSymmetryInterface in nonSymmetryInterfaces)
                    {
                        if (firstInterface == nonSymmetryInterface)
                        {
                            continue;
                        }
                        dataLine += ("," + nonSymmetryInterface);
                    }
                    logWriter.WriteLine(dataLine);
                }
                logWriter.Flush();
            }
            logWriter.Close();
        }
Exemplo n.º 14
0
        /// <summary>
        /// output entity sequences of groups to files
        /// </summary>
        /// <returns></returns>
        public void WriteSequencesToFastaFiles()
        {
            logWriter = new StreamWriter("SeqWriteLog.txt");
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }

            ProtCidSettings.dirSettings.seqFastaPath = ProtCidSettings.dirSettings.seqFastaPath.Replace("\\fasta", "\\ChainFasta");
            if (!Directory.Exists(ProtCidSettings.dirSettings.seqFastaPath))
            {
                Directory.CreateDirectory(ProtCidSettings.dirSettings.seqFastaPath);
            }
            webFastaFileDir = ProtCidSettings.dirSettings.seqFastaPath.Replace("\\ChainFasta", "\\webChainFasta");
            if (!Directory.Exists(webFastaFileDir))
            {
                Directory.CreateDirectory(webFastaFileDir);
            }
            string    queryString  = "Select Distinct SuperGroupSeqID From PfamSuperInterfaceClusters Where SuperGroupSeqId > 29857";
            DataTable groupTable   = ProtCidSettings.protcidQuery.Query(queryString);
            int       superGroupId = 0;

            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();
            ProtCidSettings.progressInfo.currentOperationLabel = "Update Seq Files";
            ProtCidSettings.progressInfo.totalStepNum          = groupTable.Rows.Count;
            ProtCidSettings.progressInfo.totalOperationNum     = groupTable.Rows.Count;

            foreach (DataRow dRow in groupTable.Rows)
            {
                superGroupId = Convert.ToInt32(dRow["SuperGroupSeqID"].ToString());
                ProtCidSettings.progressInfo.currentFileName = superGroupId.ToString();
                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;

                try
                {
                    WriteSuperGroupEntrySequences(superGroupId);
                }
                catch (Exception ex)
                {
                    logWriter.WriteLine(superGroupId.ToString() + " " + ex.Message);
                    logWriter.Flush();
                }
            }
            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Tar Sequence files for each group and its clusters");
            PrintClusterFastaFiles();

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Generate sequence files done!");
            logWriter.Close();
        }
Exemplo n.º 15
0
        /// <summary>
        /// initialize dbconnect
        /// </summary>
        internal void Initialize()
        {
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();
            AppSettings.LoadSymOps();

            ProtCidSettings.protcidDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                ProtCidSettings.dirSettings.protcidDbPath);
            ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.pdbfamDbPath);

            DataTables.GroupDbTableNames.SetGroupDbTableNames(ProtCidSettings.dataType);

            ProtCidSettings.tempDir = "C:\\xtal_temp0";
        }
Exemplo n.º 16
0
 /// <summary>
 /// get data source file paths and coordinate xml file path
 /// from setting xml file
 /// </summary>
 private void SetFilePaths()
 {
     ProtCidSettings.LoadDirSettings();
     this.xmlFilePath = ProtCidSettings.dirSettings.xmlPath;
     if (this.xmlFilePath[this.xmlFilePath.Length - 1] != '\\')
     {
         this.xmlFilePath += "\\";
     }
     this.destFilePath = ProtCidSettings.dirSettings.coordXmlPath;
     if (this.destFilePath[this.destFilePath.Length - 1] != '\\')
     {
         this.destFilePath += "\\";
     }
     pdbTextPath = Regex.Replace(ProtCidSettings.dirSettings.xmlPath, "xml", "regular", RegexOptions.IgnoreCase);
 }
Exemplo n.º 17
0
        private void Initialize()
        {
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();

            if (ProtCidSettings.protcidDbConnection == null)
            {
                ProtCidSettings.protcidDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                    ProtCidSettings.dirSettings.protcidDbPath);
            }

            string dbv26Path = @"F:\Firebird\Xtal\Pfam\protbud.fdb";

            dbConnectv26.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                         dbv26Path;
        }
Exemplo n.º 18
0
        public BuAssemblyGenerator()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }

            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }
            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                   ProtCidSettings.dirSettings.pdbfamDbPath);
            }
        }
Exemplo n.º 19
0
        /// <summary>
        ///
        /// </summary>
        private void InitializeDbConnect()
        {
            string connectString = "Driver={MySQL ODBC 5.3 Unicode Driver}; Server=localhost;Database=" + dbName + ";UID=qifang;PWD=DunbrackR462*;";

            localMysqlDbConnect.ConnectString = connectString;
            localMysqlDbConnect.ConnectToDatabase();

            //        connectString = string.Format ("Driver={MySQL ODBC 5.3 Unicode Driver}; Server={0};Database=bioinformatics;UID={1};PWD={2};", remoteMysqlServer, uname, psw);
            // always got input format error, so hard code the server, uid, psw

            /*           connectString = "Driver={MySQL ODBC 5.3 Unicode Driver}; Server=10.40.16.45;Database=bioinformatics;UID=qifang;PWD=mysqlqxu;";
             *         remotePiscesDbConnect.ConnectString = connectString;
             *         remotePiscesDbConnect.ConnectToDatabase();
             */
            ProtCidSettings.LoadDirSettings();
            protcidDbConnect.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.pdbfamDbPath;
            protcidDbConnect.ConnectToDatabase();
        }
Exemplo n.º 20
0
        public PfamData()
        {
            ProtCidSettings.LoadDirSettings();
            if (ProtCidSettings.pdbfamDbConnection == null)
            {
                ProtCidSettings.pdbfamDbConnection = new DbConnect();
                ProtCidSettings.pdbfamDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                   ProtCidSettings.dirSettings.pdbfamDbPath;
                ProtCidSettings.pdbfamQuery = new DbQuery(ProtCidSettings.pdbfamDbConnection);
            }

            if (ProtCidSettings.protcidDbConnection == null)
            {
                ProtCidSettings.protcidDbConnection = new DbConnect();
                ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                    ProtCidSettings.dirSettings.protcidDbPath;
                ProtCidSettings.protcidQuery = new DbQuery(ProtCidSettings.protcidDbConnection);
            }
        }
Exemplo n.º 21
0
        public PiscesFileParser()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }

            if (ProtCidSettings.alignmentDbConnection == null)
            {
                ProtCidSettings.alignmentDbConnection = new DbConnect();
            }
            if (ProtCidSettings.alignmentDbConnection.ConnectString == "")
            {
                ProtCidSettings.alignmentDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;" +
                                                                      "UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" + ProtCidSettings.dirSettings.alignmentDbPath;
            }

            asymChainFinder = new AsuInfoFinder(ProtCidSettings.dirSettings.pdbfamDbPath);
        }
Exemplo n.º 22
0
        /// <summary>
        /// Compare cryst and bu interfaces for the entries
        /// </summary>
        public void CompareEntryCrystBuInterfaces(string[] updatePdbList)
        {
            if (!Directory.Exists(ProtCidSettings.tempDir))
            {
                Directory.CreateDirectory(ProtCidSettings.tempDir);
            }
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }
            InitializeTables();

            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();

            ProtCidSettings.progressInfo.currentOperationLabel = "Comparing Cryst BU Interface";
            ProtCidSettings.progressInfo.totalOperationNum     = updatePdbList.Length;
            ProtCidSettings.progressInfo.totalStepNum          = updatePdbList.Length;

            foreach (string pdbId in updatePdbList)
            {
                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;
                ProtCidSettings.progressInfo.currentFileName = pdbId;
                if (IsBuCompExist(pdbId))
                {
                    continue;
                }
                CompareEntryCrystBuInterfaces(pdbId);

                dbInsert.InsertDataIntoDBtables(ProtCidSettings.protcidDbConnection, crystBuInterfaceCompTables);
                ClearTables();
            }
            try
            {
                Directory.Delete(ProtCidSettings.tempDir, true);
            }
            catch {}
        }
Exemplo n.º 23
0
        /// <summary>
        /// initialize dbconnect
        /// </summary>
        internal void Initialize()
        {
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();
            AppSettings.LoadSymOps();

            ProtCidSettings.pdbfamDbConnection = new DbConnect();
            ProtCidSettings.pdbfamDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.pdbfamDbPath;

            ProtCidSettings.protcidDbConnection = new DbConnect();
            ProtCidSettings.protcidDbConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                ProtCidSettings.dirSettings.protcidDbPath;

            ProtCidSettings.buCompConnection = new DbConnect();
            ProtCidSettings.buCompConnection.ConnectString = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                             ProtCidSettings.dirSettings.baInterfaceDbPath;

            DataTables.GroupDbTableNames.SetGroupDbTableNames(ProtCidSettings.dataType);
        }
Exemplo n.º 24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="superGroupIds"></param>
        public void UpdateSeqFastaFiles(int[] superGroupIds)
        {
            logWriter = new StreamWriter("SeqWriteLog.txt");
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();
            ProtCidSettings.progressInfo.totalStepNum          = superGroupIds.Length;
            ProtCidSettings.progressInfo.totalOperationNum     = superGroupIds.Length;
            ProtCidSettings.progressInfo.currentOperationLabel = "Seq Fasta Files";
            ProtCidSettings.dirSettings.seqFastaPath           = ProtCidSettings.dirSettings.seqFastaPath.Replace("\\fasta", "\\ChainFasta");

            //         UpdateClusterFastaFiles(superGroupIds);

            foreach (int superGroupId in superGroupIds)
            {
                try
                {
                    ProtCidSettings.progressInfo.currentFileName = superGroupId.ToString();
                    ProtCidSettings.progressInfo.currentOperationNum++;
                    ProtCidSettings.progressInfo.currentStepNum++;

                    DeleteObsoleteSeqFiles(superGroupId);

                    WriteSuperGroupEntrySequences(superGroupId);
                }
                catch (Exception ex)
                {
                    logWriter.WriteLine(superGroupId.ToString() + " " + ex.Message);
                    logWriter.Flush();
                    ProtCidSettings.progressInfo.progStrQueue.Enqueue(superGroupId.ToString() + "  " + ex.Message);
                }
            }

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Tar the sequence files of group and clusters for the web server.");
            UpdateClusterFastaFiles(superGroupIds);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Update sequence files done!");
            logWriter.Close();
        }
Exemplo n.º 25
0
        /// <summary>
        ///
        /// </summary>
        public string ReverseClusterInterfaceFiles()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (AppSettings.parameters == null)
            {
                AppSettings.LoadParameters();
            }
            //      string reverseInterfaceFile = "ReverseInterfacesInCluster.txt";

            string querystring = "Select PdbID, InterfaceID From CrystEntryInterfaces Where IsSymmetry = '1';";

            symInterfaceTable = ProtCidSettings.protcidQuery.Query(querystring);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Find Non-symmetry interface files in the clusters.");
            string nonSymInterfaceFile = GetClusterNonSymmetryInterfaces();

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Compare Non symmetry interface files to the first interface in the cluster (in alphabet order)");
            string nonSymInterfaceCompFile = interfaceComp.CompareClusterNonSymInterfaces(nonSymInterfaceFile);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Reverse interface files in pdb format.");
            string reverseInterfaceFile = GetInterfacesToReversed(nonSymInterfaceCompFile);

            interfaceGenerator.ReverseInterfaceChains(reverseInterfaceFile);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("The current working directory: " + System.Environment.CurrentDirectory);
            ProtCidSettings.logWriter.WriteLine("Reverse interface files in pdb format.");
            ProtCidSettings.logWriter.WriteLine("The current working directory: " + System.Environment.CurrentDirectory);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Reverse hetero interface files in reversed pfam arch order");
            ReverseInterfaceFilesInDifPfamOrder();

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("The current working directory: " + System.Environment.CurrentDirectory);
            ProtCidSettings.logWriter.WriteLine("Reverse hetero interface files in reversed pfam arch order");
            ProtCidSettings.logWriter.WriteLine("The current working directory: " + System.Environment.CurrentDirectory);

            return(reverseInterfaceFile);
        }
Exemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        public void ClusterSuperDomainInterfaces()
        {
            ProtCidSettings.dataType = "clan";
            ProtCidSettings.LoadDirSettings();
            ProtCidSettings.protcidDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                                ProtCidSettings.dirSettings.protcidDbPath);
            ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.pdbfamDbPath);

            InitializeTable();
            InitializeDbTable();
            isDomain = true;
            GroupDbTableNames.SetGroupDbTableNames(ProtCidSettings.dataType);

            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();
            ProtCidSettings.progressInfo.currentOperationLabel = "Cluster on Clans";
            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Cluster domain interfaces in clan");

            string    queryString    = "Select Distinct ClanSeqID From PfamDomainFamilyRelation;";
            DataTable clanSeqIdTable = ProtCidSettings.protcidQuery.Query(queryString);

            ProtCidSettings.progressInfo.totalOperationNum = clanSeqIdTable.Rows.Count;
            ProtCidSettings.progressInfo.totalStepNum      = clanSeqIdTable.Rows.Count;

            int clanSeqId = 0;

            foreach (DataRow clanIdRow in clanSeqIdTable.Rows)
            {
                clanSeqId = Convert.ToInt32(clanIdRow["ClanSeqID"].ToString());

                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;
                ProtCidSettings.progressInfo.currentFileName = clanSeqId.ToString();

                ClusterClanDomainInterfaces(clanSeqId);
            }

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Done!");
        }
Exemplo n.º 27
0
        /// <summary>
        /// create crystal XML files
        /// </summary>
        public void CreateCrystalXmlFiles()
        {
            AsymUnitBuilder asuBuilder = new AsymUnitBuilder();

            //	bool asuChanged = false;
            ProtCidSettings.LoadDirSettings();
            AppSettings.LoadParameters();
            ProtCidSettings.pdbfamDbConnection = new DbConnect("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fbmonkeyox;DATABASE=" +
                                                               ProtCidSettings.dirSettings.pdbfamDbPath);

            ProtCidSettings.progressInfo.Reset();

            SetFilePaths();

            string atomType = "";

            if (AppSettings.parameters.contactParams.atomType == "CA")
            {
                atomType = "CA";
            }
            else if (AppSettings.parameters.contactParams.atomType == "CB")
            {
                atomType = "CB";
            }
            else
            {
                atomType = "ALL";
            }

            // save the file list for those just created
            List <string> parsedCoordXmlFiles = new List <string> ();

            XmlAtomParser xmlParser = new XmlAtomParser();

            if (!Directory.Exists(destFilePath.Trim('\\')))
            {
                Directory.CreateDirectory(destFilePath.Trim('\\'));
            }
            modifyType = "update";
            // temporary directory
            if (!Directory.Exists(ProtCidSettings.tempDir))
            {
                Directory.CreateDirectory(ProtCidSettings.tempDir);
            }

            // get the common list of XML files, ent files and BU symmetry matrix files
            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Retrieving file list. Please wait...");
            string [] pdbCodes = GetFileNames();

            /* string[] pdbCodes = { "4p6d"};
             * string[] pdbCodes = GetMissingEntries();*/

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Done!");

            ProtCidSettings.progressInfo.currentOperationLabel = "PDB Processing";
            ProtCidSettings.progressInfo.totalStepNum          = pdbCodes.Length;
            ProtCidSettings.progressInfo.totalOperationNum     = pdbCodes.Length;
            ProtCidSettings.progressInfo.progressInterval      = 1;

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Building Coordinate XML files. Please wait...");
            string crystalXmlFile = "";

            foreach (string pdbCode in pdbCodes)
            {
                /////////////////////////////////////////
                // display progress information
                // get just the fileName
                ProtCidSettings.progressInfo.currentFileName = pdbCode;
                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;

                crystalXmlFile = destFilePath + pdbCode + ".xml";
                FileInfo fileInfo = new FileInfo(crystalXmlFile + ".gz");
                if (fileInfo.LastWriteTime.Day == DateTime.Today.Day)
                {
                    continue;
                }

                string zippedXmlFile = xmlFilePath + pdbCode + xmlExtName;
                if (!File.Exists(zippedXmlFile))
                {
                    webClient.DownloadFile(pdbWebAddress + pdbCode + ".xml.gz", pdbCode + ".xml.gz");
                    File.Move(pdbCode + ".xml.gz", zippedXmlFile);
                }

                string       xmlFile          = ParseHelper.UnZipFile(zippedXmlFile, ProtCidSettings.tempDir);
                EntryCrystal thisEntryCrystal = new EntryCrystal(pdbCode);
                try
                {
                    xmlParser.ParseXmlFile(xmlFile, ref thisEntryCrystal, atomType);

                    /*if (thisEntryCrystal != null)
                     * {
                     *      if (thisEntryCrystal.ncsCat.NcsOperatorList.Length > 0)
                     *      {
                     *              asuBuilder.BuildAsymUnitFromNcs (ref thisEntryCrystal, out asuChanged);
                     *              if (asuChanged)
                     *              {
                     *                      UpdateAsymUnitDbTable (thisEntryCrystal);
                     *              }
                     *      }
                     * }*/
                }
                catch (Exception ex)
                {
                    // record the error, continue to the next file
                    string errorMsg = string.Format("Processing {0} file errors: {1}. Skip it.",
                                                    pdbCode, ex.Message);
                    ProtCidSettings.progressInfo.progStrQueue.Enqueue(errorMsg);
                }
                finally
                {
                    // delete this processed file
                    File.Delete(xmlFile);
                }
                // save entry crystal data into a XML file
                try
                {
                    if (thisEntryCrystal != null)
                    {
                        XmlSerializer xmlSerializer = new XmlSerializer(thisEntryCrystal.GetType());
                        TextWriter    crystalWriter = new StreamWriter(crystalXmlFile);
                        xmlSerializer.Serialize(crystalWriter, thisEntryCrystal);
                        crystalWriter.Close();
                        ParseHelper.ZipPdbFile(crystalXmlFile);
                        parsedCoordXmlFiles.Add(pdbCode + ".xml.gz");

                        WriteXmlFileToPdbFile(pdbCode, thisEntryCrystal);
                        //        CopyPdbFileToLinux(pdbCode);
                    }
                }
                catch (Exception ex)
                {
                    ProtCidSettings.progressInfo.progStrQueue.Enqueue(ex.Message);
                }
            }
            try
            {
                Directory.Delete(ProtCidSettings.tempDir, true);
            }
            catch {}
            SaveFileList(parsedCoordXmlFiles);

            /*    progressInfo.progStrQueue.Enqueue("Copy PDB files to Linux server.");
             *  CopyPdbFilesToLinux(pdbCodes);
             *              progressInfo.progStrQueue.Enqueue ("Done!");
             */
            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Copy updated files to new directory");
            string updateFilePath = pdbTextPath.Replace("regular", "updateRegular");

            if (Directory.Exists(updateFilePath))
            {
                Directory.Delete(updateFilePath, true);
            }
            Directory.CreateDirectory(updateFilePath);

            DateTime dtTime = DateTime.Today;

            ParseHelper.CopyNewFiles(pdbTextPath, updateFilePath, dtTime);
            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Done!");

            ProtCidSettings.progressInfo.threadFinished = true;
        }
Exemplo n.º 28
0
        /* BUs: if PISA BUs defined,
         *
         * if ASU heteromultimer and PISA homomultimer
         * then generate BUs from PDB
         * else
         * then generate BUs from PISA
         *
         * else PISA BUs not defined
         * generate BUs from PDB
         *
         */
        /// <summary>
        ///
        /// </summary>
        public void GenerateBuAssemblies()
        {
            if (ProtCidSettings.dirSettings == null)
            {
                ProtCidSettings.LoadDirSettings();
            }
            if (!Directory.Exists(ProtCidSettings.tempDir))
            {
                Directory.CreateDirectory(ProtCidSettings.tempDir);
            }
            bool needLigands   = true;
            bool authorDefined = true;

            logWriter.WriteLine(DateTime.Today.ToShortDateString());

            string    queryString = "Select Distinct PdbID From AsymUnit Where PolymerType = 'polypeptide';";
            DataTable entryTable  = ProtCidSettings.pdbfamQuery.Query(queryString);

            ProtCidSettings.progressInfo.ResetCurrentProgressInfo();
            ProtCidSettings.progressInfo.totalOperationNum     = entryTable.Rows.Count;
            ProtCidSettings.progressInfo.totalStepNum          = entryTable.Rows.Count;
            ProtCidSettings.progressInfo.currentOperationLabel = "Generate BU files";

            string       lsFile       = Path.Combine(ProtCidSettings.dirSettings.pisaPath, "ls.txt");
            StreamWriter lsFileWriter = new StreamWriter(lsFile);

            string pdbId = "";

            string[] buFiles = null;
            foreach (DataRow entryRow in entryTable.Rows)
            {
                pdbId = entryRow["PdbID"].ToString();

                ProtCidSettings.progressInfo.currentOperationNum++;
                ProtCidSettings.progressInfo.currentStepNum++;
                ProtCidSettings.progressInfo.currentFileName = pdbId;

                if (AreFilesGenerated(pdbId))
                {
                    continue;
                }

                try
                {
                    buFiles = GenerateEntryBuFiles(pdbId, needLigands, authorDefined);

                    if (buFiles != null && buFiles.Length > 0)
                    {
                        CopyEntryBuFilesToLinux(buFiles);

                        foreach (string buFile in buFiles)
                        {
                            FileInfo fileInfo = new FileInfo(buFile);
                            lsFileWriter.WriteLine(fileInfo.Name);
                        }
                        lsFileWriter.Flush();
                    }
                }
                catch (Exception ex)
                {
                    logWriter.WriteLine(pdbId + " Generate BU files error: " + ex.Message);
                    logWriter.Flush();
                    ProtCidSettings.progressInfo.progStrQueue.Enqueue(pdbId + " Generate BU files error: " + ex.Message);
                }
            }
            try
            {
                Directory.Delete(ProtCidSettings.tempDir);
            }
            catch { }
            logWriter.Close();
            lsFileWriter.Close();

            CopyLsFileToLinux(lsFile);

            ProtCidSettings.progressInfo.progStrQueue.Enqueue("Done!");
            ProtCidSettings.progressInfo.threadFinished = true;
        }