Skip to main content

StructureFeatures

Trait StructureFeatures 

Source
pub trait StructureFeatures {
    // Required methods
    fn decode_amino_acids(&self, device: &Device) -> Result<Tensor>;
    fn encode_amino_acids(&self, device: &Device) -> Result<Tensor>;
    fn create_cb(&self, device: &Device) -> Result<Tensor>;
    fn featurize_lmpnn(&self, device: &Device) -> Result<ProteinFeatures>;
    fn get_res_index(&self) -> Vec<u32>;
    fn to_numeric_backbone_atoms(&self, device: &Device) -> Result<Tensor>;
    fn to_numeric_atom37(&self, device: &Device) -> Result<Tensor>;
    fn to_numeric_ligand_atoms(
        &self,
        device: &Device,
    ) -> Result<(Tensor, Tensor, Tensor)>;
}
Expand description

. Trait defining Protein->Tensor utilities useful for Machine Learning

Required Methods§

Source

fn decode_amino_acids(&self, device: &Device) -> Result<Tensor>

Convert amino acid sequence to numeric representation

Source

fn encode_amino_acids(&self, device: &Device) -> Result<Tensor>

Convert amino acid sequence to numeric representation

Source

fn create_cb(&self, device: &Device) -> Result<Tensor>

Convert amino acid sequence to numeric representation

Source

fn featurize_lmpnn(&self, device: &Device) -> Result<ProteinFeatures>

Prepare for ProteinMPNN

Source

fn get_res_index(&self) -> Vec<u32>

Get residue indices

Source

fn to_numeric_backbone_atoms(&self, device: &Device) -> Result<Tensor>

Extract backbone atom coordinates (N, CA, C, O)

Source

fn to_numeric_atom37(&self, device: &Device) -> Result<Tensor>

Extract all atom coordinates in standard ordering

Source

fn to_numeric_ligand_atoms( &self, device: &Device, ) -> Result<(Tensor, Tensor, Tensor)>

Extract ligand atom coordinates and properties

Implementations on Foreign Types§

Source§

impl StructureFeatures for AtomCollection

Source§

fn decode_amino_acids(&self, device: &Device) -> Result<Tensor>

Decode amino acid integer indices back to one-letter codes as ASCII bytes.

This is the inverse of encode_amino_acids. It iterates over the amino acid residues in the structure, converts each three-letter residue name to a one-letter code, then encodes it as an integer via aa1to_int, decodes it back via int_to_aa1, and returns the ASCII byte values in a tensor of shape [1, n] where n is the number of amino acid residues.

Unknown residues map to the sentinel index 20, which decodes to 'X' (ASCII 88).

Source§

fn encode_amino_acids(&self, device: &Device) -> Result<Tensor>

Convert amino acid sequence to numeric representation

Source§

fn create_cb(&self, device: &Device) -> Result<Tensor>

Calculate CB for each residue

Source§

fn get_res_index(&self) -> Vec<u32>

Get residue indices

Source§

fn to_numeric_backbone_atoms(&self, device: &Device) -> Result<Tensor>

create numeric Tensor of shape [1, , 4, 3] where the 4 is N/CA/C/O

Source§

fn to_numeric_atom37(&self, device: &Device) -> Result<Tensor>

create numeric Tensor of shape [1, , 37, 3]

Source§

fn featurize_lmpnn(&self, device: &Device) -> Result<ProteinFeatures>

Source§

fn to_numeric_ligand_atoms( &self, device: &Device, ) -> Result<(Tensor, Tensor, Tensor)>

Source§

impl StructureFeatures for Model

Delegate all StructureFeatures methods to an AtomCollection adapter.

This lets callers pass a &Model directly to ML featurisation routines without manually calling AtomCollection::from(&model) at every call site.

Source§

fn decode_amino_acids(&self, device: &Device) -> Result<Tensor>

Source§

fn encode_amino_acids(&self, device: &Device) -> Result<Tensor>

Source§

fn create_cb(&self, device: &Device) -> Result<Tensor>

Source§

fn featurize_lmpnn(&self, device: &Device) -> Result<ProteinFeatures>

Source§

fn get_res_index(&self) -> Vec<u32>

Source§

fn to_numeric_backbone_atoms(&self, device: &Device) -> Result<Tensor>

Source§

fn to_numeric_atom37(&self, device: &Device) -> Result<Tensor>

Source§

fn to_numeric_ligand_atoms( &self, device: &Device, ) -> Result<(Tensor, Tensor, Tensor)>

Implementors§