[IUCr Home Page] [CIF logo] [CIFFOLD logo] [CIFtbx logo]

New and Upgraded CIF Software to Facilitate Publication in IUCr Journals

Starting in August 2007, with funding from the International Union of Crystallography (IUCr), we are working on upgrades to the CIF software used by the IUCr to support new extensions to the capabilities of CIF embodies in the work of Hall et al. on DDLm. For more information on DDLm see DDLm: Next Generation Dictionary Definition Language by Syd Hall, Nick Spadaccini and John Westbrook (Version: 18 Mar 2007)

This is a 2-year project with two essential subprojects:

Historical Record of the Project

The project was funded by the IUCr in August 2007. The initial base for the project was the documentation and software provided by Syd Hall directly and via the IUCr web site, as well was the work done on CIF validation using CBFlib in the prior 2004-2006 funding period, and the work done subsequently on CBFlib. The work draws on and intersects with other work funded by the U.S. Department of Energy, the U.S. National Institutes of Health, the U. S. National Science foundation and Dowling College. Of particular note is the work on the image-supporting CIF dictionary (imgCIF), the related work on the CBFlib API for imgCIF, the work in integration of CBFlib with NeXus, and the creation of a Structural Biology Extensible Visualization Scripting Language (SBEVSL).

Work done in the second quarter (November 2007 -- January 2008): The activities for the project in this quarter consisted of a cleanup of the base level of CBFlib (to be formally released shortly as CBFlib_0.7.9), and a start on the changes to the CBFlib C-based parser and to the ciftbx Fortan based parser. The major work was on the design of the logic to handle parsing the "list", "array", "tuple" and "table" entities, and identification of most of the mappings from DDLm to DDL2 needed to create hooks to the existing validation code. In addition the main server for the software development activities in the lab (arcib) was upgraded, providing a more stable development environment with more disk space.

Work done in the third quarter (February 2008 -- April 2008): The activities for the project in this quarter consisted of new code in CBFlib, starting with the release in CBFlib 0.7.9 of the code done in the prior quarter. The work being done then was to be released during the next quarter in CBFlib 0.8 to have it ready for review in Osaka. The C code to parse the three DDLm bracketed constructs ( (), [], and {}) was completed and tested. The approach that was taken is to parse the nested constructs, removing comments and extra whitespace to produce a clean string that is easy to reparse for the important single level cases needed for dictionary validation, but which preserves the full tree structure when needed. In addition, Mr. Todorov has done the regular-expression based infrastructure to validate tag values against the single container DDLm types. The same structure would then be applied iteratively to the multivalues types. The code for both the parse and the validation infrastructure was available in the CBFlib_bleeding_edge module in the cbflib project on blondie.dowling.edu.

Work done in the fourth quarter (May 2008 -- July 2008): The activities for the project in this quarter have consisted of new code in CBFlib and CIFtbx preparing for release 0.8 of CBFlib and release 4 of CIFtbx, both with code to read and validate data items against expanded DDLm dictionaries. The necessary code infrastructure to parse bracketed items and to test data items against the DDLm regular expressions is now in CBFlib. The regular expressions themselves are being validated and adjusted as necessary and CIFTEST2 is being expanded case by case to provide test cases for likely incorrect uses of the new DDLm types. The current pre-release of CBFlib 0.8 in the repository on blondie.dowling.edu is also being used as the CIF processing component in the current pre-release of RasMol to help ensure adequate testing against existing CIF data. We will post as complete a version of CBFlib 0.8 to the web as is ready just before the Osaka IUCr meeting later this month. The CIFtbx infrastructure to parse bracketed items and to test data items is also ready, but the testing will have to be at a simpler level than in the C-version, not using regular expressions, but simply testing on a coarser level similar to the one adopted for testing against the DDL2 data types. That code will also be posted to the web before the IUCr meeting.

The work on CIFtbx4 has raised an interesting issue of how not to break existing Fortran applications in the transition to DDLm. The problem is that older Fortran applications cannot accept strings of arbitrary length. To deal with this, we are following the approach already used in CIFtbx to deal with text fields -- delivering the text in chunks of limited length with a flag set true if there are more chunks to be examined. This will allow existing applications to view bracketed constructs as if they were text fields presenting one item per line. For applications that can be converted to be DDLm aware, new variables giving the depth into a bracketed construct and the index across on the current level should provide appropriate control.

Work done in the fifth quarter (August 2008 -- October 2008): After due consideration of the discussions in the COMCIFS meeting and the imgCIF workshop in Osaka in August, and further comparison of available DDLm software in September, we have settled on the version of DDLm as implemented in James Hester's PyCIFRW as the reference implementation against which we will maintain compatibility and are making the necessary changes in CBFlib and CIFtbx 4.

James Hester's parser was obtained from http://anbf2.kek.jp/downloads/drel-ply-ez_260908.tar.gz with the working copy for this project at http://blondie.dowling.edu/projects/drel-parser/. His parser uses PLY (Python Lex-Yacc), so PLY needs to be installed. It can be downloaded from http://www.dabeaz.com/ply/. The current version of PyCIFRW, which this parser is a part of, can be obtained at http://anbf2.kek.jp/CIF/.


Quarterly Progress Reports


Prior Funding Period (2004 -- 2006) Effort

For August 2004 through August 2006, with funding from the International Union of Crystallography, we worked on improvements to CIFTEST, vcif, and CIFtbx as well as a new line folding package to help provide new and upgraded CIF software to facilitate publication in IUCr journals. The work drew and and intersected with other work support by grants from the U.S. National Science Foundation and the U. S. Department of Energy. The result was a set of packages of open source software:

Historical Record of the Project

In August 2004 the International Union of Crystallography (IUCr) funded a 2-year project at Dowling College for new and upgraded CIF software to facilitate publication in IUCr journals.

In order to support the evolving needs of the community for new and upgraded CIF software to facilitate publication in IUCr journals, we have established a CIF software support effort at Dowling College under the direction of Herbert J. Bernstein, a major CIF software developer, leveraging the infrastructure already in place in Dr. Bernstein's lab for bioinformatics software development.

Poster about the project for the 2006 summer meeting of the American Crystallographic Association, Honolulu, HI, 22-27 July 2006.

   
G. Todorov presenting poster on vcif2 and G. Todorov and G. Darakev talking to R. Grosse-Kunstleve about CBFlib at ACA 2006 in Hawaii.

Foils of presentation on the project for XX Congress IUCr, Florence, IT, 23-31 August 2005.

     
I. Awuah Asiamah, K. Mitev and G. Todorov preparing the presentation for IUCR 2005 and G. Todorov and K. Mitev presenting at IUCR2005 MS 86.

Among the sub-projects are:

  1. CIFTEST -- Creation of a new and extended test file suite and test protocol for validation of CIF parsers.

    Current IUCr release: journals.iucr.org/iucr-top/cif/developers/trip/ by Brian McMahon 10 May 2000

    Project Status 3 September 2006: The work done on the other packages, including CIFtbx 3.0.4 and CBFlib 0.7.6.1, has been integrated into a new release CIFTEST 2.1. The test package illustrates three important approaches to comparing output CIFS. In order to resolve the variations in the handling of one-row loops, for the cif2cif section CIFTEST uses cif2cbf as a filter to resolve the ambiguity as discussed in the prior report. In order to resolve the variations in handling of leading zeros, for the cif2pdb section CIFTEST uses sed scripts to deal with that issue. The release for CIFTEST is on the project web site and at:

    http://www.bernstein-plus-sons.com/software/ciftest

    Work by H. J. Bernstein based on the kit produced by G. Todorov.

    Project Status 1 June 2006: The management of one-row loops has been further investigated and is proving both interesting and complex. In most cases, one-row loops appear to be best handled as tag value pairs, except when presented with a significant number of matrix or vector elements. Such stylistic variations will require a replacement of straight comparison of tests cases with a pass through a program like cif2cbf to get to a uniform presentation. Work by H. J. Bernstein.

    Project Status 1 April 2006: In the course of the new work on vcif (see below), some new test cases have been generated, including tests for the existing binary format. These will be integrated with ciftest when the vcif release is ready. One of the interesting issues is the handling of a one-row loop either as a loop or as a series of tag-value assignments. Work by H. J. Bernstein.

    Project Status 1 February 2006: The framework for CIFTEST2 created by G. Todorov, making B. McMahon's trip package more general, has been extended to include the vcif test cases. Environment variables have been used to make it easier to customize the choices of programs to be used for the tests. The first release candidate of CIFTEST2.0 is at:

    http://arcib.dowling.edu/~bernsteh/software/CIFTEST2.0

    Work by G. Todorov and H. J. Bernstein.

    Project Status 1 December 2005: The framework for CIFTEST2 has been created, which allows a modular testing of multiple cases that involve a variety of CIF packages. The CIFFOLD test cases have been integrated into CIFTEST2 shortly. Testing has begun and a copy has been made available to B. McMahon. Formal release is expected in the next reporting period. Work by G. Todorov.

    Project Status 1 October 2005: New test cases have been created as part of the work on CIFFOLD, and released in the CIFFOLD kit. These cases will be back integrated into CIFTEST shortly.

    Project Status 1 August 2005: Continuing from the prior reporting period the intensive work on CIFFOLD has resulted in interesting new test cases for long lines and for cases that might break parsers. I. Awuah Asiamah is cleaning up and organizing these test cases. Some of the test cases have become part of the "make tests" section of CIFFOLD already. Work by I. Awuah Asiamah, K. Mitev and H. J. Bernstein.

    Project Status 28 May 2005: The intensive work on CIFFOLD has resulted in interesting new test cases for long lines and for cases that might break parsers. These cases need to be cleaned up and revised to avoid intellectual property issues, but will become a significant contribution to the test suite. Work by I. Awuah Asiamah and K. Mitev.

    Project Status 30 Jan 2005: The script, runtest, was revised to use new vcif and to handle command line arguments for all test cases. (see ciftest_1_2) New test cases (see below) not yet incorporated to ensure that current test behavior will be reproduced using the evolving vcif (see below).

    Project Status 5 Dec 2004: S. Louris has prepared initial test cases for CIF 1.1 line folding (see ctc001).

  2. vcif2 -- an extended version of vcif. vcif is a program used by the IUCr to validate the syntax of CIF files. vcif verifies compilance with CIF 1.0. vcif2 will verify compliance with CIF 1.0, CIF 1.1 or mmCIF file formats. vcif2 will also accept an arbitrary list of layered DDL1 and DDL2 dictionaries against which units, enumerations, parent-child relationships and category integrity will be checked.

    Current IUCr release: www.uk.iucr.org/iucr-top/cif/software/vcif/index.html. The IUCR has re-released vcif under the GPL. That version has been posted at arcib.dowling.edu/software/vcif/ as vcif 1.1.

    Project Status 3 September 2006: The work on vcif and CIFTEST was presented as a poster by G. Todorov at the summer 2006 ACA meeting in Hawaii. The poster was well-attended with lively discussions.

    As discussed in the prior report, we settled on CBFlib as the base both for the vcif2 syntax checking and for parent-child and category checking. Type checking is hard- coded, rather than dictionary regular expression driven. The dictionary regular expressions were just not solid enough. Mr. Todorov has packaged the checking in the form of a web page and php script at

    http://arcib.dowling.edu/vcif

    Work by H. Bernstein, G. Todorov and G. Darakev with consultation by K. Mitev.

    Project Status 1 June 2006: The abstract for the summer 2006 ACA meeting in Hawaii on the work on vcif and CIFTEST has been accepted for a poster presentation.

    We have settled on CBFlib as the base both for the vcif2 syntax checking and for parent- child and category checking. Type checking is hard-coded, rather the dictionary regex driven. The dictionary regex expressions are just not solid enough. The alias code was taken from release 0.7.5 to 0.7.6 and works. As noted above, we are reworking the line folding in CBFlib. The hash-table performance seems to be good enough to make the use of a formal database package unnecessary to achieve the goals of this project for most realistic cifs, and the use of CBFlib under the GPL or LGPL should address the concerns Brian raised.

    Work by H. Bernstein in consultation with G. Todorov, K. Mitev. Some CBFlib testing by A. Hammersley and J. Wright at ESRF.

    Project Status 1 April 2006: An abstract for the summer 2006 ACA meeting in Hawaii has been prepared on the work on vcif and CIFTEST.

    As noted in the prior bi-monthly report, Mr. Mitev proposed an interesting approach to validation involving the use of a postgres database for the layered dictionaries to then produce a ghost schema against which to validate CIFs. Brian McMahon raised some concerns about making the system dependent on auxiliary software that not all users might have available. We remain convinced that the key to full CIF validation, especially for DDL2-based CIFS, is to make use of the rules for relational databases, which is most efficiently done with an SQL server. However, Brian McMahon's concerns are valid. Therefore we are structuring the new code to allow for use of either an internal or an external database. Handing the second option, however, requires a significant upgrade to the API we are using (derived from the CBFlib API), which we have begun and which is also bearing fruit for imgCIF. We have extended the CBFlib parser to support save frames so that DDL2 dictionaries may be read, and have added hash table-based searches similar to the ones we use in CIFtbx to achieve acceptable performance. For your information a current snapshot of the parser bison grammar is available at

    http://arcib.dowling.edu/~bernsteh/.cifiucr/cbf_stx_1Apr06.y

    We have also made arrangements with SSRL to bring the CBFlib API under the GPL or the LGPL as alternative licenses. The parse of both DDL1 and DDL2 dictionaries is working, and we are now working on the dictionary layering code and denormalization of the item and category attributes from scattered tables to a smaller number of larger hash-indexed tables. The first tests of the dictionary parse code will be of tag aliasing. This will be done in collaboration with colleagues at ESRF who are interested because of the utility of this feature in handling older deprecated imgCIF categories in newer CBF files. We hope to incorporate the new parser and dictionary handling into the CBFlib 0.7.5 release to be posted to the web shortly, so that this critical code will get more extensive testing. Work by H. Bernstein in consultation with G. Todorov, K. Mitev. Some CBFlib testing by A. Hammersley and J. Wright at ESRF.

    Project Status 1 February 2006: Mr. Mitev has proposed an interesting approach to validation involving the use of a postgres database for the layered dictionaries to then produce a ghost schema against which to validate CIFs. This appears to be the best option for implementing the additional validation needed for vcif2. This will be investigated further in the next reporting period.

    Project Status 1 December 2005: There is nothing new to report on vcif at this time.

    Project Status 1 October 2005: There is nothing new to report on vcif at this time.

    Project Status 1 August 2005: Since I. Awuah Asiamah has become the primary tester for the packages in this project, he is taking over responsibility for vcif. If the visa issues can be resolved in a timely manner, I. Awuah Asiamah will attend the IUCr Congress in Florence (as will K Mitev,G. Todorov and H. J. Bernstein) which will be helpful in discussions relative both to CIFTEST and vcif.

    Project Status 28 May 2005: Work done recently on CIFFOLD includes new code for syntactic validation, that is being considered for incorporation into vcif. This code is able to provide useful analyses even when the data block is not specified. Work by K. Mitev.

    Project Status 30 Jan 2005: Changes made to bring code closer to current ANSI-C conventions and to avoid conflicts in building for some platforms, such as MS Windows. Command line option added to specifiy CIF level and command line processing revised to allow both long and short argument names. Updated code tested to ensure ability to process original CIFTEST cases with unchanged output. (see work in progress vcif002.patch -- incorporates changes below -- do not apply both patches). HJB

    Project Status 5 Dec 2004: Mods prepared to extend line length (see work in progress vcif001.patch). Preliminary tests by S. Louris, continued by H. Bernstein.

  3. CIFFOLD -- a new utility to fold and unfold long-line CIFs to allow existing CIF 1.0 applications to work with CIF 1.1 files

    Current IUCr release: none

    Project Status 3 September 2006: On reflection and after some experimentation, we concluded that there was no need to add the deprecated "\;" semicolon escape convention to ciffold, since conversion for files using the incorrect convention can be done either with by sed or by the old CBFlib, and it would be best not to encourage the writing of additional incompatible files. If there is objection to this approach at the IUCr, we can put out the code to support the old convention, but absent such objection, we believe the project goals for ciffold have been met.

    The release for ciffold is on the project web site and at:

    http://www.bernstein-plus-sons.com/software/ciffold

    Work by H. J. Bernstein.

    Project Status 1 June 2006: The logic in ciffold in being reviewed with respect to the handling of folding which places a semicolon in column 1 of the next line. Ciffold handles this by doing the fold one character earlier. Ciffold allows a semicolon to be moved to column 1 if it is not followed by a blank or tab. CBFlib follows a different convention, escaping such a semicolon with a leading backslash, which conflicts with the IUCr convention of treating a "\;" as an ogonek. CBFlib has been changed to conform with the Ciffold convention, but, since there are datasets in the field that have used the CBFlib convention, we will add it as a deprecated option in both packages. Work by H. J. Bernstein. The review of semicolon handling started with a discussion with Mr. Mitev.

    Project Status 1 April 2006: The release candidate discussed in the prior bimonthly report has been made the default ciffold release at:

    http://www.bernstein-plus-sons.com/software/ciffold

    Work by K. Mitev and H. J. Bernstein

    Project Status 1 February 2006: The problem identified by Mr. Mitev at the end of the prior reporting period was investigated. The problem was one of insufficient blank stripping at the ends of lines within text fields. Mr. Mitev proposed a solution which addressed that problem, but, in the course of integrating the fix, a subtle problem was found in the mapping of single line quoted strings presented as folded text fields to apostrophe- and double-quote- quoted strings. In particular there are cases that should be left as folded text fields and that also bring to light important test cases to be added to vcif and CIFTEST. A fix for the problem is being tested in the next release candidate for CIFFOLD which should be posted for external release after additional testing. The release candidate is at:

    http://arcib.dowling.edu/~bernsteh/software/CIFFOLD_0.5.4

    Work by K. Mitev and H. J. Bernstein

    Project Status 1 December 2005: At the end of this reporting period Mr. Mitev reported a potential problem with the handling of unfolding of folded text fields containing lines that end with the sequence backslash-blank. This is being investigated further by H. Bernstein.

    Project Status 1 October 2005: During this reporting period CIFFOLD was presented in Florence and B. McMahon requested a new mode of operation in which only lines that were longer than 80 characters would be folded and other lines would remain unchanged to simplify reporting of changes to authors during the IUCr publication processes. The change was implemented in September by adding a new command line option ("-n") for minimal folding as well as a new ncurses menu page. The updated code was just released as version 0.5.3 and made the default at:

    http://www.bernstein-plus-sons.com/software/ciffold

    Work by H. J. Bernstein, with consultation by K. Mitev.

    Project Status 1 August 2005: During this reporting period, the program CIFFOLD was tested and documented and progressed from release 0.4.3 to release 0.5.1 as problems were discovered and corrected and the quality of the ouput was improved (e.g. to fold between blank separated words in the style of CIFtbx3, rather than precisely on column 80 as in earlier releases of CIFFOLD). The code has been working well, and a link has been placed on the public web page for CIFFOLD to allow retrieval of folded versions of the long-line mmCIF datasets currently being released by the RCSB PDB. As of this writing the 0.5.1 release is the default release. The 0.5.2 release, currently available for testing at http://www.bernstein-plus-sons.com/software/CIFFOLD_0.5.2 changes the handling of folded long single or double quoted strings to include a terminal backslash in the resulting text field, so that an extra newline will not be added on reconstruction, and also deals with additional cases of embedded "; " sequences in text fields that might end up in column 1. If this release does well in testing, it should be the default release during the Congress. Work by K. Mitev, G. Todorov and H. J. Bernstein, with testing by I. Awuah Asiamah.

    Project Status 28 May 2005: After testing and comments by the students in the lab, a full release (CIFFOLD_0.1) was prepared and posted at www.bernstein-plus-sons.com/software/ciffold in mid April 2005. Further testing by the students and by B. McMahon resulted in rapid evolution of the code to a reasonable stable release (CIFFOLD_0.4.3) on 14 May 2005. The work on cif2cif using the CIFtbx3 release was fed back into the work on CIFFOLD. Work by K. Mitev, G. Todorov and H. J. Bernstein, with testing by R. Chachra, C. Chigbo, S. Louris and, especially, I. Awuah Asiamah. Helpful comments provided by B. McMahon.

    Project Status 2 April 2005: K. Mitev has prepared a full GUI release for testing. (see the current state of the release (ciffold003). The release is being actively tested by others in the lab to see if it can be gotten ready for release and for inclusion in the ITVG CDROM this month. A tar for others who wish to test this prerelease is available: CIFFOLD.tar.gz. Work by K. Mitev and G. Todorov, with testing so far by H. Bernstein, G. Todorov, R. Chachra, I. Awuah Asiamah and S. Louris.

    Project Status 30 Jan 2005: K. Mitev and G. Todorov are working on a GUI front end and integrity checking. (see the work in progress ciffold002).

    Project Status 5 Dec 2004: K. Mitev is working a this code (see the work in progress ciffold001).

  4. CIFtbx3 -- a new release of CIFtbx to provide support for CIF 1.1 (as well as CIF 1.0 and mmCIF) for Fortran applications and to provide extended integrity checking comparable to that in vcif2.

    Current IUCr release: www.iucr.org/iucr-top/cif/software/ciftbx3/README.html (from this project) and http://www.iucr.org/iucr-top/cif/software/ciftbx/README.html (the prior version).

    Project Status 3 September 2006: The vcif2 validation code has been adapted from C to Fortran and incorporated into CIFtbx version 3.0.4 to provide "extended integrity checking comparable to that in vcif2". The full patch code to convert from CIFtbx 2.6.4 to CIFtbx 3.0.4 is available at

    http://arcib.dowling.edu/cifiucr/ciftbx003.patch

    and a release kit is available at

    http://arcib.dowling.edu/cifiucr/ciftbx_3.0.4.cshar.Z

    The full release of the enhanced CIFtbx3 is available on the project web site (see above) and at

    http://www.bernstein-plus-sons.com/software/ciftbx

    We are pleased to report that Syd Hall recently agreed to allowing the LGPL as an alternate license to the GPL for the API. We have incorporated the necessary license revisions into this patch and the kit. Since completion of the project, we have released the current versions of cif2cif, Cyclops, cif2pdb and cif2xml based on CIFtbx 3.0.4 rather than on CIFtbx 3.0.3 and reflecting the improvement in the license situation.

    The specific changes made to CIFtbx in the transition from the 3.0.3 release to the 3.0.4 release were:

    The 3.0.4 release completed the extension of validation to include checking for missing parents and validation of data values against dictionary-specified ranges and enumerations. Failure to provide dictionary-specified mandatory items is also reported. The new dict_ check codes 'parck' and 'parno' turn on and off checking of parent-child relationships. The default is 'parck'. The new character variable dicpname_ returns the dictionary-specified parent of the name in dicname_. The meaning of the existing dict_ check code 'dtype' has been extended to include data input checks for compliance with dictionary-specified ranges and enumerations, and type checking is more rigorous than in the past. The new logical variable valid_ is set .true. if an input data item has been validated against the dictionary. If no dictionary type check is specified or the item does not conform, valid_ is .false. Warning are also reported for validation failures. Additional internal name changes to avoid conflicts were made:

                    tbxxpcat         procat
                    tbxxsstb         <new>
                    tbxxfstb         <new>
                    tbxxnid          newdent
                    tbxxoid          <new>
    

    We believe the project goals for CIFtbx have been met. Work by H. J. Bernstein

    Project Status 1 June 2006: Nothing to report for this period. We will return to this after the vcif validation upgrade to incorporate similar changes. Note, however, the discussion of semicolons in ciffold and CBFlib, below. Similar changes are being prepared for CIFtbx. Work by H. J. Bernstein

    Project Status 1 April 2006: Nothing to report for this period. We will return to this after the vcif validation upgrade to incorporate similar changes. We note that CIFtbx_3.0.3 downloads have risen from 20 per week to 30 per week in this period.

    Project Status 1 February 2006: The prior release of CIFtbx3 (3.0.2) and the new release (3.0.3) were tested on various platforms and, after careful review of the results CIFtbx 3.0.3 was made the default release on 18 January 2006 at

    http://www.bernstein-plus-sons.com/software/ciftbx

    It should be noted that the CIFtbx test cases are now also incorporated into CIFTEST.

    Work on CIFtbx by G. Todorov, J. Jemilawon and H. J. Bernstein.

    Project Status 1 December 2005: The next major phase of work with CIFtbx is augmentation of the integrity checking. In order to do this, further performance improvements are needed, In this time period the performance of CIFtbx was improved by reworking portions of the code to use of counted strings to avoid unnecessary replication of trailing blanks in the larger buffers created for handling the long lines of CIF 1.1, and increasing the number of pages kept resident, so that it will be feasible to make additional accesses to the data from dictionaries. The cif2pdb Makefile in the CIFtbx package was cleaned up. The code was released for testing as release 3.0.3 of CIFtbx at

    http://www.bernstein-plus-sons.com/software/ciftbx_3.0.3/

    Work on CIFtbx by H. J. Bernstein and G. Todorov.

    Project Status 1 October 2005: During this reporting period the package was given further testing as the base for a new version of the program cif2pdb being used in another project. The package was upgraded early in August to release 3.0.2 to correct the handling of an index in dtype and to add new types from the PDB extensions dictionary. The updated version is now in use in support of the web page at

    http://biomol.dowling.edu/WPDB

    which is part of a project funded by the U. S. Department of Energy on creation of a new, wide PDB format. Work on CIFtbx by H. J. Bernstein. Work on the DOE project is a collaboration between F. C. Bernstein and H. J. Bernstein.

    Project Status 1 August 2005: As reported in the prior reporting period, fully operational folding and unfolding with acceptable performance on long lines was integrated with CIFtbx and released as CIFtbx3. During this reporting period, CIFtbx3 was made the default release of CIFtbx, and, with S. R. Hall's approval, released under the GPL. The package was given extensive testing as the base for a new version of the program cif2pdb being used in another project, and worked corrected with excellent performance.

    Project Status 28 May 2005: Fully operational folding and unfolding with acceptable performance on long lines was integrated with CIFtbx. The program cif2cif was upgraded to include options for folding and unfolding, making it an alternative to CIFFOLD and, more importantly, a template for Fortran programmers on how to adapt a Fortan application to use of CIFtbx3 for long lines. The first release of CIFtbx3 (ciftbx_3.0.0) was released at www.bernstein-plus-sons.com/software/ciftbx_3.0.0. There was an upgrade to www.bernstein-plus-sons.com/software/ciftbx_3.0.1 on 7 April 2005. This version seems to be reasonably stable. Links have been created from www.bernstein-plus-sons.com/software/CIFtbx3 to the ciftbx_3.0.1 release and from www.bernstein-plus-sons.com/software/CIFtbx2 to the ciftbx_2.6.4 release. The primary software distribution link for ciftbx will be upgraded from CIFtbx2 to CIFtbx3 during the next reporting period. We are pleased to note that the IUCr web site has the CIFtbx 3.0.1 release. Work by H. Bernstein with testing by K. Mitev and others.

    Project Status 2 April 2005: The performance issue uncovered in the last cycle has been reasonably well addressed. The code for folding is written and the code for comment unfolding is written. With the addition of the code for text unfolding, this version may be ready for release and inclusion in the ITVG CDROM this month. (see work in progress ciftbx002.patch). Work by H. Bernstein.

    Project Status 30 Jan 2005: Work on this package has brought to light serious performance issues is working with large numbers of large character strings in Fortran. The code of CIFtbx is being reworked to use representations of strings more appropriate to working in Fortran, combining trailing-blank-trimming and run-length-encoding.

    Project Status 5 Dec 2004: Mods in progress to extend line length and to do folding (see work in progress with code for folding ciftbx001.patch). Work by H. Bernstein.

This is a major set of inter-related projects, expected to take more than two years to complete. A phased release to Chester of partial preliminary versions of all of these packages will be made on this web site and feedback from Chester will be used to guide completion of the packages. Comments and suggestions by other interested parties would be appreciated.

As versions of these packages mature they will be released to the community as open source software without charge to encourage wide use. The software will be released using the GNU GPL license.


Bimonthly Progress Reports