Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonOresten committed May 31, 2024
1 parent c91b2a6 commit 0f29680
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,13 @@
[![Build Status](https://github.com/MurrellGroup/AssigningSecondaryStructure.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/MurrellGroup/AssigningSecondaryStructure.jl/actions/workflows/CI.yml?query=branch%3Amain)
[![Coverage](https://codecov.io/gh/MurrellGroup/AssigningSecondaryStructure.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/MurrellGroup/AssigningSecondaryStructure.jl)

This package provides an easy way to assign secondary structure to proteins using a simplified version of the [DSSP](https://swift.cmbi.umcn.nl/gv/dssp/) algorithm. The code was ported from the [PyDSSP](https://github.com/ShintaroMinami/PyDSSP) package. See the original Python package for more information on the differences between this implementation and the original DSSP algorithm
AssigningSecondaryStructure provides a way to assign loops, helices, and strands to protein backbones using a simplified version of the [DSSP](https://swift.cmbi.umcn.nl/gv/dssp/) algorithm.

This is not a complete implementation of DSSP, as it only assigns coils/loops (represented as `1`), helices (`2`), and strands (`3`). It is not as accurate as the original, but is significantly faster. For the full DSSP algorithm, check out [BioStructures.jl](https://github.com/BioJulia/BioStructures.jl) or [ProteinSecondaryStructures.jl](https://github.com/m3g/ProteinSecondaryStructures.jl), which both use the [DSSP_jll.jl](https://docs.juliahub.com/General/DSSP_jll/stable/) package that was auto-generated using [BinaryBuilder.jl](https://github.com/JuliaPackaging/BinaryBuilder.jl).
Both the [BioStructures.jl](https://github.com/BioJulia/BioStructures.jl) and [ProteinSecondaryStructures.jl](https://github.com/m3g/ProteinSecondaryStructures.jl) packages provide interfaces for more sophisticated secondary structure assignment, but they both call the [DSSP_jll.jl](https://docs.juliahub.com/General/DSSP_jll/stable/) binary under the hood, which requires writing structures to a file, leading to significant overhead.

## Installation

The package can be installed using the Julia package manager:

```julia
using Pkg;
Pkg.add("AssigningSecondaryStructure")
```
The package is registered in the General registry, and can be installed from the REPL with `]add AssigningSecondaryStructure`.

## Usage

Expand All @@ -33,8 +28,8 @@ julia> assign_secondary_structure("test/data/1ZAK.pdb") # 2 chains
[1, 1, 1, 1, 3, 3, 3, 3, 3, 3 2, 2, 2, 2, 2, 2, 2, 1, 1, 1]
```

Note: The `assign_secondary_structure` function can also take a vector of atom coordinate arrays of size (3, 4, L) to avoid read/write time, in cases where the atom coordinates are already loaded. The first dimension is the x, y, and z coordinates, the second dimension is the atom type (N, CA, C, O), and the third dimension is the number of residues.
The `assign_secondary_structure` function can also take a vector of atom coordinate arrays of size (3, 4, L), in cases where the atom coordinates are already loaded. The first axis is for the x, y, and z coordinates, the second axis is for the atom types (N, CA, C, O), and the third axis is for of residues.

## Acknowledgements

This package was ported from the [PyDSSP](https://github.com/ShintaroMinami/PyDSSP) package, created by Shintaro Minami. Creating this package would have been much more difficult without the original Python code as reference.
This package was originally ported from the [PyDSSP](https://github.com/ShintaroMinami/PyDSSP) package, created by Shintaro Minami. The code has since been modified to be more Julia-like and efficient, at the cost of differentiability.

0 comments on commit 0f29680

Please sign in to comment.