# Any crystallography and material structure package suggestions?

**URL:** <https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028>\
**Category:** Chemistry\
**Tags:** physics\
**Created:** [June 16, 2021, 3:37pm UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028 "2021-06-16T15:37:43Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![wujinq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wujinq/32/22221_2.png) [@wujinq](https://discourse.julialang.org/u/wujinq)\
**Post date:** [June 16, 2021, 3:37pm UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/1 "2021-06-16T15:37:43Z")

</div>

Is there any existing package that helps user read crystal structure from, say, VASP POSCAR or CONTCAR files and determin crystallography data like the space group and the point group?

---

<div class="post-metadata">

**Author:** ![frtps](https://avatars.discourse-cdn.com/v4/letter/f/73ab20/32.png) [@frtps](https://discourse.julialang.org/u/frtps)\
**Post date:** [June 17, 2021, 12:32am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/2 "2021-06-17T00:32:32Z")

</div>

[CrystalInfoFramework.jl](https://github.com/jamesrhester/CrystalInfoFramework.jl) provides a way to read in CIF (and mmCIF) files, which is the normal way crystallographic structures are communicated. Not sure if that helps with VASP.

---

<div class="post-metadata">

**Author:** ![antoine-levitt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/antoine-levitt/32/4008_2.png) [@antoine-levitt](https://discourse.julialang.org/u/antoine-levitt)\
**Post date:** [June 17, 2021, 6:52am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/3 "2021-06-17T06:52:12Z")

</div>

There’s a bunch of good python packages for that and there’s little point in rewriting them in Julia so I’d just use Pycall

---

<div class="post-metadata">

**Author:** ![jgreener64](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jgreener64/32/2483_2.png) [@jgreener64](https://discourse.julialang.org/u/jgreener64)\
**Post date:** [June 17, 2021, 10:43am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/4 "2021-06-17T10:43:23Z")

</div>

[BioStructures.jl](https://github.com/BioJulia/BioStructures.jl) can read mmCIF files.

---

<div class="post-metadata">

**Author:** ![mfh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mfh/32/13787_2.png) [@mfh](https://discourse.julialang.org/u/mfh)\
**Post date:** [June 18, 2021, 6:13am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/5 "2021-06-18T06:13:16Z")

</div>

👍 on what @antoine-levitt said. In DFTK we use [ASE](https://wiki.fysik.dtu.dk/ase/) for all input parsing and the integration is pretty smooth. This is the user perspective: [https://juliamolsim.github.io/DFTK.jl/stable/guide/input\_output/](https://juliamolsim.github.io/DFTK.jl/stable/guide/input_output/) and the code is [src/external/load\_from\_file.jl](https://github.com/JuliaMolSim/DFTK.jl/blob/master/src/external/load_from_file.jl) and [src/external/ase.jl](https://github.com/JuliaMolSim/DFTK.jl/blob/master/src/external/ase.jl) if you are interested.

---

<div class="post-metadata">

**Author:** ![brainandforce](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brainandforce/32/211054_2.png) [@brainandforce](https://discourse.julialang.org/u/brainandforce)\
**Post date:** [July 17, 2023, 7:58pm UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/6 "2023-07-17T19:58:38Z")

</div>

I’ve been working on a package, [Electrum.jl](https://github.com/brainandforce/Electrum.jl) that should incorporate at least some of the functionality that may be needed here. I don’t have tools yet for symmetry, but it can work with VASP and abinit outputs, XYZ and XSF files, etc. I’m aiming to integrate it with [AtomsBase.jl](https://github.com/JuliaMolSim/AtomsBase.jl) in the near future.

I’m not familiar with the Python ecosystem for solid-state chemistry, as my training was primarily on C/MATLAB, but I think Electrum.jl aims to incorporate a good amount of the functionality that ASE/pymatgen provides.

---

<div class="post-metadata">

**Author:** ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)\
**Post date:** [July 18, 2023, 3:39am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/7 "2023-07-18T03:39:34Z")

</div>

> **[GitHub - libAtoms/ExtXYZ.jl: Extended XYZ read/write support for Julia](https://github.com/libAtoms/ExtXYZ.jl)**
>
> Extended XYZ read/write support for Julia. Contribute to libAtoms/ExtXYZ.jl development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![cortner](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cortner/32/204_2.png) [@cortner](https://discourse.julialang.org/u/cortner)\
**Post date:** [July 18, 2023, 5:10am UTC](https://discourse.julialang.org/t/any-crystallography-and-material-structure-package-suggestions/63028/8 "2023-07-18T05:10:15Z")

</div>

Electrum looks interesting- thanks for mentioning it.
