1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
\chapter{Processing}
% TODO: cool quote, if I can think of one
From a data science perspective, CMDS has several unique challenges:
\begin{ditemize}
\item Dimensionality of datasets can typically be greater than two, complicating
\textbf{representation}.
\item Shape and dimensionality change...
\item Data can be large (over one million points). % TODO: contextualize large (not BIG DATA)
\end{ditemize}
I have designed a software package that directly addresses these issues. %
WrightTools is a software package at the heart of all work in the Wright Group. %
% TODO: more intro
\section{Data object model} % ====================================================================
WrightTools uses a programming strategy called object oriented programming (OOP). %
It contains a central data ``container'' that is capable of storing all of the information about
each multidimensional (or one-dimensional) spectra. %
\subsubsection{Python interface} % ---------------------------------------------------------------
WrightTools is written in Python, and endeavors to have a ``pythonic'', explicit and ``natural''
application programming interface (API). %
To use WrightTools, simply import:
\begin{minted}{python}
import numpy as np
def incmatrix(genl1,genl2):
m = len(genl1)
n = len(genl2)
M = None #to become the incidence matrix
VT = np.zeros((n*m,1), int) #dummy variable
#compute the bitwise xor matrix
M1 = bitxormatrix(genl1)
M2 = np.triu(bitxormatrix(genl2),1)
for i in range(m-1):
for j in range(i+1, m):
[r,c] = np.where(M2 == M1[i,j])
for k in range(len(r)):
VT[(i)*n + r[k]] = 1;
VT[(i)*n + c[k]] = 1;
VT[(j)*n + r[k]] = 1;
VT[(j)*n + c[k]] = 1;
if M is None:
M = np.copy(VT)
else:
M = np.concatenate((M, VT), 1)
VT = np.zeros((n*m,1), int)
return M
\end{minted}
\subsubsection{wt5 file format} % ----------------------------------------------------------------
\section{Artists} % ==============================================================================
\section{Fitting} % ==============================================================================
\section{Distribution and licensing} % ===========================================================
\section{Future directions} % ====================================================================
|