The program DSR consists of a text database with fragments of molecules and the DSR program. It acts as a preprocessor for SHELXL .res files. The user inserts a special command in the SHELXL .res file and the DSR program reads this information to put a molecule or fragment with the desired atoms on the position of the target atoms or q-peaks in the unit cell. Bond restraints can be either applied from the database to the molecule or automatically generated.
I apologize for the messy code. This was my first bigger project...
You have either a command line version:
C:\Users\daniel>dsr
----------------------------------------------------- D S R - v238 -------------------------------------
Disordered Structure Refinement (DSR)
Example DSR .res file command line:
REM DSR PUT/REPLACE "Fragment" WITH C1 C2 C3 ON Q1 Q2 Q3 PART 1 OCC -21 =
RESI DFIX
---------------------------------------------------------------------------------------------------------
PUT: Just put the fragment source atoms here.
REPLACE: Replace atoms of PART 0 in 1.3 A distance around target atoms.
---------------------------------------------------------------------------------------------------------
optional arguments:
-h, --help show this help message and exit
-r "res file" ["res file" ...]
res file with DSR command
-re "res file" ["res file" ...]
res file with DSR command (write restraints to external file)
-e "fragment" export fragment as .res/.png file
-c "fragment" export fragment to clipboard
-t inverts the current fragment
-i "tgz file" import a fragment from GRADE (needs .tgz file)
-l list names of all database entries
-s "string" search the database for a name
-g keep group rigid (no restraints)
-u Update DSR to the most current version
-n do not refine after fragment transfer
Or a graphical user interface in ShelXle: