Release 1.8.4 (2007-04-26)
This release introduces new
features and fixes. CARA can now handle samples and
labeling schemes. At the moment this works well for
assigned spin systems.
- Explicit support of isotopes.
Up to now CARA only knew atom types. With this
release you can set isotopes wherever there was
an atom type (i.e. in procedures steps of
spectrum types). The list is still work in
progress. The repository now stores isotope
labels instead of atom type labels.
- New departments in the CARA
Explorer: Labeling Schemes and Samples. Labeling
Schemes are defined on repository level and will
be deployed as part of future templates. Samples
can optionally be defined on project level where
necessary. There is an implicit default sample
(id=0) for backward compatibility. The purpose
of a sample is to associate ranges of the
sequence with labeling schemes. Non-covered
ranges are implicitly associated with the
default labeling scheme (see below).
- There is a new repository
file format version. The new CARA version can
open existing repositories, but if you want to
go back to an earlier CARA version, some
elements (sample, labeling-scheme) have to be
manually removed. So make a backup before
using this version! (I'm sure you do that
anyway).
- Spectra can now be explicitly
assigned to a sample. There is a corresponding
command in the context menu of the spectrum
explorer.
- Residue types can now exist
in variations, corresponding to the defined
labeling schemes. The residue type explorer
allows you to add isotopes to the atoms of a
residue (command "Add isotope" in the context
menu). The default labeling scheme corresponds
to the plain residue type. It is to be expected
that future templates will contain the most
common residue type variations and labeling
schemes.
- For all assigned spin
systems, the scope will take into account the
correct residue type variation depending on the
displayed spectrum, sample, sample range and
labeling scheme. For un-assigned spin systems
the default labeling scheme is implicitly used.
If anybody has a good idea about how this should
work with un-assigned systems, please tell us.
- The "propose spins" dialog
has now an additional feature. Instead of
letting CARA propose the spin selection, a Lua
script from the repository can be used. For an
example see here.
CARA/Lua API:
- Every occurence of
getAtomType() now has a new corresponding
getIsotope() method. Both methods have an
optional argument "schemaId".
- New methods Atom:addIsotope(
schemaId, isotopeName ) and Atom:removeIsotope(
schemaId ).
- New Lua object Sample
with methods getId(), getName(), getRanges(),
getEnd() and getSchema()
- New method
Spectrum:getSample()
- New methods
Spectrum:getThreshold(), setThreshold(),
setPeakWidth(dim,width),
getPeakWidth(dim)
- New method:
PeakList:createModel() -> PeakModel
- New method:
PeakList:getModel( [id] ) -> PeakModel, invalid
or missing id returns default model
- New method:
PeakList:getModels() -> Table[ id, PeakModel ],
default model with ID=0
- New method: Peak:setModel(
[id], [Spectrum] )
- The methods setVol, setAmp,
setColor, setPos, setAssig, setLabel, setGuess
of PeakList can now be directly called on Peak,
e.g. Peak:setVol( [number], [Spectrum] )
- New Lua object PeakModel
with the following methods: getId(),
getMaxWidth(dim),
getAmplitude(p,p0,a0), getGain(dim),
setGain(dim,gain), getBalance(dim),
setBalance(dim,bal), setWidth(dim,width),
getWidth(dim), setTol(dim,tol), getTol(dim),
getDimCount(). The object also supports
setAttr/getAttr.
- New method:
PeakList:createBackcalc( spectrum, showDiff,
showExact ) -> Spectrum
- New method:
Spectrum:createRotation( table[dim,dim] ) ->
Spectrum
- New method:
Spectrum:create1dProjection( dim, [ origin:
table[dim,ppm] ] ) -> Spectrum
- New method:
Spectrum:create2dProjection( dim x, dim y, [
origin: table[dim,ppm] ] ) -> Spectrum
Release 1.8.3 (2007-02-21)
This is mainly a maintenance
release, but also introduces some new functions.
- Repaired some issues
according to Tracker.
- Improved peak position
symbols in planes and strips.
- Reengineered the window agent
framework which caused some non-deterministic
crashes when closing windows or terminating the
application.
- Found a work-around to
statically compile CARA on Windows, so it is no
longer dependent on the Microsoft CRT assembly
(that was a uphill struggle).
- New experimental feature
"Show Peaks with unknown Labels" in
Poly/Homo/Strip/SystemScope to allow
intermediate assignment results of
AutoLink/SideLink to be displayed.
- Xml handler repaired. Latin1
characters are now properly loaded and saved.
- Dynamic Lua features are on
their way, but take additional time. The plugin
concept should now work. If you call
require "a.b.c" in
Lua, the engine looks for a source or binary Lua
file in <cara>/plugins/a/b/c.lua, where <cara>
is the directory where you copied the CARA
executable. See the Lua 5.1 reference manual or
"Programming in Lua 5.1" for details on how to
use the new module and require features. Like
this you can write external scripts, which don't
have to be part of a repository and can be
deployed in binary format. In contrast to common
Lua implementations, CARA doesn't support native
Lua DLLs or shared libraries for security
reasons.
Release 1.8.2 (2007-01-14)
This release introduces a first
implementation of an additional integration method.
The raw intensities within a rectangle around each
peak corresponding to the base width of the peak
model are summed up. You can select either the
linear equation system based or the new integration
algorithm by menu Integration/Method in MonoScope.
Also the batch integration mode should work. Keep in
mind that this is a first implementation to gain
some experience. Other area shapes will follow.
The release also fixes some issues according to our
tracker.
Release 1.8.1 (2006-12-11)
This is mainly an architecture
release. Most of the changes have happened behind
the scenes. CARA makes now use of Lua 5.1, which
gives a bunch of new options, but unfortunately also
breaks compatibility with Lua binary programs
backwards from CARA < 1.7.x (i.e. programs like
AutoLink have to be updated). The new Qt 4.2
solves some long standing issues with printing and
PDF generation.
- Move to Lua 5.1 and Qt 4.2
completed.
- CARA Lua/Qt binding layer
completely re-engineered and replaced by
technology developed originally for 1.8.1
(beginning of 2006).
- XML library replaced by
Expat.
- CW command to adjust
intensity view colors (linke in XEASY).
- Managed to compile Qt X11 on
Macintos OSX. Again Mac binaries available.
- Managed to compile everything
on SGI Irix (many thanks to FLI Jena for their
support!).
- A couple of bug fixes
according to Issue Tracker.
- New CARA/Lua features:
- Buffer:saveToFile( fileName, [ format ], [
other options ] )
where format is "XEASY" (default), or one of the CARA formats "Comp8",
"Uncomp8", "Uncomp16", "Uncomp32", "Comp8Gauss"
or "Comp8Adapt".
- Project:getCalibration( specId, dimension ),
Project:setCalibration( specId, dimension,
offset )
Release 1.7.1 (2006-10-24)
This is a bug fix release and
probably the last release of the 1.7 series. Some
issues have been resolved (see tracker).
Release 1.7.0 (2006-09-23)
This release concludes the
migration of the CARA 1.5.4 code to Qt 4.1. The
windows version works fine, even if there are still
scaling problems with printing. The Linux version
has problems with printing/pdf creation in
combination with postscript fonts.
Because people complained the low reading quality of
the Qt Linux aliased fonts, most X features (xrender
etc.) have been disabled. Unfortunately pdf export
without fontconfig on Linux doesn't work at all, and
at the same time some Linux distributions (elder
Redhat or Ubuntu) lack of the necessary shared
library versions. We hope that newer versions of Qt
4.1.x solve these problems.
A lot of code had to be reworked for this migration,
and as you can read in the
roadmap, we had to
do some extra tours. Unfortunately the NEASY
architecture turned out to be completely reluctant
to the new architecture. Parts of NEASY dependeded
on the possibility to directly paint to the display
(for historical reasons), which seems to be no
longer possible with Qt4.1 (i.e. the Qt option to
by-pass the display pipeline doesn't work and
because of this parts of the NEASY screen aren't
properly painted). For time reasons (a roadmap and
long issue list concerning the core CARA features is
still waiting to be taken care of) we decided to
exclude NEASY from the current CARA release. If we
will have time in future to completely re-engineer
the NEASY architecture, this might change. Until
then please use the old stable CARA editions, which
will remain accessible.
The new CARA release has the following new features
compared to 1.5.4:
- New intensity color scheme
(corresponding to the one used by XEASY). The
intensity no longer adjusts with the zoom
region.
- New Export PDF function in
Print Preview and Lua Editor.
- Problem with intensity
display offset fixed.
- Problem with display offset
in folding regions fixed.
- The ESC button to terminate
long running contour plots doesn't work anymore
(incompatible with Qt4.1). As a work around the
plot operation stops after a few seconds, writes
a warning message to the status bar and
automatically switches to auto-contour.
- Much faster repository save
operation. Especially noticable with large
scripts.
- The new Print Preview
settings (*.set) file unfortunately is
incompatible to the one of CARA 1.5.x due to
changes in Qt binary stream protocol.
- Import atom list now can
consider CARA label syntax in atom names.
Release 1.5.4 (2006-06-04)
This is a maintenance release of
CARA.
- Issue with *.lua scripts on
command line repaired.
- Console mode (cara -c) now
also works on Windows. Downside is a terminal
window, which is also visible in GUI mode.
Didn't find a way yet to avoid it; the linker
has to be run the one or the other way, either
with terminal window or without console mode.
- New command line option -s or
-silent: corresponds to normal GUI mode, but
hides the CARA explorer. This should help
integrating algorithms running in CARA (like
AutoLink or SideLink) with other programs like
TopSpin.
Release 1.5.3 (2005-11-29)
This is a maintenance release of
CARA.
- Sitar: Additional debugging.
New option "oneoff" (values yes/no) to use i and
i+1 from LHP instead of i-1 and i for gradient
matching.
- SitarViewer: New display
options: sum slice, gradient offset.
- Lua: new members
Atom:setValue(mean,deviation) and
Atom:setMagnitude(number)
- Issues according to tracker.
Release 1.5.2 (2005-11-20)
This is a maintenance release of
CARA.
- Sitar: additional debugging.
Optimized "Match Gradient" feature. New *.sitar
file options.
- SitarViewer: new display
options.
- PolyScope: New option View /
Sync to Depth
Release 1.5.1 (2005-11-7)
This is a maintenance release of
CARA. It contains some fixes and also some new Lua
functions which allow to create projects by scripts.
- CARA/Lua: the following new
object methods have been implemented:
Repository:createProject( name ), returns
Project
This method creates a new project with the given
name. The name must be unique within the
repository.
Project:addResidue( typeID, [ chainID ], [ nr ]
), returns Residue
This method adds a new Residue to the end of the
sequence of the given Project. A valid short
name of a ResidueType has to be provided. If
chainID is left out, the new Residue is added to
the same chain like its predecessor. If chainID
is provided, it has either to be identical to
the one of the predecessor or unique. If nr is
left out, the nr of the predecessor is used
incremented by one.
Project:addSpectrum( Spectrum, SpecTypeID, [
dim1..dimN ] )
This method adds a Spectrum to the given
Project. The Spectrum usually has been opened
before by spec.openSpectrum(). A valid name of
an existing SpectrumType has to be provided.
Optionally a dimension mapping can be explicitly
provided as additional parameters. If not, CARA
tries to guess the correct mapping (only if the
atom types of all dimensions ar disjoint).
- Sitar: additional debugging.
New options "Match Gradient" and "Interpolate"
available in SitarViewer and *.sitar file.
- Explorer: new menu command
"Open SitarViewer". This is handy to compare
sitar spectra in PolyScope and SitarViewer at
the same time using global cursor sync and the
calibration from the project.
Release 1.5 (2005-10-18)
This is a stable release which
unifies all changes since 1.4. The instance-based
peak inference is now up and running (see
CARA Roadmap).
Additionally the following has been done since last
release:
- Repository loader: if a
spectrum path was not found and it had been
manually selected using the file selector box,
the selected path is used as default for all
other spectra with unknown path. I.e. if all
spectra are in the same directory, you only have
to explicitly select one and the others are
automatically found.
- StripScope/2D: due to
confusion the automatic strip matching menu
entries were removed from the spin list context
menu. The "Setup" menu was renamed to "Auto
Setup" to clarify the separation between the two
similar but independant matching engines (one
for automatic and one for manual matching).
- SitarViewer: this is a new
window dedicated to testing and fine tuning of
decoding algorithms with primary focus to
development. Some bugs in the decoder have also
been removed. Other changes are to be expected.
- Other fixes according to
issue tracker (which got a bit confused
recently).
Release 1.4.4 (2005-10-03)
This release continues instance-based peak inference
in that changes in original spin systems are now
traced back to the projected ones.
- Inference engine: spin system
changes (add/remove/rename spin, link/unlink
systems) are now propagated to the +1 and -1
neighbouring spin system (if available). If I
e.g. add a CA in system i, it will also be
displayed in i+1, covering the projected spin
CA-1 (if available). If I delete or rename the
CA in system i, the CA-1 in i+1 reappears again.
The same happens if I unlink systems i and i+1
(and of course also if I link them).
- Repository file: the <cal>
tag of spectrum definitions is now always
present thus allowing to change folding type
persistently even without calibration.
- MonoScope: change in peak
integration. PPM positions are now cut after
third decimal place. This was necessary to avoid
stability problems caused by very close peaks,
which were not detected as degenerate (due to
difference in fifth decimal place).
- Other fixes according to
issue tracker.
Release 1.4.3 (2005-09-18)
This release introduces the first
beta of instance-based peak inference and thus is an important step towards
release 1.5.
- MonoScope: Menu
View/DetectAmps with extended amplitude
information, which allows comparison of original
and backcalculation difference. Resolved an
issue with backcalculated spectra (spectrum
switching wasn't reflected in backcalculation).
- Model: adaption of
architecture towards Qt4 abstract models. The
Lua binding will be updated during the next few
releases, so that objects can be directly
changed (i.e. without the
container:setFeature(object,...) semantics).
- Inference engine redisign:
calculation of anchor and strip peaks now
replaces the projected spins with non-zero
offset with their originals in the left or right
neighouring spin system if available. The
existing feature to optionally ignore projected
spins is dropped in favour of this new
semantics.
For non-noesy spectra the original spin is
always looked up in the neighbouring spin
system, even if there is now projected spin in
the current one. It is therefore no longer
necessary to explicitly create projected spins
for projects imported from BMRB and elsewhere.
For noesy spectra the original spin is only
fetched for the projected spins of the current
spin system.
- All Scopes: renamed menu
option "Show Neighour Spins" to "Resolve
Projected Spins" to reflect the new semantics.
CARA offers the new shortcut RP to
quickly switch this option on or off.
Restriction: resolved projected spins don't yet
fully react on all changes in the spin system of
the original spin, e.g. if the original spin is
removed or created, the projected spins wont
notice. As a work around switch the feature off
and on using RP.
- Replaced the garbage
collector version 6.3 with the more recent 6.5
on windows due to some GC located problems.
- Other fixes according to
issue tracker.
Release 1.4.2 (2005-08-6)
This release introduces the
concept of "Real Neighbour Pathway Simulation" (vs.
the "Generic Neighbour Pathway Simulation" already
implemented) and thus is an important step towards
release 1.5.
- The magnetic pathway
simulation now considers the residue types of
the real neighbours in the sequence, as soon as
a spin system is assigned to a residue. Before
assignment the behaviour is still the same as in
1.4. This version might use a bit more memory or
be a bit slower than 1.4. Please tell me about
your experiences. A debug message is written to
standard output showing the total number of
cached simulation runs and the residue types
involved in the current run (residue type as
well as left and right neighbour).
- CARA/Lua:
Spec.createExperiment() has changed parameters
SpecType, ResidueType mid, ResidueType left,
ResidueType right, NTerm and CTerm.
- Starting from this release,
spin labels of the form "?-x" or "?+x" are
supported. The label "?" implies offset zero. As
soon as the tag is empty, draft state is assumed
(i.e. you cannot set a spin to something like
"-1", it will always be interpreted as "?-1").
- The pick label dialogs now
offer "?" and "?-1" as standard options.
Label menus were also extended by "?-1".
- StripScope/2D: there is a new
menu option Unlabeled Strip Matching in
menu Setup and View / Select. If
selected, CARA also takes into account unlabeled
spins for strip matching (i.e. finding suited
strips to build a fragment). With this option
enabled, a strip with a "?" spin would now match
a strip with a "?+1" or "?-1" spin (given the
same atom type and a similar ppm value). You can
set the option independently for both the batch
and on-demand strip matcher. The option
Strict Strip Matching is automatically
switched off, because there is a very high
probability of at least one violating spin pair
when you allow unlabeled matches.
- All scopes now automatically
switch on Show Unlabeled if you label a
spin with something like "?" or "?+/-x". This
feature was already implemented for spin and
system picking.
- Other fixes according to
issue tracker.
These notes also apply to release
1.4.2.1.
Release 1.4.1 (2005-07-18)
This is a maintenance release
fixing some issues. The Lua source level debugger is
now working.
- The debugger is finally
working. It took several design attempts to
implement breakpoints and single step debugging
without multithreading. You can now run a script
in debug mode, make the script stop at your
breakpoints, inspect the stack and local
variables, change local variables and
single-step through the code. The following
limitations apply to this release
- Callbacks from GUI widgets don't run in the
debugger yet, i.e. it is not yet possible to
interrupt or step through callback code. This is
a planned feature.
- Stack and local variable inspection is still
rudimentary using the terminal output window.
- The following new Lua library
functions have been added:
dbg.trace()...prints the stack trace to the
terminal window
dbg.locals( [level=0] )...prints the local
variables of the given level (default 0=current)
dbg.loc( varId, [level=0] )...prints the value
of the local variable given by its ID number
dbg.get( varId, [level=0] )...returns the value
of the local variable to the stack (useful for
tables)
dbg.put( varId, value, [level=0] )...sets the
local variable to the given value
Notice that these functions only work in debug
break mode.
- Inference of generic
neighbour repaired. With 1.4 sometimes the
residue type itself was used as neighbour
instead of the dedicated generic residue type.
- Negative residue numbers are
now supported again when importing a sequence
file.
- Explorer, Sequence View: New
functions "Renumber From Here" and "Export
Chain".
- MonoScope, Peak List View:
new functions "Add Column" and "Remove Columns".
This allows to display attribute values of peaks
and assignment guesses.
- Pick System Dialog: new
"remember" feature. When applied, the last
selection is automatically proposed for the next
pick.
- Explorer, Spectrum List: new
function "Set Folding".
- CARA/Lua: Change for
Conformer and Structure objects: renamed
get/setCoordinate() and get/setLocation() to
get/setCoord(). Also renamed getCoordinates()
and getLocations() to getCoords(). The
parameters are still the same as before.
- Other fixes according to
issue tracker.
Release 1.4 (2005-06-27)
This stable release expands the
information model of CARA by structure information,
multiple chains and molecule families. Structure
information can for one part be directly assigned
with spins; for the other part each project can
manage an arbitrary number of structures and
conformers, which are stored in the repository and
accessible by scripting. This makes this release
interesting for people experimenting with new
structure determination, automatic assignment or
chemical shift calculation algorithms. But it is
also interesting for the nucleic acid or mixed amino
and nucleic acid community.
- Spins extended with
structural information. Each spin can be
associated with an optional location, given by
x, y and z coordinates and also an r-value which
can be interpreted as radius or position
deviation. The location can be seen and edited
in the spin view of the CARA explorer (column
Location).
- The object Spin has
the following new method:
getLocation() : x, y, z, r
- The object Project has
the following new methods:
addStructure() : Structure
getStructure( id ) : Structure or nil
removeStructure( Structure )
getStructures() : { id, Structure }
setLocation( Spin, [ x, y, z, [ r ] ] )
setOrigin( x, y, z )
getOrigin() : x, y, z
The origin attribute can also be set in the CARA
explorer using the context menu Set Location
Origin.
- New CARA/Lua object
Structure featuring the following methods:
getName(): string
setName( string )
setLocation( id, x, y, z, [ r ] )
getLocation( id ) : x, y, z, r
getLocations() : { index, id }
addConformer() : Conformer
getConformer( id ) : Conformer or nil
removeConformer( Conformer )
getConformers() : { id, Conformer }
getId() : number
setOrigin( x, y, z )
getOrigin() : x, y, z
- New CARA/Lua object
Conformer featuring the following methods:
getId() : number
getNr() : number
setNr( number )
getCoordinate( id ) : x, y, z
setCoordinate( id, x, y, z )
getCoordinates() : { index, id }
- New method Object:getAttrs()
: { name, value }
- New method
Dialog:setCentralWidget( widget ) to circumvent
a Qt bug concerning dialog layout.
- New function Remove
Residue and Remove Chain in the
context menu of the residue view of the CARA
explorer. Residues/chains can only be removed,
if there is no assignment to a spin system.
- All scopes now automatically
switch on Show Unlabled if a ? label is
picked.
- Pick System dialog in
Poly/HomoScope adapts the list of selectable
lables automatically to the system type
selection.
- Other features according to
issue tracker.
Release 1.3.3 (2005-06-20)
This release introduces multiple
chains and multiple molecule families. It is
therefore now possible to mix amino acid with
nucleic acid chains. This is a fairly stable beta
release ready for real world experience.
- Residue model: new elements
number and chain. The elements can
be arbitrarily selected and are used to present
the residue throughout the program as
<chain>:<residue type letter> <residue number>
(e.g. A:R41). You can also use this syntax in
Goto System etc. commands.
- Spin system type model: new
elements terminal, generic neighbors,
class and matching candidates. As
usual a residue type can optionally point to a
spin system type. This relation is now used to
categorize residue types and determine terminals
and the generic residue type. If a residue type
points to a spin system type, these elements
from the spin system type are used. If the
residue type doesn't point to the spin system
type or these elements are empty, the global
terminal and generic residue type are used (for
backward compatibility).
- As usual spin systems match
to residues, if their spin system types
corresponds. Starting from this release you can
associate a set of candidate residue types with
the spin system type. If this is the case, the
spin system type of the residue type is no
longer relevant for the match. Instead the spin
system matches to all residues whose type is in
the candidate set of the spin system type (as it
is already the case with candidates directly
associated with spin systems).
- Inferrred peaks are now
immediately updated when there is a change to
spin system or residue type definitions.
- New Lua functions
Residue:getNr() and Residue:getChain()
corresponding to the new elements mentioned
above.
- Sequence view: new commands
Set Number, Set Chain and
Append Chain. The latter has to be used if
you want to add another chain from a sequence
file to an existing project.
- Spin and atom labels now
accept the ' character to be compatible with the
nucleic acid nomenclature.
- Spin systems whose spin
system types have different class names
are no longer proposed to be combined to
fragments. Like this you can avoid that a amino
acid strip is combined with a nucleic acid
strip.
- Other fixes according to
issue tracker.
Release 1.3.2 (2005-05-29)
This is an intermediate release.
It introduces some new features and fixes.
- Menu texts updated to reflect
all shortcut renames (hopefully).
- Repository warning
"Incompatible dimension atom types in spectrum"
removed.
- SynchroScope: the rotation of
the 3D spectra is now compatible to the old
SynchroScope.
- PolyScope: Pick System
now respects system types and assigned residues.
- All Scopes: Pick Label
and Label Peak now only show
assignable labels.
- All Scopes: Set System
Type now properly updates screen display.
- Poly/Homo/SynchroScope:
Pick System dialog can now optionally set
system type.
- Poly/Synchro/StripScope:
Pick Label is now filtered based on
AnchorPair.
- Pick Label dialog has a new
editable input field reflecting the current
selection by default.
- MonoScope, move peak in
non-owner spectrum no longer causing problems.
- For the other fixes and
features please refer to the issue tracker.
Release 1.3.1 (2005-05-22)
This is an intermediate release.
It introduces some new features and fixes. Please
note that this release makes some renaming of
shortcut commands due to collisions of spin and peak
functions in some scopes.
- Spin system lists no longer
expand systems when double clicking. The cursor
is still set to the position of the double
clicked object if possible.
- MonoScope: now has explicit
un-alias commands (UA).
- Synchro/Poly/HomoScope: the
spectrum in the overview pane is now changed
accordingly if another 2D spectrum is selected.
- StripScopes: the manual
selection dialog now accepts numbers with an
optional letter prefix. If there is a prefix the
number is interpreted as a residue number
(instead of spin system number). The prefix
character doesn't matter. This also works with
Goto Peak and Goto System in the
other scopes.
- MonoScope can now export a
table file from the peak list pane representing
the row and column order.
- The label formats can now be
selected by menue or shortcut (LF) in scopes
showing peaks. New laber formats are also
available. Assignments can only be displayed as
spin number for the moment for technical
reasons.
- CARA now executes scripts and
commands from the command line even when started
in GUI mode.
- The following menus and
shortcuts had to be renamed due to naming
conflicts:
"Move Peak" MP to "Move Spins" MS.
"Delete Peaks" DP to "Delete Spins" DS.
"Label Peak" LP to "Label Spins" LS.
"Sync To List" SS in StripScopes to SH.
"Propose Peak" PP to "Propose Spins" PR.
"Goto System" GS to GY.
"Goto Peak" GP to "Goto Spins" GS.
"Move Peak Alias" MA to "Move System Alias" AY.
"Active Overlay" AY to AO.
The dot prefix of the peak commands could
therefore be removed.
- For the other fixes and
features please refer to the issue tracker.
Release 1.3 (2005-04-29)
This is finally a new stable
release. It incorporates all changes and fixes
introduced during the last few months. The new
memory management concept seems to have come of age.
As announced the peaklist engine was completely
re-engineered and extended to cope with the
information delivered by structure calculation
algorithms. As an additional bonus we have
introduced a new Lua editor and a 2D StripScope.
Some other features since last release:
- Fixed "Show ghosts" in
StripScope 2D. Like in its 3D counterpart you
can now restrict the anchor strip set by adding
unique dimension labels to the spectrum type.
- ResidueTypes can now be
imported from another repository (same concept
as with Spectrum Types).
- Peaks have been extended by
lists of "assignment guesses". It combines a
spin number per dimension with a probability
value. Guesses can be added to or removed from a
peak using MonoScope or Lua. An assignment guess
is an object an as such features dynamic,
persistent attributes (like the other object of
CARA). You can specify the attributes visible to
the user.
- "Save PeakList" has been
renamed in "Add to Repository" for clarity
reasons.
- CARA now issues a warning
when you try to integrate a peaklist having
degenerate peaks (more than one peak at the same
ppm position). If you still want to integrate,
the volume is divided by the number of
degenerate twins. In batch mode this is the
default behaviour.
- Finally "Show List" command
(SL) doesn't change the zoom region.
- All scopes now feature two
new command shortcuts in addition to "Fit
Window" (WW). Using WX and WY you can restrict
the fit to either X or Y direction. In
StripScope WW and WY are the same. In
SystemScope WW now scales the strip and the
selected orthogonal pane. WX only affects the
selected orthogonal.
- Poly- and HomoScope have a
new ".GP" short command to set the cursor to the
position of the given peak number.
- In SynchroScope you can now
directly type GP, PP, MP, MA, DP and LP (without
point prefix).
- Removed some crashes, update
problems and issues (see tracker).
- New CARA/Lua features:
- Project:addPeakList( PeakList ) and
Project:removePeakList( PeakList )
- New object AssigGuess featuring
getAssig() and getProb().
- PeakList:createGuess( Peak, probability
[0.0..1.0], dim1, dim2, ... )
- PeakList:removeGuess( AssigGuess )
- PeakList:setGuess( Peak, AssigGuess,
probability [0.0..1.0], dim1, dim2, ... )
- PeakList:setHome( Spectrum )
- PeakList:rotate( dim1, dim2, ... )
- Peak:getGuesses() -> Table[ number, AssigGuess
]
Release 1.2.6 (2005-04-15)
This is the last release before
1.3. It continues the re-engineering of the peaklist
engine, resolves some issues and introduces a new 2D
StripScope.
- Write calibration issue
corrected.
- Poly/Homo/SynchroScope: peak
list presentation and handling optimized. Issues
corrected. New context menu items for peak
management. Auto center now also works for
peaks. Name of peaklist is displayed on plane.
The following short commands have been added to
these scopes (notice the prefix dots):
.PP pick peak
.MP move peak
.MA move peak alias
.DP delete peaks
.LP label peak
There is now also an explicit command to remove
an alias: Un-alias Peak, UA.
- PolyScope decides whether it
should create a 2D or 3D peaklist depending on
the state of "show 3D plane". In 3D case, you
can either pick the peak on the plane or in the
strips. The new peak is positioned according to
the 3D cursor. There are now also ghost peaks,
i.e. transparent planes along the depth peak
width.
- MonoScope: everything is now
migrated to the new peaklist engine and
presentation. Some issues corrected, e.g. batch
integration, rotation and backcalculation.
- New 2D StripScope: this is an
experimental window which is essentially a
"flattened 3D StripScope". All functions
applicable to 2D should work (tell me
otherwise). It is meant as a contribution to our
ongoing discussion about homonuclear assignment
concepts. Feel free to experiment and tell us
your opinion.
- StripScope: issue with
ordered manual selections is resolved. CARA
keeps the manually entered order, as long as
each strip corresponds to another spin system.
- Spectrum Types can now be
imported from another CARA file. Use the import
command from the context menu of the spectrum
type pane of the CARA explorer.
- Other resolved issues
according to our tracker.
Release 1.2.5 (2005-03-20)
Again a major refactoring effort
has been taking place. The whole peaklist management
and presentation engine was re-engineered to be
ready for release 1.3. Parts of 1.4 have been
implemented, but the release will not do it for Q1.
Here some other features:
- The XEASY spectrum generator
has been extended to allow submatrix generation.
This was necessary since some other programs
seem to have performance problems reading
spectra without submatrices. Now you can select
the preferred number of submatrices. If the
selected number causes a remainder, the
corresponding points are cut off. CARA proposes
a reasonable default number of submatrices. The
amplitude factor was moved to the same dialog as
the submatrices.
- MonoScope was partly
re-engineered to work with the new peaklist
management and presentation engine. In ideal
case it should exactly work as before. But I
expect that you will experience some bugs, which
I will remove in the next release (where the
re-engineering will be completed).
- As another direct benefit of
the new peaklist engine, PolySope, HomoScope and
SynchroScope can open and present peaklists on
top of the inferred spin peaks. The currently
implemented features correspond to the original
state of SynchroScope before refactoring. Two
and three-dimensional peaklists are supported.
Printing is also possible. Future versions will
also allow peak integration directly from within
these scopes.
- CARA Explorer has a new
option to switch the XEASY and BRUKER spectrum
parser to another interpretation of the
parameters. CARA assumes the maximum chemical
shift to correspond to the first frequency point
and the width to N-1 (where N is the number of
frequency points in a dimension). XEASY and
BRUKER happen to define the maximum chemical
shift at delta/2 to the left of the first
frequency point, causing a width of N. You can
now switch between these two parameter
interpretations. The selection is stored with
the repository and also with templates.
- Renamed attribute
TemplatePath to TemplateName and
added new attribute OrigTemplateDate.
Also managed to display scrollbars in read-only
memo fields.
- Star file format now
correctly consideres the _Saveframe_category,
citation and _Residue_author_seq_code tokens. If
available, the special sequence numbering given
by the author is used. The parser is now able to
correctly import all test projects.
- Import sequence now also
ready comments and writes these to the
Comment attribute of the Residue. The crash
is removed.
- MoveAlias bug has been
removed. You can now move a peak as many times
along the same direction as you want. Spin
aliasses have therefore to be removed using the
context menu of the CARA Explorer.
- Some other fixes.
Release 1.2.4 (2005-02-27)
This release again does features
many architectural changes behind the scenes as a
preparation of the next steps on our roadmap.
- Old SynchroScope and with it
all classes of the old peak inference engine
removed. Quite a lot of code was touched and
many dependencies had to be resoved. The new
SynchroScope is a specialized sub-class of
PolyScope. Peak list handling still missing.
- Development of the Lua source
level debugger continues. First menus were
introduced, but still inactive.
- Changed save/update concept
for the SourceEditor. Up to now the Save
command (CTRL+S) did not save the repository,
but update the changed source in the repository
(rendering it dirty). I changed the command name
to Update (CTRL+S) to reflect this (since
there were confusions). There is now a new
Save command (CTRL+SHIFT+S) which saves the
repository. There was also a bug which allowed
the repository to be closed when an unsafed
source editor was still open. You will now get a
dialog box asking whether you really want to
discard changes.
- New command Indent and
Unindent in Edit menue of
SourceEditor, since SHIFT+TAB is swallowed by
Linux.
- New export features in
SequenceView and ResidueTypeView of Explorer. In
the context menu you can now Export Values
to produce a *.rel file with either the
statistical values on residue or residue type
level.
- New read-only repository
dynamic attributes OrigTemplateDesc and
TemplateDate.
- EASY spectrum generation:
introduced possibility to scale the amplitude.
An additional dialog is presented, where a
factor can be entered. The initial factor is
automatically calculated using the maximum
amplitudes of the spectrum and the maximum
representable XEASY amplitude, which is around
7'000'000. Also removed a bug which caused the
XEASY mantissa to be zero for the generated
spectrum, if no EASY spectrum was displayed
before the generation (missing initialization).
This led to a decrease of amplitude resolution,
as some of you have noticed.
Release 1.2.3 (2005-02-13)
The major new feature of this
release is a powerful Lua programming editor as a
replacement for the simple text box. This became
necessary since people started to write larger
scripts than I originally expected (i.e. 20'000
lines of code instead of expected ~300). The new
CARA/Lua programming editor is based on
Scintilla, a
free and very powerful editor written by Neil
Hodgson. Other news:
- Crash removed from Spin List
when clicking on a spin link
- Script Editor: new editor
featuring coloured syntax, auto indentation,
brace matching, folding/outlining and printing.
- I'm currently working on a
source level debugger which will show up in a
few releases. There will also be a code analyzer
and cross-referencer in near future.
- Additional file endings for
Pipe (*.ft2,...) and Felix (*.felix, *.mat)
spectra supported.
- Additional consistency checks
when opening spectra (e.g. to avoid Pipe spectra
with spectral widht or spectrometer frequency
equal to zero).
- Improved ppm range
interpretation of FELIX spectra. Looks better,
but keep in mind that this is still a beta test.
Please compare your FELIX spectra using CARA and
your recent viewer.
- New attribute factor
in the level element of a spectrum. The
intensities of the spectrum are multiplied by
this factor when they are used for display and
the like. The factor has a default value of 1.
You can also use it to invert spectra (e.g.
having a factor of -1, which is useful for the
people working with NMR Pipe spectra).
- New CARA/Lua API function
ResidueType:setValue( Atom, mean, dev )
which allows statistics e.g. imported from BMRB
to be modified using a script. This is just an
intermediate fix due to an urgent need by Fred.
The API will extensively grow within the next
few months.
Release 1.2.2 (2005-02-06)
This release removed some memory
management bugs, general issues and adds some new
features. The new garbage collection implementation
seems now to work stable enough to go productive.
- First implementation approach
of the FELIX spectrum format. CARA should be
able to open most FELIX spectrum variations. The
spectrum must have a *.felix postfix to be
recognized by CARA. Since the format had to be
inferred, it's most likely not free of bugs yet.
Please use it and give me feedback, so I can
improve the implementation over the next few
releases.
- A new SynchroScope2 should
look and behave like the old SynchroScope. The
old one will be removed in the next release (and
with it quite a lot of outdated code since the
introduction of the new inference engine back in
2004).
- All scopes: new menu command
View/Goto Point (shortcut GT). Cursor
starting position is no longer zero, but the low
ppm border of the spectrum. Command entry is now
immediately possible without first clicking into
a view.
- MonoScope: new feature
View/Sync Depth and shortcut MA for Move
Alias Peak.
Release 1.2.1 (2005-01-29)
The features of this release,
which finishes the 1.2.1 alpha series (see
here), should correspond to release 1.2. In
ideal case you shouldn't experience any differences.
As announced in our roadmap,
I have changed the whole memory management concept
of CARA. This is a critical process which started
around christmas 2004 and continued for some other
weeks. Refactoring the memory management strategy of
such a large source tree like CARA and NAF is a
complex matter. Why should I do this? We want to
give user scripts access to all NAF components in
future to ease the implementation of new custom
scopes. The integration of Lua with the visual
hierarchy and notification chains implemented in C++
demands for a very flexible component concept. This
is hard to realize using traditional C++ memory
management strategies (like reference counting),
because they restrict the referencing of objects too
much (i.e. only hierarchical structures can be
properly supported by reference counting). With the
new strategy, CARA delegates memory management of
the NAF framework to a garbage collector. This
increases the average memory consumtion a bit, but
allows for arbitrary graph structures having either
Lua or C++ objects as nodes. Working with a garbage
collector has an essential influence on the
resulting software architecture. Because of this I
had to rework parts of the architecture to
efficiently coexist with the collector (avoiding
memory leaks and premature deletes of objects). The
current release seems to run quite stable now, but
I'm aware that users are much more imaginative in
finding bugs (i.e. hard crashes). Additional
features include:
- Repository: new XML
attributes orig-template-by and
template-name.
- Explorer: new menu item
Edit/Properties.
- SITAR: now supporting new
coding function rendering better resolution.
Release 1.2 (2004-12-14)
This release consolidates and
finalizes the changes of the last minor releases.
The new external file formats like NmrPipe or BMRB
have further been improved.
- NmrPipe: dimension order is
now obtained from the NmrPipe file. No other
issues pending at the moment.
- BMRB Files: I extended the
parser so it can digest a whole BMRB file as it
can usually be found in the database. It should
be able to read 80% at least of all available
files. Some have minor variations of the
mainstream and may not be read properly. In that
case an error message appears, which you can
post to the issue tracker together with the
zipped BMRB file. I will have a look at it. Even
if the whole file is parsed, only sequence and
atom list are interpreted (and also some other
attributes).
- All Scopes: PI
repaired, no more crash
- PolyScope: new command PN..Pick
New System
- StripScope: New menu item
Calibrate in Strip menu
- Repository: It is now
possible to define the folding properties of a
spectrum within the repository. Use the new
attribute "fold" in "cal" element. "fold"
accepts values N..None,
A..Aliased (translated) und F..Folded
(mirrored). It is not yet possible to change the
folding within the program (will implement that
later). Change it directly by editing the
repository file. New file version 32, up- and
downward compatible.
- New BMRB Stats file parser.
Labels are not translated, the user has to take
care of the differences (e.g. H -> HN) by
herself. The "import values" command in sequence
view now accepts *.stats files. The menu is now
also available in the residue type view, where
it directly affects the residue types (not the
sequence). In the latter case the residue type
and atom symbols have to correspond to the
repository in use, otherwise an error is
reported.
- Export EASY spectra: now
saving to *.3D.param files. There was also an
irregularity for spectra without folding
(folding line in param was missing, which some
programs like CANDID didn't like). Now fixed.
For older release notes please see
here.
|