Giter Club home page Giter Club logo

slicem's Introduction

SLICEM

Compare and cluster 2D class averages of multiple distinct structures from cryo-EM data based on common lines.
Example mrcs and star file provided in /data, corresponding cryo-EM data at EMPIAR-10268.
See manual.pdf for a brief tutorial.

New in 2021_Mar_7 update

  • Default scoring now uses FT of projections, use -d Real for real space projections
  • GUI now includes option to remove nodes from the graph and input desired # of clusters
    upcoming updates
  • Improved scoring and clustering
  • GPU support

New in 2020_Nov_6 update

  • Fixed memory error with multiprocessing
  • Added option to downscale class averages -s (--> faster processing)
  • Added Wasserstein (Earth mover) distance
  • Removed Jupyter Notebook (out of date)

Installation

Download the software and create a conda environment -

git clone https://github.com/marcottelab/SLICEM.git
conda env create -f environment.yml
conda activate SLICEM 
source deactivate #to return to base env

Usage

First generate a score file using slicem.py

usage: SLICEM_DEV.py [-h] -i MRC_INPUT -o OUTPATH
                     [-m {Euclidean,L1,cosine,EMD,correlate}]
                     [-s SCALE_FACTOR] [-c NUM_WORKERS] [-d {Fourier,Real}]
                     [-t {full,valid}] [-a ANGULAR_SAMPLING]

compare similarity of 2D class averages based on common lines

optional arguments:
  -h, --help            show this help message and exit
  -i MRC_INPUT, --input MRC_INPUT
                        path to mrcs file of 2D class averages
  -o OUTPATH, --outpath OUTPATH
                        path for output files
  -m {Euclidean,L1,cosine,EMD,correlate}, --metric {Euclidean,L1,cosine,EMD,correlate}
                        choose scoring method, default Euclidean
  -s SCALE_FACTOR, --scale_factor SCALE_FACTOR
                        scale factor for downsampling. (e.g. -s 2 converts 200pix box --> 100pix box)
  -c NUM_WORKERS, --num_workers NUM_WORKERS
                        number of CPUs to use, default 1
  -d {Fourier,Real}, --domain {Fourier,Real}
                        Fourier or Real space, default Fourier
  -t {full,valid}, --translate {full,valid}
                        indicate size of score vector, numpy convention, default full
  -a ANGULAR_SAMPLING, --angular_sampling ANGULAR_SAMPLING
                        angle sampling for 1D projections in degrees, default 5

command line example

(SLICEM): python slicem.py -i path/to/input.mrc -o path/to/output/ -c 8

alternative example if running remotely

(SLICEM): nohup python slicem.py -i path/to/input.mrc -o path/to/output/ -m L1 -s 2 -c 10 > log.txt &

Next load the scores and class averages into the GUI for clustering. See manual.pdf for more details
python slicem_gui.py


Introduction



Line projections



Comparison of line projections



Clustering



Reference

Separating distinct structures of multiple macromolecular assemblies from cryo-EM projections
https://doi.org/10.1016/j.jsb.2019.107416

Bugs and suggestions

report as a GitHub issue or email [email protected]

slicem's People

Contributors

ericverbeke avatar ksdrew avatar

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.