Subject: X-RAY - SUMMARIZED ANSWERS

From: "Scheila" <[email-masked]>
Date: Thu, 24 Feb 2000 09:02:03 -0300

I would like to thanks all the contributions of the  CClers. I'm going to
summarize the answers received.
Scheila

___________________________________________________
QUESTION

I need a help to convert some x-ray data disposed in a paper. This paper
shows the data group, the a, b and c parameters and the atomic coordinates
in the format:
		x		y		z
C1	     7866(3)    3480(6)	    -1818(4)
C2 	     7641(2)    4107(6)	    -2989(4)
C3 	     7896(2)    5715(6)     -3240(4)
:
:
OMEI	     9490(2)    7341(7)	      3845(4)
CMEI	     9845(5)    5894(15)	3795(10)
W1/2*      9230	      923	      2984
W2/2*      8963        2070         3358

*occupancy factor f=0.5

______________________________________________________
ANSWERS

1-
There is a good converter named BABEL or BABELWIN (for
windows). You can convert to many file formats. I don't know
which format you are using but what you need to know is
name of the program you used to get the result you have given
in your mail.

You can find the program at the following site

ftp://laue.chem.ncsu.edu/pub/X-ray/babel/

I hope this will help you.

Dr Ivan Basic
Rudjer Boskovic Institute
Bijenicka 54
HR-10001 Zagreb
CROATIA

2-
a very good and free program is BABEL. You can find a download site at
http://www.eyesopen.com/download/babelwin.zip or at
ftp://www.ccl.net/pub/chemistry/software/UNIX/babel/ (also win and mac and
unix)

It handles over 50 different formats.

Find other related chemistry software in my chemistry software list (>300 in
categories) at

http://www.claessen.net/chemistry/soft_en.html

Regards,

Rolf Claessen

3-
It doesn't appear to be in any particular format, so it's up to you to
put it into some machine readable format, like PDB

Cambridge FDAT format has a rather complicated header, and I don't
recommend it as a starting point, unless you have access to the CCDB
programs and data.

Since it's crystal data, the coords are probably fractional, and have an
implied decimal point in front, e.g. 7866 is really 0.7866 (fractional
coords are mostly less than 1.0).

Rick Venable [[email-masked]]

4-
Following is a C program that will convert crystal structure coordinates to
cartesians.  It expects the first line to have the a, b, c axis lengths, and
and the alpha, beta, and gamma angles.  Subsequent lines are an atom label
and fractional coordinates.  I'll include a sample input and output file for
comparison.

--------
acamox.abc -- input file
--------
 6.0690   7.5820   7.3640   84.970   79.660   114.160
 C1          .21800          .25770          .10540
 C2          .32530          .16210         -.03000
 C3          .39920          .15780          .34360
 C4          .14350          .33540          .41450
 H10         .01900          .45500         -.14400
 H21         .29300          .18400         -.14600
 H22         .26100          .01600          .01900
 H23         .50500          .20800         -.04900
 H31         .56300          .26100          .32500
 H32         .34600          .11400          .46200
 H33         .38300          .04700          .29100
 H41              0          .33200          .41000
 H42         .12700          .28800          .53900
 H43         .23600          .47000          .38700
 N1          .22880          .22820          .28880
 N2          .10890          .36370          .06280
 O1          .08840          .36910         -.12780
--------
acamox.xyz -- output file
--------
Unit cell volume = 299.2115
C1          0.662659    1.919812    0.751155
C2          1.431563    1.082369   -0.213801
C3          2.387214    1.538509    2.448738
C4          0.377954    2.859331    2.954022
H10        -1.486982    2.960348   -1.026246
H21         1.014250    1.083006   -1.040500
H22         1.559471    0.135396    0.135408
H23         2.354612    1.375188   -0.349209
H31         3.036481    2.228242    2.316181
H32         2.356760    1.389492    3.292541
H33         2.563208    0.703601    2.073873
H41        -0.488344    2.829957    2.921952
H42         0.589466    2.693343    3.841297
H43         0.485297    3.754710    2.758037
N1          1.062159    1.954256    2.058194
N2         -0.384716    2.597701    0.447557
O1         -0.777815    2.387172   -0.910794
--------
abc2xyz.c
--------
#include <stdlib.h>
#include <stdio.h>
#include <strings.h>
#include <math.h>

#define MAXLINLEN 81
#define MAXLABLEN 8
char line [MAXLINLEN+1];
char lab [MAXLABLEN+1];

/*
* prototype for utility routine
*/
char *fgetln (char *s, int n, FILE *str);

/*
* convert crystal structure fractional coordinates to cartesian
*/
int main (int argc, char *argv []) {

  double a, b, c;
  double alpha, beta, gamma;
  double z, x [2], y [3];
  double yy;
  char *tok, *sep = "\t ,";
  double degrad = M_PI / 180.0;
  double vol;

/*
* first line of input is unit cell dimensions and angles in degrees
*/
  fgetln (line, MAXLINLEN, stdin);
  sscanf (line, "%lf %lf %lf %lf %lf %lf", &a, &b, &c, &alpha, &beta,
&gamma);
  alpha *= degrad;
  beta *= degrad;
  gamma *= degrad;

/*
* put 'a' along the z axis
*/
  z = a;

/*
* put 'b' in the zx plane
*/
  x [0] = b * sin (gamma);
  x [1] = b * cos (gamma);

/*
* <c,a> = |c| |a| cos (beta)
* <c,b> = |c| |b| cos (alpha)
* from this 'c' can be determined
*/
  yy = (cos (alpha) - cos (gamma) * cos (beta)) / (sin (gamma) * sin
(beta));
  y [0] = c * sin (beta) * yy;
  y [1] = c * sin (beta) * sqrt (1.0 - yy * yy);
  y [2] = c * cos (beta);

/*
* volume = (a X b) . c
* with the conventions above, (a X b) is along the y axis
*/
  vol = z * x [0] * y [1];
  printf ("Unit cell volume = %8.4lf\n", vol);

/*
* the rest of the file is lines of atom label and fractional coordinates
*/
  while (fgetln (line, MAXLINLEN, stdin)) {
    fprintf (stderr, "%s\n", line);
    (void) strncpy (lab, strtok (line, sep), MAXLABLEN);
    tok = strtok (0, sep); a = atof (tok);
    tok = strtok (0, sep); b = atof (tok);
    tok = strtok (0, sep); c = atof (tok);
    a = a * z + b * x [1] + c * y [2];
    b = b * x [0] + c * y [0];
    c = c * y [1];
    printf ("%-8s %11.6lf %11.6lf %11.6lf\n", lab, a, b, c);
    }

  return 0;
  }

/*
* fgetln
* like fgets but always reads a full line
* newline character is never returned in s
*/
char *fgetln (char *s, int n, FILE *str) {

  int ch, nc;

  nc = 0;
  ch = getc (str);
  while ((ch != EOF) && (ch != '\n') && (nc < n-1)) {
    s [nc++] = (char) ch;
    ch = getc (str);
    }
  s [nc] = 0;

/*
* if EOF and no characters read, return null
*/
  if ((ch == EOF) && (nc == 0)) s = 0;

/*
* if a newline hasn't been read, keep reading
*/
  while ((ch != EOF) && (ch != '\n')) {
    ch = getc (str);
    }

  return s;
  }
--------
Dave Heisterberg

5-
I dont know if this helps. it depends on what software you have at
your disposal. I've solved the same problem by writing a small
spreadsheet program to convert from crystalographic coordinates
to x,y,z's. Unfortunatly the one I built was specific to the molecule
I was working on but it should be pretty trivial, its just a matrix
multiplication. The I used Gaussian's newzmat to convert this file
to pdf which spartan could then read.
I dont know if this helps
Larry Cuffe

6-
A  FORTRAN PROGRAM

C    program convert

C   This program is able to convert fractional X-Ray coordinates
C   to cartesian orthonormal coordinates

C   Eduardo Lemos de Sa

      REAL*8 AA, BB, CC, FACTOR, ALPHA, BETHA, GAMMA
      REAL*8 XX, YY, ZZ, XXCART, YYCART, ZZCART
      REAL*8 PI
      INTEGER NCOUNT
      CHARACTER TITLE*80, ATOM*5
C
C  FACTOR IS THE NUMBER THAT SHOULD MULTIPLIED THE FRACTIONAL COORDINATE

      READ(5,10) TITLE
 10   FORMAT(A80)
      READ(5,*) AA, BB, CC, FACTOR
 20   FORMAT(4(D14.7))
      READ(5,*) ALPHA, BETHA, GAMMA
 30   FORMAT(3(F10.3))
      READ(5,*) NCOUNT
 40   FORMAT(I4)

C  SETS THE PI (3.141592..) VALUE
      PI=4*ATAN(1.0D0)
C
C  CONVERT THE ANGLE (DEG - > RADIAN)

      ALPHA=ALPHA*PI/180.0D0
      BETHA=BETHA*PI/180.0D0
      GAMMA=GAMMA*PI/180.0D0

      WRITE(6,40) NCOUNT
      WRITE(6,10) TITLE
C
 150  FORMAT(A2, 3F10.5)
C  BEGINS THE READ DATA INPUT (TITLE)

      DO 100 J=1,NCOUNT

         READ(5,150) ATOM, XX, YY, ZZ
         XX=XX*AA*FACTOR
         YY=YY*BB*FACTOR
         ZZ=ZZ*CC*FACTOR
         XXCART=XX+YY*COS(GAMMA)+ZZ*COS(BETHA)
         YYCART=YY*SIN(GAMMA)-ZZ*SIN(BETHA)*COS(ALPHA)
         ZZCART=ZZ*SIN(BETHA)*SIN(ALPHA)
         WRITE(6,150) ATOM, XXCART, YYCART, ZZCART

 100  CONTINUE

      STOP
      END

 INPUT MODEL
Dados provenientes do raios-X de Giovana - dimero Ti
10.8611 10.5932 15.3648 1.000D-4
90.000 102.826 90.000
4
ti   1139.0     967.0      346.0
cl   3057.0     546.0     1406.0
o     388.0    -794.0      596.0
o     304.0    1635.0     1170.0

OUTPUT MODEL
    4
Dados provenientes do raios-X de Giovana - dimero Ti
ti   1.11906   1.02436    .51836
cl   2.84067    .57839   2.10639
o     .21812   -.84110    .89289
o    -.06889   1.73199   1.75283

EDUARDO LEMOS DE SÁ