Git Product home page Git Product logo

dkratzert / finalcif Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 1.0 54.59 MB

A CIF file finalizer for small molecule crystallography with as much automation as possible.

Home Page: https://dkratzert.de/finalcif.html

License: Other

Python 67.09% LiveScript 27.61% Rich Text Format 0.39% XSLT 3.14% Inno Setup 0.08% Shell 0.06% Batchfile 0.07% HTML 1.50% C++ 0.05% C 0.01%
iucr cif shelxl bruker rigaku stoe crystallography structure report checkcif

finalcif's People

Contributors

dependabot[bot] avatar dkratzert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

yemenpython

finalcif's Issues

Unusual solution method creates odd report

_computing_structure_solution 'isomorphous replacement'
_atom_sites_solution_primary isomor

creates:
The structure was solved by isomor methods with isomorphous and refined by full-matrix least-squares methods against F2 using SHELXL-2018/3.[3,4]

And references are incomplete:

[1] Bruker, SAINT, V8.40B, Bruker AXS Inc., Madison, Wisconsin, USA.
[2] L. Krause, R. Herbst-Irmer, G. M. Sheldrick, D. Stalke, J. Appl. Cryst. 2015, 48, 3–10, doi:10.1107/S1600576714022985.
[3]
[4] G. M. Sheldrick, Acta Cryst. 2015, C71, 3–8, doi:10.1107/S2053229614024218.
[5] D. Kratzert, FinalCif, V118, https://dkratzert.de/finalcif.html.

Add possibility to create new loops

Probably a list of cif keys (not currently used in loops) with a, "append" button.

Append will create a loop and more rows can be added as usual.

There could be also a "add column" button?

Tests on Debian hang

I am building FinalCif v113 and running its tests on Debian unstable. Some of the tests appear to hang indefinitely. It is difficult to pinpoint which of them exactly: at first it appears to be the tests in tests/test_workfolder.py, but if I disable it, hang happens earlier (!), most likely at tests/test_options.py.

Debian test system disallows network access (and sets NO_NETWORK=1 in environment, as discussed earlier), and it also forbids reading/writing in user's home directory. If hung tests need read/write to user's home directory, I can enable that, but I need to know how these directories are accessed. I tried using XDG or HOME environment variables, but they do not seem to work.

Save a diff to the original CIF

FinalCif should save a diff to the original CIF in the work directory in order to keep the changes made by the user.
How to select which changes to keep? We don't want to keep atom parameters for example.

  • Probably only changes edited by templates?
  • Or should I add checkbox to the text temlates where you can activate "keep this thing"?

Better support for twins

  • Description of twinning
  • Test more types of twins
  • Add twin matrix to the structure report.
  • What else?

Citations

Add citations to checkcif and validation response to the documentation.
Add citations section to documentation for all other software.

Indicator for report type

Add an indicator (symbol?) what kind of report is generated hard-coded or templated.
Probably add "from template" to the button text if a template is chosen.

Proper format of refine_special_details for nospherat2

Refinement using NoSpherA2, an implementation of NOn-SPHERical Atom-form-factors in Olex2. Please cite: F. Kleemiss et al. Chem. Sci. DOI 10.1039/D0SC05526C - 2021 NoSpherA2 implementation of HAR makes use of tailor-made aspherical atomic form factors calculated on-the-fly from a Hirshfeld-partitioned electron density (ED) - not from spherical-atom form factors. The ED is calculated from a gaussian basis set single determinant SCF wavefunction - either Hartree-Fock or DFT using selected funtionals - for a fragment of the crystal. This fragment can be embedded in an electrostatic crystal field by employing cluster charges or modelled using implicit solvation models, depending on the software used. The following options were used: SOFTWARE: ORCA 5.0 PARTITIONING: NoSpherA2 INT ACCURACY: Normal METHOD: PBE0 BASIS SET: def2-TZVP CHARGE: 0 MULTIPLICITY: 1 SOLVATION: Chloroform DATE: 2022-07-22_17-00-22

  • Add citation of F. Kleemiss et al. Chem. Sci. DOI 10.1039/D0SC05526C to FinalCif
  • Format the "The following options were used:" paragraph properly (newlines)

Typo in report

“The structure were solved by dual method" should be "... was solved ..."

Add support for multi CIFs

I don't like them, but people are using them.

  • Add a dropdown menu to select the current cif
  • Disable data sources for multi cifs
  • show data name in the response forms list
  • use data name in response forms list to save it to the correct cif block

Unusual symmcard crashes report

FinalCif V118 crash report

Please send also the corresponding CIF file, if possible. 
Python 3.11.2 (tags/v3.11.2:878ead1, Feb  7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)]
Platform: win32
Date: Mon May  8 16:08:56 2023
Finalcif crashed during the following operation:

  File "appwindow.py", line 1095, in make_report_tables
  File "report\tables.py", line 116, in make_report_from
  File "report\templated_report.py", line 37, in __init__
  File "report\templated_report.py", line 58, in _get_bonds_list
  File "report\templated_report.py", line 241, in symmsearch
  File "report\templated_report.py", line 215, in get_card

IndexError: list index out of range

Handling of special characters in templates

Adding of
“H"ubschle, C. B., Sheldrick, G. M. and Dittrich, B. (2011). J. Appl. Cryst., 44, 1281--1284.”
does not work? What happens to the \"u ?

How about & and " characters?

Improve author editor

Would it make more sense to store the info in FinalCif under _audit_author_address instead of _audit_contact_author_address?

The CSD removes most of _audit_contact_author_address and all other audit_contact_author[] fields.

Pros

  • The information would not get lost. Most of the needed UI work is done already.

Cons

  • Way more complicated input of CIF author information.

Consider _geom_[]_publ_flag when generating the report.

The geom[]_publ_flag code signals whether the angle is referred to in a publication or should be placed in a table of significant angles.

  • Make an extra table of these bonds/angles in the report.

Example:
no do not include angle in special list
n abbreviation for "no"
yes do include angle in special list
y abbreviation for "yes"

Improve editing and usage of templates with long text

I am thinking of a larger widget for the template editor at the place of the main table, like the loop editor.
Each template could have an extra option for short text (dropdown menu) and long text: "Long text" would mean that the templates are not edited by a dropdown but a popup widget with a full-featured text editor.

Last directory

The file open dialog does not go to the last directory anymore

Reference for `calc_checksum` function

While looking at the code, I noticed calc_checksum function to calculate SHELX cheksums:

def calc_checksum(input_str: str) -> int:

I have applied this code to check included SHELX files in the COD, and found out that ~6% of the COD CIF files with SHELX data have checksum mismatches, originating in the unmodified published CIF files (for example, https://pubs.acs.org/doi/suppl/10.1021/acs.orglett.6b02703/suppl_file/ol6b02703_si_003.cif).

Thus I am interested in the reference for this function, as I was unable to find SHELX checksums explained in SHELX manuals. Could it be that checksum algorithm has changed at some SHELX version? This could explain ~6% mismatching SHELX data in the COD.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.