class Chem::Structure::Builder
- Chem::Structure::Builder
- Reference
- Object
Defined in:
chem/core/structure/builder.crConstructors
Instance Method Summary
- #atom(name : String, serial : Int32, coords : Spatial::Vec3, element : Element, **options) : Atom
- #atom(name : String, serial : Int32, coords : Spatial::Vec3, **options) : Atom
-
#atom(element : Element | Symbol, coords : Spatial::Vec3, **options) : Atom
Creates an
Atom
of element at the given coordinates. - #atom(name : String, coords : Spatial::Vec3, **options) : Atom
- #atom(index : Int) : Atom
- #atom(coords : Spatial::Vec3, **options) : Atom
- #atom?(index : Int) : Atom | Nil
- #bond(name : String, other : String, order : BondOrder = :single) : Bond
- #bond(i : Int, j : Int, order : BondOrder = :single, aromatic : Bool = false) : Bond
- #bonds(bond_table : Hash(Tuple(Int32, Int32), BondOrder)) : Nil
- #build : Structure
- #cell(a : Spatial::Vec3, b : Spatial::Vec3, c : Spatial::Vec3) : Spatial::Parallelepiped
- #cell(a : Float64, b : Float64, c : Float64) : Spatial::Parallelepiped
- #cell(cell : Spatial::Parallelepiped | Nil)
- #cell : Spatial::Parallelepiped | Nil
- #cell! : Spatial::Parallelepiped
- #chain(id : Char) : Chain
- #chain : Chain
- #chain(id : Char, & : self -> ) : Nil
- #chain(& : self -> ) : Nil
- #current_chain : Chain | Nil
- #current_residue : Residue | Nil
- #expt(expt : Structure::Experiment | Nil)
- #residue(name : String, number : Int32, inscode : Char | Nil = nil) : Residue
- #residue(name : String) : Residue
- #residue : Residue
- #residue(name : String, number : Int32, inscode : Char | Nil = nil, & : self -> ) : Nil
- #residue(name : String, & : self -> ) : Nil
- #secondary_structure(i : Tuple(Char, Int32, Char | Nil), j : Tuple(Char, Int32, Char | Nil), type : Protein::SecondaryStructure) : Nil
- #secondary_structure(ri : Residue, rj : Residue, type : Protein::SecondaryStructure)
- #title(title : String)
Constructor Detail
def self.new(guess_bonds : Bool = false, guess_names : Bool = false, use_templates : Bool = false, **options)
#
Instance Method Detail
def atom(name : String, serial : Int32, coords : Spatial::Vec3, element : Element, **options) : Atom
#
Creates an Atom
of element at the given coordinates. Extra
named arguments are forwarded to the Atom
constructor.
The atom name will set to the element's symbol followed by the number of atoms with the same element within the current residue.
structure = Chem::Structure.build do |builder|
builder.residue
builder.atom Chem::PeriodicTable::H, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::C, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::H, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::H, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::C, Chem::Spatial::Vec3.zero
builder.residue
builder.atom Chem::PeriodicTable::H, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::C, Chem::Spatial::Vec3.zero
builder.atom Chem::PeriodicTable::N, Chem::Spatial::Vec3.zero
end
structure.atoms.map(&.name) # => ["H1", "C1", "H2", "H3", "C2", "H1", "C1", "N1"]
Note that the atom names resets on a new residue.
WARNING This method assumes that residues are created in
sequence, so calling #residue
will always create a new residue,
not retrieving a preceding one. Otherwise, the order of the atom
names will be reset.
def secondary_structure(i : Tuple(Char, Int32, Char | Nil), j : Tuple(Char, Int32, Char | Nil), type : Protein::SecondaryStructure) : Nil
#