예제 #1
0
    def rcsb2Pdbx(self,
                  inpPath,
                  outPath,
                  stripFlag=False,
                  stripEntityFlag=False):
        """  RCSB CIF -> PDBx conversion  (Using the smaller application in the annotation package)
        """
        try:
            dp = RcsbDpUtility(tmpPath=self.__sessionPath,
                               siteId=self.__siteId,
                               verbose=self.__verbose,
                               log=self.__lfh)
            dp.imp(inpPath)

            if stripFlag:
                if stripEntityFlag:
                    dp.op("annot-rcsb2pdbx-strip-plus-entity")
                else:
                    dp.op("annot-rcsb2pdbx-strip")
            else:
                dp.op("annot-rcsb2pdbx")

            logPath = os.path.join(self.__sessionPath, "annot-rcsb2pdbx.log")
            dp.expLog(logPath)
            dp.exp(outPath)
            if (not self.__debug):
                dp.cleanup()
        except:
            traceback.print_exc(file=self.__lfh)
            return False
        #
        return True
예제 #2
0
    def testChemicalShiftCoordinateCheck2Alt(self):
        """  Test upload check of one CS file  --- Using the wrong model to generate errors
        """
        logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
        try:
            dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
            dp.setDebugMode(flag=True)
            inpPath = os.path.join(self.__testFilePath, self.__testConcatCS)
            xyzPath = os.path.abspath(os.path.join(self.__testFilePath, self.__testFileNmrModelAlt))
            outPath = "output-cs-file-concat-alt.cif"
            chkPath = "cs-diag-atom-name-check-concat-alt.cif"
            dp.imp(inpPath)
            dp.addInput(name="coordinate_file_path", value=xyzPath)
            dp.addInput(name="chemical_shifts_coord_check_file_path", value=chkPath)

            dp.op("annot-chem-shifts-atom-name-check")
            dp.expLog("annot-chem-shifts-atom-name-check-concat-alt.log")
            dp.exp(outPath)
            #
            if os.access(chkPath, os.R_OK):
                csr = PdbxChemShiftReport(inputPath=chkPath, verbose=self.__verbose, log=self.__lfh)
                status = csr.getStatus()
                logger.info("Status code: %s\n" % status)
                warnings = csr.getWarnings()
                logger.info("\n\nWarning count : %d\n %s\n" % (len(warnings), ('\n').join(warnings)))
                #
                errors = csr.getErrors()
                logger.info("\n\nError count : %d\n %s\n" % (len(errors), ('\n').join(errors)))
            #
            # dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()
예제 #3
0
    def rcsbEps2Pdbx(self,
                     inpPath,
                     outPath,
                     stripFlag=False,
                     stripEntityFlag=False):
        """  RCSB CIFEPS -> PDBx conversion (This still requires using the full maxit application)
        """
        try:
            dp = RcsbDpUtility(tmpPath=self.__sessionPath,
                               siteId=self.__siteId,
                               verbose=self.__verbose,
                               log=self.__lfh)
            dp.imp(inpPath)
            if stripFlag:
                if stripEntityFlag:
                    dp.op("annot-rcsbeps2pdbx-strip-plus-entity")
                else:
                    dp.op("annot-rcsbeps2pdbx-strip")
            else:
                dp.op("annot-cif2cif")

            logPath = os.path.join(self.__sessionPath,
                                   "annot-rcsbeps2pdbx.log")
            dp.expLog(logPath)
            dp.exp(outPath)
            if (not self.__debug):
                dp.cleanup()
        except:
            traceback.print_exc(file=self.__lfh)
            return False
        #
        return True
    def testUploadShiftListCheck(self):
        """Test upload check of one CS file  ---  Upload multiple files"""
        logger.info("\nStarting")
        try:
            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            dp.setDebugMode(flag=True)
            inpPath = os.path.join(self.__testFilePath, self.__testFileStarCs)
            outPath = "output-cs-file-full-2.cif"
            chkPath = "cs-diag-upload-check-2.cif"
            dp.addInput(name="chemical_shifts_file_path_list",
                        value=[inpPath, inpPath])
            dp.addInput(name="chemical_shifts_auth_file_name_list",
                        value=["cs_file_1", "cs_file_2"])
            dp.addInput(name="chemical_shifts_upload_check_file_path",
                        value=chkPath)

            dp.op("annot-chem-shifts-upload-check")
            dp.expLog("annot-chem-shifts-upload-check-2.log")
            dp.exp(outPath)
            # dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s", str(e))
            self.fail()
 def testPisaAssemblyMergeModelCif(self):
     """
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         fPath = os.path.join(self.__testFilePath, self.__testFileCifPisa)
         assignPath = os.path.join(self.__testFilePath, "3rer_assembly_assign_P1.cif")
         dp.imp(fPath)
         dp.addInput(name="pisa_session_name", value="session_3re3-cif")
         dp.op("pisa-analysis")
         dp.op("pisa-assembly-report-xml")
         dp.exp("pisa-assembly-report-cif.xml")
         #
         cifPath = os.path.join(self.__testFilePath, self.__testFileCifPisa)
         dp.imp(cifPath)
         #
         # assignmentFile      = self.__inputParamDict['pisa_assembly_assignment_file_path']
         #
         dp.addInput(name="pisa_assembly_file_path", value="pisa-assembly-report-cif.xml", type="file")
         dp.addInput(name="pisa_assembly_assignment_file_path", value=assignPath, type="file")
         dp.op("pisa-assembly-merge-cif")
         dp.exp("3rer-updated.cif.gz")
         dp.expLog("3rer-updated-cif.log.gz")
         # dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
    def testChemicalShiftCoordinateCheck2(self):
        """Test upload check of one CS file  ---  Using a processed chemical shift file"""
        logger.info("\nStarting")
        try:
            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            dp.setDebugMode(flag=True)
            inpPath = os.path.join(self.__testFilePath, self.__testConcatCS)
            xyzPath = os.path.abspath(
                os.path.join(self.__testFilePath, self.__testFileNmrModel))
            outPath = "output-cs-file-concat.cif"
            chkPath = "cs-diag-atom-name-check-concat.cif"
            dp.imp(inpPath)
            dp.addInput(name="coordinate_file_path", value=xyzPath)
            dp.addInput(name="chemical_shifts_coord_check_file_path",
                        value=chkPath)

            dp.op("annot-chem-shifts-atom-name-check")
            dp.expLog("annot-chem-shifts-atom-name-check-concat.log")
            dp.exp(outPath)
            # dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s", str(e))
            self.fail()
예제 #7
0
    def __getLoadFile(self, sessionPath, listfile, sqlfile, logfile):

        fn = os.path.join(self.__sessionPath, listfile)

        mapping = self.__cIcommon.get_site_da_internal_schema_path()

        self.__lfh.write(
            "DbLoadUtil::__getLoadFile(): listfile %s sqlfile %s logfile %s\n"
            % (fn, sqlfile, logfile))
        try:
            dp = RcsbDpUtility(tmpPath=sessionPath,
                               siteId=self.__siteId,
                               verbose=self.__verbose,
                               log=self.__lfh)
            dp.setDebugMode()
            dp.imp(fn)
            dp.addInput(name="mapping_file", value=mapping, type="file")
            dp.addInput(name="file_list", value=True)
            # This code handles model files
            dp.addInput(name="first_block", value=True)

            dp.op("db-loader")
            dp.expLog(logfile)
            dp.exp(sqlfile)
            dp.cleanup()
            return
        except:  # noqa: E722 pylint: disable=bare-except
            self.__lfh.write(
                "DbLoadUtil::__getLoadFile(): failing, with exception.\n")
            traceback.print_exc(file=self.__lfh)
예제 #8
0
    def testReadMapHeaderPygal(self):
        """  Test read map header -- export JSON packet and plot density distribution -
        """
        logger.info("\nStarting %s %s\n" %
                    (self.__class__.__name__, sys._getframe().f_code.co_name))
        try:
            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            #
            inpPath = os.path.join(self.__testFilePath, self.__testMapNormal)
            of = self.__testMapNormal + "_map-header-data_P1.json"
            dp.imp(inpPath)
            dp.op("annot-read-map-header")
            dp.expLog("annot-read-map-header.log")
            dp.exp(of)
            dp.cleanup()
            #
            mD = json.load(open(of, 'r'))
            logger.info("Map header keys: %r\n" % mD.keys())
            logger.info("Map header: %r\n" % mD.items())

            logger.info("Input  header keys: %r\n" % mD['input_header'].keys())
            logger.info("Output header keys: %r\n" %
                        mD['output_header'].keys())
            #
            x = mD['input_histogram_categories']
            y = mD['input_histogram_values']
            logy = []
            for v in y:
                if float(v) <= 0.0:
                    logy.append(math.log10(.1))
                else:
                    logy.append(math.log10(float(v)))

            # width = float(x[-1] - x[0]) / float(len(x))
            #width = 2.0

            logger.info("Starting plot len x %d len y %d \n" %
                        (len(x), len(logy)))
            nL = int(len(x) / 10)
            #
            if False:
                bar_chart = pygal.Bar(x_label_rotation=20,
                                      show_minor_x_labels=False,
                                      style=LightColorizedStyle)
            bar_chart = pygal.Bar(x_label_rotation=20,
                                  show_minor_x_labels=False,
                                  style=LightGreenStyle)
            bar_chart.title = 'Map density distribution'
            bar_chart.x_labels = map(str, [int(t) for t in x])
            bar_chart.x_labels_major = map(str, [int(t) for t in x[::nL]])

            bar_chart.add('Voxels (log(10)', logy)
            plotFileName = "map-density-plot-pygal.svg"
            bar_chart.render_to_file(plotFileName)

        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()
    def testAnnotSiteAndMerge(self):
        """Calculate site environment"""
        logger.info("\nStarting")
        try:
            of = "annot-site-" + self.__testFileAnnotSite  # +".gz"
            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            inpPath = os.path.join(self.__testFilePath,
                                   self.__testFileAnnotSite)
            dp.imp(inpPath)
            dp.addInput(name="block_id", value=self.__testIdAnnotSite)
            dp.op("annot-site")
            dp.expLog("annot-site.log")
            dp.exp(of)

            inpPath = os.path.join(self.__testFilePath,
                                   self.__testFileAnnotSite)
            dp.imp(inpPath)
            dp.addInput(name="site_info_file_path", value=of, type="file")
            dp.op("annot-merge-struct-site")
            dp.exp("annot-site-updated.cif.gz")
            dp.expLog("annot-site-updated-cif.log.gz")

            # dp.cleanup()

        except Exception as e:
            logger.exception("Failing with %s", str(e))
            self.fail()
예제 #10
0
    def testEm2EmSpider(self):
        """  Test mapfix utility
        """
        logger.info("\nStarting %s %s\n" %
                    (self.__class__.__name__, sys._getframe().f_code.co_name))
        try:

            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            #
            inpPath = os.path.join(self.__testFilePath, self.__testMapSpider)
            of = self.__testMapSpider + "-spider-cnv.map"
            dp.imp(inpPath)
            pixelSize = 2.54
            dp.addInput(name="pixel-spacing-x", value=pixelSize)
            dp.addInput(name="pixel-spacing-y", value=pixelSize)
            dp.addInput(name="pixel-spacing-z", value=pixelSize)
            dp.op("em2em-spider")
            dp.expLog("em2em-spider.log")
            dp.exp(of)
            # dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()
    def testMapFixRemote(self):
        """  Test mapfix utility
        """
        self.__lfh.write(
            "\nStarting %s %s\n" %
            (self.__class__.__name__, sys._getframe().f_code.co_name))

        dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                           siteId=self.__siteId,
                           verbose=True)
        #
        inpPath = os.path.join(self.__testFilePath, self.__testMapNormal)
        of = os.path.join(self.__tmpPath, self.__testMapNormal + "-fix.map")
        dp.imp(inpPath)
        pixelSize = 2.54
        #dp.addInput(name="pixel-spacing-x", value=pixelSize)
        #dp.addInput(name="pixel-spacing-y", value=pixelSize)
        #dp.addInput(name="pixel-spacing-z", value=pixelSize)
        dp.addInput(name="input_map_file_path", value=inpPath)
        dp.addInput(name="output_map_file_path", value=of)
        dp.addInput(name="label", value='test')
        dp.addInput(name="voxel", value='{0} {0} {0}'.format(pixelSize))
        # dp.setRunRemote()
        ret = dp.op("deposit-update-map-header-in-place")
        dp.expLog(os.path.join(self.__tmpPath, "mapfix-big.log"))
        dp.exp(of)
        # dp.cleanup()

        self.assertTrue(ret == 0)
        self.assertTrue(os.path.exists(of))
    def test_AnnotMergeRemote(self):
        """  Test of updating geometrical validation diagnostics -
        """
        self.__lfh.write(
            "\nStarting %s %s\n" %
            (self.__class__.__name__, sys._getframe().f_code.co_name))
        for pdbId in self.__testValidateXrayIdList:
            self.__tmpPath = tempfile.mkdtemp(
                dir=self.__siteWebAppsSessionsPath)
            testFileValidateXyz = pdbId + ".cif"
            xyzPath = os.path.abspath(
                os.path.join(self.__testFilePath, testFileValidateXyz))

            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            of = os.path.join(self.__tmpPath, "annot-merge-xyz-remote.cif")
            dp.imp(xyzPath)
            dp.addInput(name="new_coordinate_file_path", value=xyzPath)
            dp.addInput(name="new_coordinate_format", value='cif')
            # dp.setRunRemote()
            ret = dp.op("annot-merge-xyz")
            dp.expLog(
                os.path.join(self.__tmpPath, "annot-merge-xyz-remote.log"))
            dp.exp(of)
            # dp.cleanup()

            self.assertTrue(ret == 0)
            self.assertTrue(os.path.exists(of))
 def testPisaAssemblyDownloadModelPdb(self):
     """
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         fPath = os.path.join(self.__testFilePath, self.__testFileCifPisa)
         dp.imp(fPath)
         dp.addInput(name="pisa_session_name", value="session_3re3_cif")
         dp.op("pisa-analysis")
         dp.expLog("pisa-anal-assembly-cif.log.gz")
         dp.op("pisa-assembly-report-xml")
         dp.exp("pisa-assembly-report-cif.xml")
         dp.expLog("pisa-report-xml-cif.log.gz")
         #
         for assemId in ['1', '2', '3', '4', '5']:
             dp.addInput(name="pisa_assembly_id", value=assemId)
             oFileName = '3rer-assembly-' + assemId + '.pdb.gz'
             oLogName = '3rer-assembly-' + assemId + '-pdb.log.gz'
             dp.op("pisa-assembly-coordinates-pdb")
             dp.exp(oFileName)
             dp.expLog(oLogName)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
 def testAnnotDccReport(self):
     """  Test create DCC report -
     """
     logger.info("\nStarting %s %s\n" %
                 (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         ofn = "dcc-report.cif"
         dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                            siteId=self.__siteId,
                            verbose=True)
         dp.setDebugMode()
         xyzPath = os.path.join(self.__testFilePath,
                                self.__testFileValidateXyz)
         sfPath = os.path.join(self.__testFilePath,
                               self.__testFileValidateSf)
         dp.imp(xyzPath)
         dp.addInput(name="sf_file_path", value=sfPath)
         dp.op("annot-dcc-report")
         dp.expLog("dcc-report.log")
         dp.exp(ofn)
         # dp.expList(dstPathList=[ofpdf,ofxml])
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
예제 #15
0
 def testPisaAssemblyDownloadModelPdb(self):
     """ """
     logger.info("\nStarting")
     try:
         dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                            siteId=self.__siteId,
                            verbose=True)
         fPath = os.path.join(self.__testFilePath, self.__testFileCifPisa)
         dp.imp(fPath)
         dp.addInput(name="pisa_session_name", value="session_3re3_cif")
         dp.op("pisa-analysis")
         dp.expLog("pisa-anal-assembly-cif.log.gz")
         dp.op("pisa-assembly-report-xml")
         dp.exp("pisa-assembly-report-cif.xml")
         dp.expLog("pisa-report-xml-cif.log.gz")
         #
         for assemId in ["1", "2", "3", "4", "5"]:
             dp.addInput(name="pisa_assembly_id", value=assemId)
             oFileName = "3rer-assembly-" + assemId + ".pdb.gz"
             oLogName = "3rer-assembly-" + assemId + "-pdb.log.gz"
             dp.op("pisa-assembly-coordinates-pdb")
             dp.exp(oFileName)
             dp.expLog(oLogName)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s", str(e))
         self.fail()
    def testFixSpecialPosition(self):
        """  Test for fixing atoms on special position
        """
        logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
        try:

            dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
            #
            inpPath = os.path.join(self.__testFilePath, self.__testFileValidateXyz)
            dp.imp(inpPath)
            dp.op("annot-dcc-fix-special-position")
            dp.expLog("special-position-fix.log")
            dp.exp("special-position-output-fix.log")

            # No output - none on special
            self.assertEqual(['missing'], dp.getResultPathList())

            f = open('special-position-output-fix.log', 'r')
            lines = f.read()
            f.close()
            self.assertIn('No atoms sit on special position', lines)
            dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()

        # This case has atoms on special position that needs correction
        try:

            dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
            #
            # dp.setDebugMode(True)
            #
            inpPath = os.path.join(self.__testFilePath, self.__testSpecialPosition)
            dp.imp(inpPath)
            dp.op("annot-dcc-fix-special-position")
            dp.expLog("special-position-fix2.log")
            dp.exp("special-position-output-fix2.log")

            print(dp.getResultPathList())

            # We expect output
            self.assertNotEqual(['missing'], dp.getResultPathList())

            dp.expList(dstPathList=['special-position-out-fix2.cif'])
            # Check output - for differences...

            f = open('special-position-output-fix2.log', 'r')
            lines = f.read()
            f.close()
            self.assertIn('Error: Wrong occupancy of 1.00 for atom (O : id=D_HOH_1)', lines)
            dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()
예제 #17
0
    def testReadMapHeader(self):
        """  Test read map header -- export JSON packet and plot density distribution -
        """
        logger.info("\nStarting %s %s\n" %
                    (self.__class__.__name__, sys._getframe().f_code.co_name))
        try:
            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            dp.setDebugMode(flag=True)
            #
            inpPath = os.path.join(self.__testFilePath, self.__testMapNormal)
            of = self.__testMapNormal + "_map-header-data_P1.json"
            dp.imp(inpPath)
            dp.op("annot-read-map-header")
            dp.expLog("annot-read-map-header.log")
            dp.exp(of)
            # dp.cleanup()
            #
            mD = json.load(open(of, 'r'))
            logger.info("Map header keys: %r\n" % mD.keys())
            logger.info("Map header: %r\n" % mD.items())

            logger.info("Input  header keys: %r\n" % mD['input_header'].keys())
            logger.info("Output header keys: %r\n" %
                        mD['output_header'].keys())
            #
            x = mD['input_histogram_categories']
            y = mD['input_histogram_values']
            logy = []
            for v in y:
                if float(v) <= 0.0:
                    logy.append(math.log10(.1))
                else:
                    logy.append(math.log10(float(v)))

            #
            width = float(x[-1] - x[0]) / float(len(x))
            #width = 2.0
            logger.info("Starting plot\n")
            plt.bar(x, y, width, color="r", log=True)
            logger.info("Loaded data\n")
            plt.title('Map density distribution')
            logger.info("set title\n")
            plt.ylabel('Voxels (log(10))')
            plt.xlabel('Density')
            logger.info("set labels\n")
            plotFileName = "map-density-plot-mpl.svg"
            plt.savefig(plotFileName, format="svg")
            logger.info("saved figure\n")

        except Exception as e:
            logger.exception("Failing with %s" % str(e))
            self.fail()
    def testSpecialPosition(self):
        """Test for atom on special position"""
        logger.info("\nStarting")
        try:

            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            #
            # dp.setDebugMode(True)
            #
            inpPath = os.path.join(self.__testFilePath,
                                   self.__testFileValidateXyz)
            dp.imp(inpPath)
            dp.op("annot-dcc-special-position")
            dp.expLog("special-position.log")
            dp.exp("special-position-output.log")
            f = open("special-position-output.log", "r")
            lines = f.read()
            f.close()
            self.assertIn("No atoms sit on special position", lines)
            dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s", str(e))
            self.fail()

        # This case has atoms on special position that needs correction
        try:

            dp = RcsbDpUtility(tmpPath=self.__tmpPath,
                               siteId=self.__siteId,
                               verbose=True)
            #
            # dp.setDebugMode(True)
            #
            inpPath = os.path.join(self.__testFilePath,
                                   self.__testSpecialPosition)
            dp.imp(inpPath)
            dp.op("annot-dcc-special-position")
            dp.expLog("special-position2.log")
            dp.exp("special-position-output2.log")
            f = open("special-position-output2.log", "r")
            lines = f.read()
            f.close()
            self.assertIn(
                "Error: Wrong occupancy of 1.00 for atom (O : id=D_HOH_1)",
                lines)
            dp.cleanup()
        except Exception as e:
            logger.exception("Failing with %s", str(e))
            self.fail()
예제 #19
0
 def testCifCheck(self):
     """ """
     logger.info("\nStarting")
     try:
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         cifPath = os.path.join(self.__testFilePath, self.__testFileCif)
         dp.imp(cifPath)
         dp.op("check-cif")
         dp.exp("check-cif-diags.txt")
         dp.expLog("check-cif.log")
         # dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s", str(e))
         self.fail()
예제 #20
0
 def testCifToPdb(self):
     """ """
     logger.info("\nStarting")
     try:
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         cifPath = os.path.join(self.__testFilePath, self.__testFileCif)
         dp.imp(cifPath)
         dp.op("cif2pdb")
         dp.exp("myTest1.pdb.gz")
         dp.expLog("myLog1.log.gz")
         # dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s", str(e))
         self.fail()
예제 #21
0
    def convert_em_volume(self, in_em_volume, out_binary_volume, working_dir):

        logging.debug(working_dir)
        rdb = RcsbDpUtility(tmpPath=working_dir,
                            siteId=self.__site_id,
                            verbose=True)
        rdb.imp(in_em_volume)
        rdb.op('em-density-bcif')
        rdb.exp(out_binary_volume)

        if out_binary_volume:
            if os.path.exists(out_binary_volume):
                return True
        return False
예제 #22
0
 def cif2Pdb(self, inpPath, outPath):
     """CIF -> PDB conversion  (Using the smaller application in the annotation package)"""
     try:
         dp = RcsbDpUtility(tmpPath=self.__sessionPath, siteId=self.__siteId, verbose=self.__verbose, log=self.__lfh)
         dp.imp(inpPath)
         dp.op("annot-cif2pdb")
         logPath = os.path.join(self.__sessionPath, "annot-cif2pdb.log")
         dp.expLog(logPath)
         dp.exp(outPath)
         if not self.__debug:
             dp.cleanup()
     except:  # noqa: E722 pylint: disable=bare-except
         traceback.print_exc(file=self.__lfh)
         return False
     #
     return True
예제 #23
0
 def rcsb2PdbxWithPdbId(self, inpPath, outPath):
     """RCSB CIF -> PDBx conversion  (converting to PDB ID entry/datablock id.)"""
     try:
         dp = RcsbDpUtility(tmpPath=self.__sessionPath, siteId=self.__siteId, verbose=self.__verbose, log=self.__lfh)
         dp.imp(inpPath)
         dp.op("annot-rcsb2pdbx-withpdbid")
         logPath = os.path.join(self.__sessionPath, "annot-rcsb2pdbx.log")
         dp.expLog(logPath)
         dp.exp(outPath)
         if not self.__debug:
             dp.cleanup()
     except:  # noqa: E722 pylint: disable=bare-except
         traceback.print_exc(file=self.__lfh)
         return False
     #
     return True
 def testAnnotSecondaryStructure(self):
     """  Calculate secondary structure for a complicated case where pro-motif will fail.
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         of = "annot-ss-" + self.__testFileAnnotSS + ".gz"
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         inpPath = os.path.join(self.__testFilePath, self.__testFileAnnotSS)
         dp.imp(inpPath)
         dp.op("annot-secondary-structure")
         dp.expLog("annot-secondary-structure.log")
         dp.exp(of)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
 def testAnnotLinkSSBond(self):
     """  Calculate link and ss-bond features -
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         of = "annot-link-" + self.__testFileAnnotLink + ".gz"
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         inpPath = os.path.join(self.__testFilePath, self.__testFileAnnotLink)
         dp.imp(inpPath)
         dp.op("annot-link-ssbond")
         dp.expLog("annot-link-ssbond.log")
         dp.exp(of)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
예제 #26
0
 def testCifCheckExt(self):
     """ """
     logger.info("\nStarting")
     try:
         for name in ["deposit", "archive_current", "archive_next"]:
             dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
             cifPath = os.path.join(self.__testFilePath, self.__testFileCif)
             dp.imp(cifPath)
             dp.addInput(name="dictionary", value=name)
             dp.op("check-cif-ext")
             dp.exp("check-cif-diags-%s.txt" % name)
             dp.expLog("check-cif-%s.log" % name)
             # dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s", str(e))
         self.fail()
 def testAnnotValidation(self):
     """  Calculate geometrical validation -
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         of = "annot-validation-" + self.__testFileAnnotValidate + ".gz"
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         inpPath = os.path.join(self.__testFilePath, self.__testFileAnnotValidate)
         dp.imp(inpPath)
         dp.op("annot-validation")
         dp.expLog("annot-validation.log")
         dp.exp(of)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
 def testAnnotRcsb2PdbxStrip(self):
     """  RCSB CIF -> PDBx conversion  (Using the smaller application in the annotation package)
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         of = "annot-rcsb2pdbx-strip-" + self.__testFileAnnotRcsb
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         inpPath = os.path.join(self.__testFilePath, self.__testFileAnnotRcsb)
         dp.imp(inpPath)
         dp.op("annot-rcsb2pdbx-strip")
         dp.expLog("annot-rcsb2pdbx-strip.log")
         dp.exp(of)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
 def testAnnotRepositionSolventPlusDerived(self):
     """  Calculate distant solvent followed by computing key derived categories --
     """
     logger.info("\nStarting %s %s\n" % (self.__class__.__name__, sys._getframe().f_code.co_name))
     try:
         of = "annot-reposition-add-derived-" + self.__testFileAnnotSolvent
         dp = RcsbDpUtility(tmpPath=self.__tmpPath, siteId=self.__siteId, verbose=True)
         inpPath = os.path.join(self.__testFilePath, self.__testFileAnnotSolvent)
         dp.imp(inpPath)
         dp.op("annot-reposition-solvent-add-derived")
         dp.expLog("annot-reposition-solvent-plus-derived.log")
         dp.exp(of)
         dp.cleanup()
     except Exception as e:
         logger.exception("Failing with %s" % str(e))
         self.fail()
예제 #30
0
 def cif2Pdbx(self, inpPath, outPath):
     """CIF -> PDBx conversion  (public subset with PDBid conversion)"""
     try:
         dp = RcsbDpUtility(tmpPath=self.__sessionPath, siteId=self.__siteId, verbose=self.__verbose, log=self.__lfh)
         dp.imp(inpPath)
         dp.op("cif2pdbx-public")
         logPath = os.path.join(self.__sessionPath, "annot-cif2pdbx.log")
         dp.expLog(logPath)
         dp.exp(outPath)
         if not self.__debug:
             dp.cleanup()
     except:  # noqa: E722 pylint: disable=bare-except
         traceback.print_exc(file=self.__lfh)
         return False
     #
     return True