Skip to content

v2.10.0

Compare
Choose a tag to compare
@github-actions github-actions released this 27 Nov 12:10

ComplexMixtures v2.10.0

Diff since v2.9.0

New feature

The indexing and iteration of a ResidueContributions object was improved, such that:

  1. When a ResidueContributions contain the contributions of more than one residue, the iteration occurs within residues.
  2. When a ResidueContributions contain the contribution of a single residue, iteration occurs over the contributions of this residue.

This implies many facilities and greater consistency in iterations over these objects as, for instance, it is possible to extract (for example) the contribution at a given distance for all residues as:

julia> rc = ResidueContributions(R, select(ats, "protein"))

          Residue Contributions - 274 residues.
     3.51 █     █      █     █            █                                    
     3.27 █              █   █                                                 
     3.03 █     █    █       █            █       █       █                █   
     2.79 █    ██    █ █ █   █            █      ██          █        █    █   
 d   2.55 █ █  ██    █ █ █   █            ██     ██ █  █  █  █  █     █    █   
     2.31 █ █  ██    █ ███   █    ██      ██     ██ █  ██ █  ██ █     █    █   
     2.07 █ █   █  █ █████   █    ██      ██     ██ █  ██ █  █ ██    █     █   
     1.83 █   █ █  █ █████   █    ██      █      ██ █  ██    █ ██     █    █   
     1.59                                                                      
         A1      T33     T66     S98     S130    T162    A194    H226    G258    

julia> id = findfirst(>=(2.0), rc.d) # index of distance for 2.0 Angstroms
26

julia> c_at_2 = [ r[id] for r in rc ]  # collect contributions for all residues at index id
274-element Vector{Float64}:
 0.025795222201597752
 0.027637738073140444
 ⋮
 0.0
 0.03316528568776853

The above is possible because, for example, rc[1] returns a "single-residue" ResidueContributions object, and indexing this object returns the contributions of such residue at each distance.

Similarly, these features allow other Julia functions to be broadcasted over the residue contributions:

getindex.(rc, 26) # returns the contribution at index 26 for all residues (equivalent to the `[ r[id] for r in rc ]` above)
last.(rc) # returns the contribution of each residue at the largest distance
maximum.(rc) # returns the maximum contribution of each residue
findmax.(rc) # returns the maximum and index of the distance maximum of the contributions of each residue

Merged pull requests:

  • New single residue contribution iterator and indexing (#50) (@lmiq)