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
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()
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()
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)
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()
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()
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()
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()
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()
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()
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
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
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()
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()
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