Q. Is there a 64-bit Windows version of APT?
A. No. Binary builds do not exist for 64-bit versions of MS Windows and APT has not been tested to work on 64-bit versions of windows.
Q. What compute platforms is APT available for?
A. See the Platforms page for more information.
Q. Is source code available?
A. Yes. Source code for APT is available under the GPL (version 2). A commercial override is also available via devnet@affymetrix.com. See the License page for more information.
Q. Can APT handle Unicode paths and file names?
A. The short answer is no. Having said that, some uses have reported limited success. From the APT User Forum:
I recently ran into the same problem with the Fusion SDK. I can describe
how to get around the problem if you're on a Windows OS and the path only
contains characters that can be mapped into the system codepage.
I get Unicode paths from my C# layer and convert them to single-byte paths
in the system codepage using Marshal::StringToHGlobalAnsi which is
described here:
http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.marshal.stringtohglobalansi.aspx
If you aren't working with managed C++ you can use WideCharToMultiByte which is described here:
http://msdn2.microsoft.com/en-us/library/ms776420.aspx
I found I also needed to call the following:
setlocale(LC_CTYPE, "");
In my C++ layer to make the underlying Microsoft calls use the system codepage, this is described here:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=145439&SiteID=1
Q. Wild cards do not work on windows. For example:
apt-cel-transformer ... *.CEL
A. APT relies on the command shell to do the wild card expansion (ie bash shell on NIX systems). The windows shell does not do wild card expansion, so there is no wild card expansion for APT when run from the windows shell. You may want to try a different windows shell or perhaps bash via cygwin.
A. Probe IDs (also called probe indexes) are the same 1 based indexes as used in the Bioconductor affy package. This is equivalent to the FusionCELData::XYToIndex() function result with 1 added to each index. The XYToIndex() function calculates the index as (y*c) + x where y is the y coordinate of a probe, x is the x coordinate of the probe on the array and c is the number of columns on the array. For example to get the correct index for a SNP6 chip (2572 rows and 2680 cols) the index for probe at position x=1000, y=500 is 1 + (500 * 2680 + 1000) = 1341001.
So Computing Probe ID from X/Y:
probe_id = y * num_cols + x + 1
and X/Y from Probe ID:
x = (probe_id - 1) % num_cols
y = floor( (probe_id - 1) / num_cols ) // floor == round down
where:
x = the x (horizontal) coordinate of the probe in the CEL file. 0 based.
y = the y (vertical) coordinate of the probe in the CEL file. 0 based.
num_cols = the number of columns (width) in the CEL file
probe_id = 1-based probe ID
For developers, most of the internal code uses base 0. IE a probe ID or index in the software APIs is the same as the value above minus 1. Internal the value '-1' is used to represent the 'null probe' which indicates no probe for that place. Examples of the null probe usage include a probeset with only MM probes or where only certain PM probes have matching MM probes.
Q. Why are my APT exectuables crashing with the message "set_thread_area failed"?
A. Your machine has a very old kernel. The APT programs provided by Affymetrix are for generally newer (2.6) kernels. See the Platforms page.
Affymetrix Power Tools (APT) Release apt-1.10.1
1.5.3