Example #1
0
 def test_read_data_file(self):
     """ Test reading a CIF file (... again?) """
     #
     myDataList = []
     ifh = open(self.pathPdbxDataFile, "r")
     pRd = PdbxReader(ifh)
     pRd.read(myDataList)
     ifh.close()
Example #2
0
 def testReadDataFile(self): 
     """ Test reading a CIF file (... again?) """
     #
     myDataList=[]
     ifh = open(self.pathPdbxDataFile, "r")
     pRd=PdbxReader(ifh)
     pRd.read(myDataList)
     ifh.close()            
Example #3
0
 def test_update_data_file(self):
     """ Test writing another CIF file """
     # Create a initial data file --
     #
     myDataList = []
     ofh = open(self.get_fn("test-output-1.cif", written=True), "w")
     curContainer = DataContainer("myblock")
     aCat = DataCategory("pdbx_seqtool_mapping_ref")
     aCat.appendAttribute("ordinal")
     aCat.appendAttribute("entity_id")
     aCat.appendAttribute("auth_mon_id")
     aCat.appendAttribute("auth_mon_num")
     aCat.appendAttribute("pdb_chain_id")
     aCat.appendAttribute("ref_mon_id")
     aCat.appendAttribute("ref_mon_num")
     aCat.append((1, 2, 3, 4, 5, 6, 7))
     aCat.append((1, 2, 3, 4, 5, 6, 7))
     aCat.append((1, 2, 3, 4, 5, 6, 7))
     aCat.append((1, 2, 3, 4, 5, 6, 7))
     curContainer.append(aCat)
     myDataList.append(curContainer)
     pdbxW = PdbxWriter(ofh)
     pdbxW.write(myDataList)
     ofh.close()
     self.assertTrue(
         diff_files(self.get_fn('test-output-1.cif', saved=True),
                    self.get_fn('test-output-1.cif', written=True)))
     #
     # Read and update the data -
     #
     myDataList = []
     ifh = open(self.get_fn("test-output-1.cif", written=True), "r")
     pRd = PdbxReader(ifh)
     pRd.read(myDataList)
     ifh.close()
     #
     myBlock = myDataList[0]
     dest = open(self.get_fn('test_write_1.txt', written=True), 'w')
     myBlock.printIt(dest)
     myCat = myBlock.getObj('pdbx_seqtool_mapping_ref')
     myCat.printIt(dest)
     dest.close()
     for iRow in range(0, myCat.getRowCount()):
         myCat.setValue('some value', 'ref_mon_id', iRow)
         myCat.setValue(100, 'ref_mon_num', iRow)
     ofh = open(self.get_fn("test-output-2.cif", written=True), "w")
     pdbxW = PdbxWriter(ofh)
     pdbxW.write(myDataList)
     ofh.close()
     self.assertTrue(
         diff_files(self.get_fn('test-output-2.cif', saved=True),
                    self.get_fn('test-output-2.cif', written=True)))
     self.assertTrue(
         diff_files(self.get_fn('test_write_1.txt', saved=True),
                    self.get_fn('test_write_1.txt', written=True)))
Example #4
0
 def test_read_big_data_file(self):
     """ Test reading large CIF file """
     try:
         #
         myDataList = []
         ifh = open(self.pathBigPdbxDataFile, "r")
         pRd = PdbxReader(ifh)
         pRd.read(myDataList)
         ifh.close()
     except:
         traceback.print_exc(file=sys.stderr)
         self.fail()
Example #5
0
 def testReadBigDataFile(self): 
     """ Test reading large CIF file """
     try:
         #
         myDataList=[]
         ifh = open(self.pathBigPdbxDataFile, "r")
         pRd=PdbxReader(ifh)
         pRd.read(myDataList)
         ifh.close()            
     except:
         traceback.print_exc(file=sys.stderr)
         self.fail()
Example #6
0
 def test_read_small_data_file(self):
     """ Test reading small CIF file """
     try:
         #
         myDataList=[]
         ifh = open(self.pathPdbxDataFile, "r")
         pRd=PdbxReader(ifh)
         pRd.read(myDataList)
         ifh.close()            
     except:
         traceback.print_exc(file=sys.stderr)
         self.fail()
Example #7
0
 def testUpdateDataFile(self): 
     """ Test writing another CIF file """
     # Create a initial data file --
     #
     myDataList=[]
     ofh = open(get_fn("test-output-1.cif", written=True), "w")
     curContainer=DataContainer("myblock")
     aCat=DataCategory("pdbx_seqtool_mapping_ref")
     aCat.appendAttribute("ordinal")
     aCat.appendAttribute("entity_id")
     aCat.appendAttribute("auth_mon_id")
     aCat.appendAttribute("auth_mon_num")
     aCat.appendAttribute("pdb_chain_id")
     aCat.appendAttribute("ref_mon_id")
     aCat.appendAttribute("ref_mon_num")                        
     aCat.append((1,2,3,4,5,6,7))
     aCat.append((1,2,3,4,5,6,7))
     aCat.append((1,2,3,4,5,6,7))
     aCat.append((1,2,3,4,5,6,7))
     curContainer.append(aCat)
     myDataList.append(curContainer)
     pdbxW=PdbxWriter(ofh)
     pdbxW.write(myDataList)
     ofh.close()
     self.assertTrue(diff_files(get_saved_fn('test-output-1.cif'),
                                get_fn('test-output-1.cif', written=True)))
     #
     # Read and update the data -
     # 
     myDataList=[]
     ifh = open(get_fn("test-output-1.cif", written=True), "r")
     pRd=PdbxReader(ifh)
     pRd.read(myDataList)
     ifh.close()
     #
     myBlock=myDataList[0]
     dest = open(get_fn('test_write_1.txt', written=True), 'w')
     myBlock.printIt(dest)
     myCat=myBlock.getObj('pdbx_seqtool_mapping_ref')
     myCat.printIt(dest)
     dest.close()
     for iRow in range(0,myCat.getRowCount()):
         myCat.setValue('some value', 'ref_mon_id',iRow)
         myCat.setValue(100, 'ref_mon_num',iRow)
     ofh = open(get_fn("test-output-2.cif", written=True), "w")            
     pdbxW=PdbxWriter(ofh)
     pdbxW.write(myDataList)
     ofh.close()
     self.assertTrue(diff_files(get_saved_fn('test-output-2.cif'),
                                get_fn('test-output-2.cif', written=True)))
     self.assertTrue(diff_files(get_saved_fn('test_write_1.txt'),
                                get_fn('test_write_1.txt', written=True)))
Example #8
0
    def test_read_write_data_file(self):
        """Test case -  data file read write test
        """
        myDataList = []
        ifh = open(self.pathPdbxDataFile, "r")
        pRd = PdbxReader(ifh)
        pRd.read(myDataList)
        ifh.close()

        ofh = open(self.pathOutputFile, "w")
        pWr = PdbxWriter(ofh)
        pWr.write(myDataList)
        ofh.close()
Example #9
0
    def testReadWriteDataFile(self):
        """Test case -  data file read write test
        """
        myDataList=[]
        ifh = open(self.pathPdbxDataFile, "r")            
        pRd=PdbxReader(ifh)
        pRd.read(myDataList)
        ifh.close()            

        ofh = open(self.pathOutputFile, "w")
        pWr=PdbxWriter(ofh)
        pWr.write(myDataList)        
        ofh.close()
Example #10
0
    def test_read_sf_data_file(self):
        """read PDB structure factor data file and compute statistics on f/sig(f).
        """
        #
        myContainerList = []
        ifh = open(self.pathSFDataFile, "r")
        pRd = PdbxReader(ifh)
        pRd.read(myContainerList)
        c0 = myContainerList[0]
        #
        catObj = c0.getObj("refln")
        if catObj is None:
            return False

        nRows = catObj.getRowCount()
        #
        # Get column name index.
        #
        itDict = {}
        itNameList = catObj.getItemNameList()
        for idxIt, itName in enumerate(itNameList):
            itDict[str(itName).lower()] = idxIt
            #
        idf = itDict['_refln.f_meas_au']
        idsigf = itDict['_refln.f_meas_sigma_au']
        minR = 100
        maxR = -1
        sumR = 0
        icount = 0
        for row in catObj.getRowList():
            try:
                f = float(row[idf])
                sigf = float(row[idsigf])
                ratio = sigf / f
                maxR = max(maxR, ratio)
                minR = min(minR, ratio)
                sumR += ratio
                icount += 1
            except:
                continue

        ifh.close()
        self.assertAlmostEqual(minR, 0.00455182)
        self.assertAlmostEqual(maxR, 549.333333333)
        self.assertAlmostEqual(sumR / icount, 0.547058, delta=0.000002)
        self.assertEqual(icount, 18508)
Example #11
0
 def testReadSFDataFile(self): 
     """read PDB structure factor data file and compute statistics on f/sig(f).
     """
     #
     myContainerList=[]
     ifh = open(self.pathSFDataFile, "r")
     pRd=PdbxReader(ifh)
     pRd.read(myContainerList)
     c0=myContainerList[0]
     #
     catObj=c0.getObj("refln")
     if catObj is None:
         return False
     
     nRows=catObj.getRowCount()
     #
     # Get column name index.
     #
     itDict={}
     itNameList=catObj.getItemNameList()
     for idxIt,itName in enumerate(itNameList):
         itDict[str(itName).lower()]=idxIt
         #
     idf=itDict['_refln.f_meas_au']
     idsigf=itDict['_refln.f_meas_sigma_au']
     minR=100
     maxR=-1
     sumR=0
     icount=0
     for row in  catObj.getRowList():
         try:
             f=float(row[idf])
             sigf=float(row[idsigf])
             ratio=sigf/f
             maxR=max(maxR,ratio)
             minR=min(minR,ratio)
             sumR+=ratio
             icount+=1
         except:
             continue
     
     ifh.close()
     self.assertAlmostEqual(minR, 0.00455182)
     self.assertAlmostEqual(maxR, 549.333333333)
     self.assertAlmostEqual(sumR/icount, 0.547058, delta=0.000002)
     self.assertEqual(icount, 18508)