Trajectory
Chemfiles.Trajectory — TypeA Trajectory represents a simulation file on the hard drive. It can read or write one or many Frames to this file. The file format can be automatically determined from the extention, or manually specified. Writing to a Trajectory is buffered, which means that one needs to close() the trajectory and flush the buffer before being able to read the file again.
Chemfiles.Trajectory — TypeTrajectory(path::AbstractString) -> Trajectory
Trajectory(path::AbstractString, mode::Char) -> Trajectory
Trajectory(
path::AbstractString,
mode::Char,
format::AbstractString
) -> Trajectory
Opens the trajectory file at the given path.
The opening mode can be 'r' for read, 'w' for write or 'a' for append, and defaults to 'r'. The optional format parameter give a specific file format to use when opening the file.
Chemfiles.Trajectory — MethodTrajectory(f::Function, args...) -> Any
Apply the function f to the result of Trajectory(args...) and close the resulting trajectory upon completion, similar to open(f, args...).
Base.close — Methodclose(trajectory::Trajectory)
Close a trajectory. This function flushes any buffer content to the hard drive, and frees the associated memory. Necessary when running on the REPL to finish writing.
Base.isopen — Methodisopen(trajectory::Trajectory) -> Bool
Check if the trajectory is open.
Base.length — Methodlength(trajectory::Trajectory) -> UInt64
Get the number of steps (the number of frames) in a trajectory.
Base.read! — Methodread!(trajectory::Trajectory, frame::Frame)
Read the next step of the trajectory data into the preexisting Frame structure.
Base.read — Methodread(trajectory::Trajectory) -> Frame
Read the next step of the trajectory, and return the corresponding Frame.
Base.size — Methodsize(trajectory::Trajectory) -> UInt64
Get the number of steps (the number of frames) in a trajectory.
Base.take! — Methodtake!(trajectory::Trajectory) -> Vector{UInt8}
Obtain the memory buffer of a in-memory trajectory writer as a Vector{UInt8}, without copying.
If more data is written to the trajectory, the buffer is invalidated.
Base.write — Methodwrite(trajectory::Trajectory, frame::Frame)
Write the given frame to the trajectory.
Chemfiles.MemoryTrajectory — FunctionMemoryTrajectory(format::AbstractString) -> Trajectory
MemoryTrajectory(
format::AbstractString,
data::Union{Nothing, AbstractString, Vector{UInt8}}
) -> Trajectory
Open a trajectory that read in-memory data as if it were a formatted file.
The format of the data is mandatory, and must match one of the known formats. If data is nothing, this function creates a memory writer, the resulting data can be retrieved with buffer. Else, this function creates a memory reader using the given data.
Chemfiles.path — Methodpath(trajectory::Trajectory) -> String
Get the path used to open a trajectory.
Chemfiles.read_step! — Methodread_step!(
trajectory::Trajectory,
step::Integer,
frame::Frame
)
Read the given step of the trajectory into an preexisting Frame structure.
Chemfiles.read_step — Methodread_step(trajectory::Trajectory, step::Integer) -> Frame
Read the given step of the trajectory, and return the corresponding Frame.
Chemfiles.set_cell! — Methodset_cell!(trajectory::Trajectory, cell::UnitCell)
Set the cell associated with a trajectory. This cell will be used when reading and writing the file, replacing any unit cell in the file.
Chemfiles.set_topology! — Functionset_topology!(trajectory::Trajectory, path::AbstractString)
set_topology!(
trajectory::Trajectory,
path::AbstractString,
format::AbstractString
)
Set the Topology associated with a trajectory by reading the first frame of the file at path; and extracting the topology of this frame. The optional format parameter can be used to specify the file format.
Chemfiles.set_topology! — Methodset_topology!(trajectory::Trajectory, topology::Topology)
Set the Topology associated with a trajectory. This topology will be used when reading and writing the file, replacing any topology in the file.
Chemfiles.DataBuffer — TypeData (either binary or string) used for in-memory reading of trajectory
DataBuffer = Union{AbstractString,Vector{UInt8},Nothing}