-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
executable file
·168 lines (125 loc) · 5.47 KB
/
README
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
##########################################
README
##########################################
Last updated: 2012-05-09
******************************************
About
******************************************
This program aligns queries to references sequences using Smith-Waterman
algorithm. The Smith-Waterman algorithm is executed on the GPU. Query
and reference sequences should be in FASTA format.
The program has 2 phases. In phase-1, regions in the reference sequences
which have high density of query tuples are identified using the method
described in (Ning et al., 2001). In phase-2, Smith-Waterman algorithm
is performed between each query sequence and regions in the reference
sequences obtained in phase-1. Phase-2 is executed on the GPU card in
a highly parallel manner. The output is printed out in the file specified
by the user during program invocation. The default output contains
for each query, the query name, reference name, alignment, alignment score,
alignment start and end positions, and alignment length.
Some of the features of this program are:
- Aligns multiple query sequences to multiple reference sequences.
- Only outputs the best alignment for a given query.
- Default output contains query name, reference name, alignment score,
alignment start and end positions, alignment length, and actual alignment.
- Alignment can also be output in SAM format (feature maybe currently broken)
- Paired-end alignment (feature maybe currently broken)
******************************************
Hardware requirements
******************************************
Following are the minimum hardware requirements:
GPU:
- CUDA capable graphics card
- GPU global memory: 938 MB
- GPU shared memory per block: 16 KB
- Number of registers available per block: 16384
CPU:
- System memory: 4 GB
******************************************
Software requirements
******************************************
Following are the minimum software requirements:
CUDA:
- CUDA Driver Version: 3.0
- CUDA Runtime Version: 3.0
- CUDA Capability Major revision number: 1
- CUDA Capability Minor revision number: 3
Miscellaneous:
- Linux Operating System (I used Ubuntu 10.04)
- 'Check' C unit-test framework version 0.9.8 (only if you want
to run unit-tests)
******************************************
Installation
******************************************
Following are the steps you need to take to install this program:
Step 1: Change to the directory containing the program:
$ cd /path/to/program/directory
Step 2: Open 'src/common.h', and change the value of TMP_DIR macro
appropriately. Make sure the directory specified in TMP_DIR macro exists.
Step 3: Run make:
$ make
Step 4: Run the program (single-end queries):
$ ./bin/swift -q <query file> -r <reference file> -o <output file>
Run the program (paired-end queries):
$ ./bin/swift -q <query file> -q2 <second query file> -r <reference file> -o <output file>
To see what command-line parameters are available, run the program with '-h'
parameter:
$ ./bin/swift -h
******************************************
Running the program
******************************************
Use the following command to run the program for single-end queries:
$ ./bin/swift -q <query file> -r <reference file> -o <output file>
Use the following command to run the program for paired-end queries:
$ ./bin/swift -q <query file> -q2 <second query file> -r <reference file> -o <output file>
To see what command-line parameters are available, run the program with '-h'
parameter:
$ ./bin/swift -h
******************************************
Running unit-tests
******************************************
Step 1: Change to the directory containing the program:
$ cd /path/to/program/directory
Step 2: Open 'src/common.h' and change the value of TMP_DIR and
PATH_SEPARATOR macros appropriately. Make sure the directory specified
in TMP_DIR macro exists.
Step 3: Run make check:
$ make check
Step 4: Run the tests:
$ ./bin/test
Step 5: The output will mention whether all tests were successful.
******************************************
Testing alignment output
******************************************
Step 1: Change to the directory containing the program:
$ cd /path/to/program/directory
Step 2: Run 'make testOutput'
$ make testOutput
Step 3: Run the tests:
$ ./bin/testOutput -q <query file> -r <ref file> -a <alignment file>
-o <output file>
Step 4: The output will mention whether all tests were successful.
Note: For usage and description, run testOutput with -h option:
$ ./bin/testOutput -h
******************************************
Profiling the code
******************************************
In order to profile the code to determine what functions take
the most amount of time, follow these steps:
Step 1: Change to the directory containing the program:
$ cd /path/to/program/directory
Step 2: Run make profile:
$ make profile
Step 3: Run the program to generate profiling data:
$ ./bin/swift -q <query file> -r <reference file> -o <output file>
This will output profiling data in a file named "gmon.out", which is
a binary file.
Step 4: Convert binary profiling data to human-readable text format:
$ gprof /path/to/executable >gprof.out
The file "gprof.out" will contain in text format functions and the
amount of time they take during execution.
******************************************
Contact
******************************************
For help or for reporting bugs or comments, please contact Pankaj Gupta
at pankaj.gupta@stjude.org or John Obenauer at john.obenauer@stjude.org.