Skip to content

Bunch of python and bash scripts to greatly simplify CrystFEL-based SFX/SSX data processing

Notifications You must be signed in to change notification settings

marinegor/still-utils

Repository files navigation

  1. Summary
  2. Installation
  3. User requirements
  4. Development

Summary

What's still-utils?

Set of scripts, which are still useful for processing of crystal diffraction data with CrystFEL. These data are quite often produced by either serial synchrotron crystallography (SSX) or serial femtosecond crystallography (SFX). Thereby, each single crystal undergoes 0 angle rotation during diffraction, and the produced images are usually called stil images.

Also, still-utils aims to become a "give-me-your-data-get-HKL-in-return" package for stil diffraction image processing, but it's not there yet.

What kind of scripts?

Scripts are written in bash and python3, and usually have somewhat expected CLI: run script.sh -h and inspect the output.

Installation

In case you don't have pip packaging

You should have python3 and python3-pip installed. If not and you don't have root access to your machine, please ask your systems administrator to do so. In case you have it, run:

# Debian
sudo apt-get install python3 python3-pip

Using python3-pip

Installation is now as simple as:

python3 -m pip install --user git+https://github.com/marinegor/still-utils

This will install the package only, and also add the scripts to your "$PATH", meaning that they will be available now as any other Linux utility. In case you want to edit scripts manually, it's likely you'll find them here:

ls ~/.local/bin

Manually

Clone the repository [outdated]

I prefer having all my repos in ~/github, so here is the command:

mkdir -p ~/github/still-utils && git clone https://github.com/marinegor/still-utils.git ~/github/still-utils

Run sudo apt-get install git, in case you don't have it yet.

Install necessary python3 packages [outdated]

Since you now have pip3, just do:

# this will only install packages for current user, not troubling others
python3 -m pip3 install --user .

Additional software

In case you don't have CrystFEL installed, please either refer to its original installation page or refer to my other repo with all crystallography installers.

Configure your PATH variable

Add this to your ~/.bashrc

export PATH="$PATH:~/github/still-utils"

so that you won't have to type full path to the scripts every time.

User requirements (a.k.a. "what should I know to use it?")

If you don't know SSX/SFX data processing but really want to learn it, here is what I'd recommend:

  • make sure you know how to operate command line (e.g. complete The Unix Workbench)
  • learn one text editor that works from command line directly. I strongly recommend vim by completing vimtutor. You can choose nano or emacs, however.
  • make sure you've done wonderful CrystFEL tutorial by Thomas White
  • read CrystFEL's best practices
  • read Thomas White's most recent presentation on data processing
  • and finally please read man indexamajig after you install CrystFEL.

Development

Code style: black

If you want to contribute to the repo, please use pre-commit hooks described in .pre-commit-config.yaml. It was generated by pre-commit utility, so refer to it's documentation when working with it. All requirements necessary for development are described in requirements-dev.txt.

About

Bunch of python and bash scripts to greatly simplify CrystFEL-based SFX/SSX data processing

Topics

Resources

Stars

Watchers

Forks