| Especially Linux users like to run programs in a console, often even remotely from another machine or as a batch job.
YASARA offers several ways to achieve that:
yasara -con
runs YASARA in console mode. The head-up display is also shown and can be scrolled with
<CursorUp> and <CursorDown>. If you run a macro that issues a Wait command, you have to press <Space> to interrupt it and return to the console. This is the method of choice for running YASARA interactively without graphics,
e.g. from a remote computer via SSH. When you want to run YASARA in the background
(with output redirected to a file) or from another program, you need to activate plain text mode:
yasara -txt
NOTE: Text output is only visible in Linux and MacOSX. In Windows, it is always redirected to the file stdout.txt,
which unfortunately prevents interactive use of YASARA in plain text mode.
In Linux and MacOSX, you can also redirect output to a file as usually and run in the background while executing MyMacro.mcr:
yasara -txt MyMacro.mcr >MyLog.log 2>&1 &
or (depending on the shell you use)
yasara -txt MyMacro.mcr >& MyLog.log &
Some exotic shells my also require this expression:
(yasara -txt MyMacro.mcr >& MyLog.log &)
IMPORTANT: make sure that your macro ends with 'Exit',
otherwise YASARA waits for input in the background, which results in the error message
"*** Error: getline(): not interactive, use stdio". This approach has one disadvantage: things written to the file MyLog.log will not appear there immediately,
but only once in a while when the operating system's output buffer runs full and is flushed. So you cannot check progress by looking at MyLog.
YASARA therefore provides another option:
yasara -txt MyLog.log MyMacro.mcr >/dev/null 2>&1 &
This way YASARA writes all the output to MyLog.log, which is also flushed permanently.
(See above for changes required by other shells). It is essential to specify the log file before the macro file,
alternatively you can also use the RecordLog
command inside the macro. If your macro switches the console
off, only minimal output will be written to the log. For Windows users,
the command looks almost the same:
Yasara.exe -txt MyLog.log MyMacro.mcr
If you install YASARA on one single machine, you do not need a multi-user license,
as long as all the people work personally on this one machine and do not log on remotely.
Note that the user who runs YASARA must have write permissions in the YASARA directory
: Towards the end of the last millenium, it became common practice to run programs without write permissions in their own directory,
and to store modified data in the users home directory or related places. But in the mean time,
new advanced software capabilities like 'self-healing' and 'feedback-induced self-improvements' become more and more popular,
which allow applications to permanently modify and improve themselves, which in turn requires write permissions.
In Windows, simply install YASARA in a common directory (e.g. c:\Program Files) and set the permissions of the YASARA directory such that all users have WRITE ACCESS there.
In Linux, install YASARA as root and also run it once as root. This will automatically adjust permissions and enable write access for the users.
In MacOSX, copy the 'YASARA.app' bundle to the /Applications directory and run it once immediately after.
If you run YASARA without write permissions, it will display a warning at the bottom of the startup screen and disable a wide range of features. These disabled features may occasionally look like bugs,
so please do not report problems when running YASARA without write permissions.
If you own a group-leader license of YASARA, you can install the program on an NFS mounted harddrive.
While it makes sense for many programs to run them directly from the NFS partition,
this is not an efficient solution for YASARA due to a couple of reasons:
- YASARA is not a static program which gets away with a single .ini file
that is stored separately for each user. A large number of files are modified
while YASARA is running (force field definition files, caching files, plugin communication
data, log files).
- Changes made by one user to the force fields can easily mess up the work of others.
- The amount of data read from/written to the YASARA directory quickly exceeds the
NFS network bandwith, especially when working with protein databases in YASARA Structure and
the Twinset.
The solution is to use the Python script rsync.py
, which can be found in the yasara/plg directory. Open this script in a text editor and adjust the settings for the first two directories
'masterdir' and 'localdir', then run it on every machine where you want to install YASARA.
The script creates a local copy of the NFS mounted YASARA folder,
preserves the config file yasara.ini, warns the user when important force field definition files got overwritten and offers to restore them.
When YASARA got updated on the NFS volume, users can simply rerun the script.
This approach makes sure that everyone can work with YASARA at full speed,
while keeping other users safe from local modifications. With the extension of the common x86 CPU architecture to
64 bits by AMD and later also Intel, true 64 bit computing is now available even on low-end PCs. However,
YASARA is not an application that benefits in any way from more than about 1 GB of memory,
so the main advantage of 64 bits - the larger address space - is not a help. What remains is the larger number of CPU registers,
which allows the compiler to create more efficient code - unfortunately at the cost of slower memory accesses,
because all pointers now occupy an additional 32 bits in the data cache. Since all critical sections of YASARA have been implemented in Assembly language anyway,
we do not expect any noticeable benefit from 64 bits. For simplicity, YASARA will therefore stick to
32 bits, as long as all 64 bit operating systems keep their support for running
32 bit applications. In short: YASARA normally runs out of the box on
64 bit operating systems. Exceptions include some less user friendly Linux distributions
(e.g. Kubuntu) that may require you to install additional RPMs to add 32 bit versions of some system libraries.
|