Coder Social home page Coder Social logo

jflamant / sphericalemc Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 593 KB

A Python implementation of the spherical EMC algorithm -- An algorithm for intensity reconstruction in single-particle imaging experiments

License: GNU General Public License v3.0

Python 100.00%

sphericalemc's Introduction

spherical EMC

A Python implementation of the spherical Expansion-Maximization-Compression algorithm -- An algorithm for intensity reconstruction in single-particle imaging experiments

The code comes in addition of the paper

Flamant, J., Bihan, N.L., Martin, A.V. and Manton, J.H., 2016. A spherical harmonic approach to single particle imaging with X-ray lasers.

available at http://arxiv.org/abs/1602.01301

Requirements

Code has been tested for Python 3.5, but it should work for any Python 3.x version. Several packages are required:

Overview

This repository contains several Python codes to simulate diffraction patterns, and reconstruct the 3D intensity function using the shell-by-shell approach developed in the paper.

  • dataGeneration/ contains routines to generate diffraction patterns on a specified spherical shell.
  • requiredPatterns/ contains a script to estimate the required number of diffraction patterns to reconstruct the intensity.
  • sphericalEMC/ contains the spherical EMC code, as well as the shell realignment procedures.

Usage example

  1. Select one shell index, and compute the theoretical shell intensity using compute3DIntensityShell.py
  2. Use generateSamplesShell.py to generate nbSamples on this shell, that is nbSamples 'diffraction patterns' on this shell. (These are Poisson realization of the intensity at randomly rotated versions of the detector reference sampling points)
  3. Use sphericalEMC.py to reconstruct the shell intensity, up to some specified bandlimit $L$.
  4. Iterate this procedure (which can be parallelized) for successive shells, and realign the shells using shellAlignment.py.

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.