Giter VIP home page Giter VIP logo

jbhopkins / bioxtasraw Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 4.0 230.31 MB

BioXTAS RAW is a GUI based, free, open-source Python program for reduction and analysis of small-angle solution scattering (SAS) data.

Home Page: https://bioxtas-raw.readthedocs.io/en/latest/

License: GNU General Public License v3.0

Shell 0.01% TypeScript 0.03% Python 99.88% Cython 0.08%
sans sas saxs small-angle-neutron-scattering small-angle-scattering small-angle-xray-scattering

bioxtasraw's Introduction

BioXTAS RAW

BioXTAS RAW is a program for analysis of solution Small-Angle Scattering (SAS) data. The software enables: creation of 1D scattering profiles from 2D detector images, standard data operations such as averaging and subtraction, analysis of radius of gyration (Rg) and molecular weight, and advanced analysis using GNOM and DAMMIF as well as electron density reconstructions using DENSS. It also allows easy processing of inline SEC-SAXS data and data deconvolution using the evolving factor analysis (EFA) or the regularized alternating least squares (REGALS) methods.

Install instructions: http://bioxtas-raw.readthedocs.io/en/latest/install.html

User guides: http://bioxtas-raw.readthedocs.io/

To contact: https://bioxtas-raw.readthedocs.io/en/latest/help.html

Features

  • Calibrate, mask, radially integrate, and normalize 2D images to make 1D scattering profiles
  • Average, subtract, merge, rebin, and interpolate scattering profiles
  • Easily process in-line SEC-SAXS data
  • Calculate radius of gyration (Rg) and I(0) via Guinier fit
  • Calculate the molecular weight via I(0) comparison to standards, absolute calibration, correlation volume, and corrected Porod volume
  • Run GNOM, DAMMIF, DAMAVER, DAMCLUST, and AMBIMETER (requires ATSAS installation)
  • Electron density reconstructions using DENSS
  • Deconvolve SEC-SAXS data using singular value decomposition (SVD) and evolving factor analysis (EFA)
  • Deconvolve SAXS data using regularized alternating least squares (REGALS)
  • Can read >25 image formats including: Pilatus, CBF, HDF5, Eiger, Quantum, Mar345, ESRF EDF, SAXSLab300,16 bit TIF, 32 bit TIF, Bruker, Rigaku SAXS
  • And more . . .!

bioxtasraw's People

Contributors

a-detiste avatar jbhopkins avatar rgillilan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bioxtasraw's Issues

Incorrect unit labels in IFT and GNOM windows

When q units are changed from A-1 to nm-1 in the Radial Averaging panel, the old units of (A) still appear in the column labels of both the BIFT and GNOM windows. In other places, I think unit labels have simply been removed elsewhere, so that's a quick fix to avoid confusion. Longer term, probably plots should have unit labels.

request for new version release

When building a docker image and and installing BioXTAS from pre-downloaded 2.2.2.zip file I have this problem:

Python 3.10.13 | packaged by conda-forge | (main, Oct 26 2023, 17:57:40) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bioxtasraw.RAWAPI as raw
WARNING:silx.opencl.common:The module pyOpenCL has been imported but can't be used here
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/miniforge3/lib/python3.10/site-packages/bioxtasraw/RAWAPI.py", line 63, in <module>
    import bioxtasraw.DENSS as DENSS
  File "/miniforge3/lib/python3.10/site-packages/bioxtasraw/DENSS.py", line 62, in <module>
    import bioxtasraw.denss_resources.resources as resources
ModuleNotFoundError: No module named 'bioxtasraw.denss_resources'
>>> 

When building a docker image and installing BioXTAS from main things are working...

Python 3.10.13 | packaged by conda-forge | (main, Oct 26 2023, 17:57:40) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bioxtasraw.RAWAPI as raw
WARNING:silx.opencl.common:The module pyOpenCL has been imported but can't be used here

However, because of the large size of the repo I sometimes run into problems cloning during a docker build. Would you mind cutting a new release from main?

thanks

UnboundLocalError in SECM.py in averageFrame method

Here's the traceback:

Traceback (most recent call last):

  File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
    exec(code, globals, locals)

  File c:\users\anton\desktop\dio\h5read.py:104
    avg_buff, success, error = series.averageFrames(buff_range, 'sub', 'CorMap', 0.01, 'Bonferroni', forced = True)

  File ~\AppData\Local\Programs\Python\Python311\Lib\site-packages\bioxtasraw\SECM.py:1528 in averageFrames
    avg_list = sasm_list

UnboundLocalError: cannot access local variable 'sasm_list' where it is not associated with a value

Basically sasm_list is only defined in the case of an unsubtracted series at line 1485:

if series_type == 'unsub':
        sasm_list = [self._sasm_list[idx] for idx in frame_idx]

I quickly fixed it by adding this to handle my case:

elif series_type == 'sub':
        sasm_list = [self.subtracted_sasm_list[idx] for idx in frame_idx]

Although maybe you want to fix it properly to handle all possible cases.
Also, the parameters' default values for this method aren't set as they are described in the documentation, but that's also an easy fix.

Getting `undefined symbol: __aarch64_ldadd4_acq_rel` when running in docker container

This may or may not be a bioxtasraw issue, but I'm at a bit of a lose on how to fix this.... or even what the problem is.

This is the error:

>>> import bioxtasraw.RAWAPI as raw
dlopen("/home/app/.cache/pocl/kcache/BE/BJKPFDOLMJHLOMHFOOHOPFAFADFHBADNAHCNP/check_atomic32/0-0-0/check_atomic32.so") failed with '/home/app/.cache/pocl/kcache/BE/BJKPFDOLMJHLOMHFOOHOPFAFADFHBADNAHCNP/check_atomic32/0-0-0/check_atomic32.so: undefined symbol: __aarch64_ldadd4_acq_rel'.
note: missing symbols in the kernel binary might be reported as 'file not found' errors.
Aborted

Background:

I am attempting to build a Docker image that includes Miniconda3 and the BioXTAS command line tools (no GUI needed). I am developing on an M3 Apple machine within Docker Desktop. The Docker builder supports these architectures:

arm64
amd64
amd64/v2
riscv64
ppc64le
s390x
386
mips64le
mips64
arm/v7
arm/v6

This is the list of packages that I install before building BioXTAS:

dependencies:
  - pocl
  - pillow
  - six
  - wheel
  - numpy
  - scipy
  - matplotlib
  - python-igraph
  - numba
  - h5py
  - cython
  - numexpr
  - reportlab
  - dbus-python
  - fabio
  - pyfai
  - hdf5plugin
  - mmcif_pdbx
  - svglib
  - libmamba

and this is a snippet from the Dockerfile if you're interested:

RUN apt-get update && \
    apt-get install -y zip build-essential libarchive13

# Copy the source ZIP file
COPY bioxtas/bioxtasraw-2.2.2.zip /tmp/bioxtasraw-2.2.2.zip

# Install BioXYAS from source
WORKDIR /tmp
RUN unzip bioxtasraw-2.2.2.zip && \
    cd bioxtasraw-2.2.2 && \
    python3 setup.py build_ext --inplace && \
    pip3 install . && \
    cd .. && \
    rm bioxtasraw-2.2.2.zip && \
    rm -rf bioxtasraw-2.2.2

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.