RangerApp 0.0.1
A new beta-version of a ranging application for Atom Probe Tomography is now available, for Windows and Linux. This supports either range-file generation from scratch, or by modifying existing rangefiels. This program utilises libatomprobe in the backend, and we will be improving further! It works well as a companion application to 3Depict, extending 3Depict's analysis capabilities. RangerApp currently supports RNG, RRNG and its own advanced MultiRange formats.
You can download the zip file containing the program from here, source code for this release can he found here.
libatomprobe IO support
Libatomprobe now supports Camceca APT6 file format, which has been introduced as part of AP Suite 6. Its part of the experimental addons, and so users can now open and extract data from these files readily. To use this, you have to change
Posgen 0.0.4
Windows versions of posgen 0.0.4 have now been uploaded. This version is largely targeted at fixing bus, extending small features and providing performance improvements, such as enabling parallel mode for windows builds. You can download it here.
OpenVdbTest
The source code for the curvature flow level-set tip simulator has been uploaded to the extras repository. This requires openvdb and libxml2 to compile, and may be of interest to those looking to simulate continuum models for atom probe tip evolution.
libvacuumdevice update
libvacuumdevice (also mirror) now supports Pfeiffer and Arduino-firmata devices! We have added support for several pfeiffer systems, including Maxigauge and Pfeiffer backing and turbo pumps. The new additions for Pfeiffer use the Pfeiffer RS-485 bus,including TC-series turbo controllers, TPG based gauge controllers (single and maxi-gauge), and RS485 supporting backing/roughing pumps. The Arduino devices support includes a subset of the Firmata Protocol, tested using the standard firmata API.
Python bindings for libatomprobe
libatomprobe has had some additional work undertaken - we are now using SWIG to provide language bindings to non-C++ languages. Currently, we have added Python bindings, so you are now free to use python as your operating language, whilst still using the functionality provided by libatomprobe.
This inter-language calling is possible thanks to swig, and the use of a compiled "base" language. SWIG allows the calling from a variety of high-level languages, such as Python, to a C or C++ library (such as libatomprobe).
At the moment, we are only supporting Python - however it should be possible to provide support R and Octave in the future. The current Python implementation is not 100% complete, but most functions should be available. To use this, you need to set ENABLE_SWIG in CMakeLists from "no" to "yes" before compiling the library. See the libatomprobe documentation for more details.
If you do use this functionality, please let us know, so we can get feedback on how to improve it further.
weights program updated again
The weights program for determining the identity of unknown peaks at given mass-to-charges has been updated (again)!
This time around, we have added an extremely useful "explained fraction" mode. This allows you to determine, given the peak position and intensity data of peaks in your mass spectra, precisely the maximum fraction that any possible species could have. There have been several small fixes along the way, to improve the program even more. Have a look at the PDF manual for details. If using windows, you can download the zip bundle here (180131-weights.zip, 64-bit).
For those on other operating systems, you can compile the program from source. Our compilation notes for the apttools programs are available on the documentation page.
Posgen 0.0.3
Posgen, the program for automating data analysis in APT, has been updated to 0.0.3. New features include a cluster sweeping utility, which helps speed and simplify cluster parameter selection (this is much faster than repeated runs of the program!), and background estimation when performing compositional analysis . Full documentation is available in the changelog.
As usual, we have provided a windows binary. For those on other operating systems, you can compile the program from source. Note that the windows builds do not have parallelism enabled, due to limitations in Cygwin. Use a different platform, or compile from source if you need to go faster.
Updated weights program
The weights program for determining the identity of unknown peaks at given mass-to-charges has been updated!
The program now has a PPM filtering mode, which helps reduce the number of options that are generated by the program for any given peak. Furthermore, the search algorithm has been altered to double the search speed, making complex tasks a little bit easier. Have a look at the PDF manual for details. If using windows, you can download the zip bundle here (170317-weights.zip, 64-bit).
For those on other operating systems, you can compile the program from source. Our compilation notes for the apttools programs are available on the documentation page.
Updated isdb-client
The isdb-client program, which allows you to connect to LEAP 3000 databases (including historical ones!) from the command line, has been updated. The updates include examining sample block contents, generating reports for electrode lifetimes, and monitoring the quality of electrodes within the LEAP.
This lets you perform scripting on various database states, allowing for better monitoring and interaction with your LEAP systems. A prototype backend for LEAP 5000 (which uses the less compatible MsSQL, instead of MySQL) has been partially implemented - if there is interest in completing this, please let us know, and we can look at doing this.
This program is only available as source at this time, and is considered a prototype only - use the program at your own risk!
Updated rangecheck program
A new version of the rangecheck program has been made available on our downloads page. This version adds a few new checks to the rangecheck output, as well as colour output. For example, a new check has been made available which examines whether range-widths roughly increase linearly with mass, as they should from theory.
Several bugfixes have been incorporated to improve stability, compatibility and to fix some incorrect warnings. Full technical details are obtainable through the repository.
Updated weights program
A new version of the weights program has been made available on our downloads page. This version fixes some design problems which would, in very specific cases, misreport an elements type when the isotope weight matched to a high precision. Additionally, we now provide an ion "database" of previously seen atomic species. These species will be highlighted in the output, when a database is selected.
We would be most interested in any rangefile data you can share, which we can use to expand the database, and thus the quality of the output from the weights program.
Atom Probe Tomography Library
We have made available a small atom probe C++ library, called libatomprobe, which is available for download. The library covers several common algorithms for building atom probe related software. Currently the algorithm has support for:
- Reading and writing .POS, tapsim, .EPOS and range files (RNG, ENV and RRNG)
- range manipulation, generation and verification
- Isotopic abundance calculations (eg. multi-species probabilities from name)
- Nearest Neighbour calculations, including KD trees, Distribution Functions (Radial and "spatial").
- Geometrical transformations (rotations, translations and scalings)
- Multiple-ion correlation histograms "aka Saxey plots"
- Ion volume calculations
- and more....
Ultra-High Vacuum (UHV) Library
We have just released our new library for communicating with selected Ultra-High Vacuum hardware, known as libvacuumdevice. This is a C++ library, which supports several vacuum hardware items, from major manufacturers. The library provides basic monitoring, and control, as well as device auto-detection. This has been tested under Linux, but should also support windows systems. Supported devices include:
- nXDS Series of vacuum pumps, manufactured by Edwards
- Pfeiffer SingleGauge pressure gauge controllers
- VACOM MVC pressure gauge controllers
- Pfeiffer PRISMA Residual gas analysers
Python APT software
Some python code for performing various APT calculations has been made available by others. We are happy to inform users that there is a github page for the software (not related to this website, but definitely handy) here. If anyone else has some public software they can make available, please let us know!
isdb-client
A prototype command-line driven ISDB (Imago Scientific Data Base) compatible application has been uploaded as part of the extras repository here. This features some reports that are useful to us, and is easily expandable if you know C++/SQL! This has only been tested on Linux based systems, and requires the mysql++ library. The program currently only allows reading of data bases, so as to minimise any chance of disruption. Support is for ISDB on 3000 systems (mysql based ISDB).
Weights
Windows 64 binaries (Executables) for the weights and the rangecheck programs, as part of the "extras" sub-package are now available
Posgen 0.0.1
After a lot development, we are happy to announce the 0.0.1 release of Posgen. Posgen (short for Pos-Generator) is an automatable data analysis suite for atom probe. The program is command-line only, but provides a useful series of algorithms for generating synthetic, and analysing real, atom probe data. The program is available as source-code for linux and mac-osx platforms, and a zip-file with a binary ("exe") is available for windows users
You can download the program, flip through the manual or play with the source-code now!
Extras repository
For those who have been keeping track of our sourceforge page, you may have noticed that there is a new "extras" repository. Here you will find more APT related goodies. This time, we have uploaded a ranging system, a species suggestion tool, and a range sanity checking program.
The ranging system, "autorange", is to be used in conjunction with the MALDIQuant toolkit, and can be used to perform auto-aided ranging (its not foolproof, by any means, but it is fast). The range sanity checker is for use to check for common ranging errors, and can be easily deployed to find and fix errors over vast quantities of rangefiles (our testing indicates around 20% of expert generated rangefiles have detectable errors, about half of which are unequivocal). Lastly, the species suggestion tool "weights" allows you to specify a mass, some elements and tolerances, as well as optionally a list of peaks, and this will automatically tell you what possible combinations can be found at this location. For ourselves, we have already found this an invaluable tool.
For those who want to try these tools, you will need to compile them from source code.
Experimental Binaries for Posgen
We are making available some windows executables (aka "binaries") for posgen. These are experimental only, and have not been heavily tested. Experienced users are recommended to compile from source-code for their own system. We may take the files down and replace them if there are problems/concerns with the upload.
rdf-kd : Radial Distribution Functions (RDFs) on point clouds
The program "rdf-kd", which computes radial distribution functions on point clouds (e.g. atom probe data), in 1 and 3D, has been uploaded. The program utilises a KD-tree approach to perform computations quickly. Additionally, the program can use multiple CPUs at once on a single machine to compute at speed.
As with our other releases, for now, only the source code is available. To install it you will need to compile the program from the repository. The full instructions for compilation are available on the documentation page.
Levelset2d : Level set based evolution for atom probe samples
Today we have uploaded our 2D level set analysis toolkit, known simply as levelset2d which allows for simulations of the shape change of atom probe samples as a function of time. The simulation is 2D based, and uses a simple full-field image method, whereby a single, or pair of images, is used as the input for simulating the changing the shape of the field emitters.
The method is has few parameters, which mostly relate to a speed/quality tradeoff for the simulation. Again, documentation is pending, but we will upload this as it becomes available
To download the program, currently only the source code is available. To install it you will need to compile the program. The dependencies are the GNU Scientific library, and magick++. To fetch the source code, you will need to install the source code management tool mercurial, then head over to this page to download the program.
3dap-recon: Detector to 3D reconstruction conversion
Good news everyone! We've just uploaded the next instalment in our data analysis suite, known as 3dap-recon.
So what is it? 3dap-recon is a program for building 3D "POS" datasets from 2D detector sequences obtained from Oxford Nanoscience POsition Sensitive Atom Probe (POSAP) "OPS" files. Its a cross-platform program, and will run under any architecture, as far as we know.
It's currently available as source code, and can be obtained by following the instructions below. At this time to get something useful, you will need to compile it. It is command-line only, so its easy to compile and use as a backend tool for something else. It currently has no documentation, but it is very easy to use, and has been reasonably well tested. To use it simply do this ($ indicates your terminal session):
$ ./3dap-recon someOPSFile.ops reconstruction.pos
then follow the on-screen prompts.
If you are using a Linux system (or cygwin, or fink on OSX...), you can easily build a copy of the program. First install g++ (a c++ compiler), then mercurial and gsl-dev or gsl-devel (scientific library) from your package manager, then open a terminal and run the following commands:
hg clone http://hg.code.sf.net/p/apttools/threedaprecon/code 3dap-recon
cd 3dap-recon
make
make install
thats it! If you have any problems post on our forums, and we will help you as quick as we can.
Get ready... Go!
We have just released a general purpose back-end software program for Atom Probe Tomography. These programs are back-end "helper" tools that we use to automate and speed-up the development of new and more interesting programs for end users. The programs distributed here are targeted at developers and researchers who are interested in automating or simplifying their data analysis workflows.
Currently, we are releasing the posgen tool for aiding in automating or conducting point-cloud data workflows, without having to get into the low-level programming details.
So what does posgen do? Posgen delivers an XML based language for expressing transformations of 3D (and associated value) point cloud datasets. Transformations can be chained to enable complex workflows, especially useful for performing batch transformations or analyses Posgen offers several transformation capabilities, such as:
- Geometrical transformations (rotation, scaling, translation, clip).
- Topological transformations (Detect clusters, set operations (subtract, add, intersect), random value shuffling)
- Point cloud generation tools (Put FCC lattice here, put BCC lattice there, add spatial noise, etc.)
- Value transformations (shift value, filter values, range data, find-and-replace)
- File format transformations (Text output, molecular modelling formatted output, etc.).
- and so a lot more..
Our goal is to simplify the construction of new and useful algorithms by shortening the development time required for building exciting new tagged point cloud data (i.e. atom probe data) analysis tools.
As an example, here is a sample transformation of a dataset, where we load it, remove 25% of the data, add noise, and then shuffle the data values around:
<!DOCTYPE crystal SYSTEM "crystal.dtd">
<!--- Load a pos file called "cubicTest.pos" -->
<crystal>
<version value="0.0.1"/>
<posload name="cubic.pos"/>
<!-- randomly remove 25% of the data-->
<randrm frac="0.25"/>
<!-- Add noise to the remaining data-->
<noise>
<white>
<x val="0.1"/>
<y val="0.1"/>
<z val="0.1"/>
</white>
</noise>
<!-- Shuffle the values stored on each point around -->
<relabel/>
</crystal>
Even though we are still getting our site set up, you can even start to use it right now.