Compare commits
11 Commits
sumatra_v1
...
master
Author | SHA1 | Date | |
---|---|---|---|
89fa626950 | |||
1c27cff112 | |||
c81ac1ec53 | |||
a2b7a11b84 | |||
89eafb3772 | |||
29081ddbb3 | |||
c4822c4874 | |||
294a31624c | |||
646bfd44d4 | |||
1edde50609 | |||
6613bcb74a |
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,3 +1,3 @@
|
|||||||
[submodule "sumalibs"]
|
[submodule "sumalibs"]
|
||||||
path = sumalibs
|
path = sumalibs
|
||||||
url = https://git.metabarcoding.org/obitools/sumalibs.git
|
url = https://forge.metabarcoding.org/obitools/sumalibs.git
|
||||||
|
35
Makefile
35
Makefile
@ -1,14 +1,17 @@
|
|||||||
EXEC=sumatra
|
PREFIX=/usr/local
|
||||||
|
|
||||||
SUMATRA_SRC= sumatra.c \
|
CFLAGS=-I$(PREFIX)/include
|
||||||
mtcompare_sumatra.c
|
|
||||||
|
|
||||||
SUMATRA_OBJ= $(patsubst %.c,%.o,$(SUMATRA_SRC))
|
|
||||||
|
|
||||||
|
EXEC = sumatra
|
||||||
|
|
||||||
SRCS= $(SUMATRA_SRC)
|
SUMATRA_SRC = sumatra.c \
|
||||||
|
mtcompare_sumatra.c
|
||||||
|
|
||||||
LIB= -lfasta -llcs -lfile -lutils -lz -lm
|
SUMATRA_OBJ = $(patsubst %.c,%.o,$(SUMATRA_SRC))
|
||||||
|
|
||||||
|
SRCS = $(SUMATRA_SRC)
|
||||||
|
|
||||||
|
LIB = -lsuma -lz -lm
|
||||||
|
|
||||||
include ./global.mk
|
include ./global.mk
|
||||||
|
|
||||||
@ -23,9 +26,9 @@ all: $(EXEC)
|
|||||||
|
|
||||||
# executable compilation and link
|
# executable compilation and link
|
||||||
|
|
||||||
sumatra: $(SUMATRA_OBJ) $(LIBFASTA) $(LIBLCS) $(LIBFILE) $(LIBUTILS)
|
sumatra: $(SUMATRA_OBJ) ./sumalibs/libsuma.a
|
||||||
$(CC) $(LDFLAGS) -o $@ -pthread $(SUMATRA_OBJ) $(LIBFASTAPATH) $(LIBLCSPATH) $(LIBFILEPATH) $(LIBUTILSPATH) $(LIB)
|
$(CC) $(LDFLAGS) -o $@ -pthread $(SUMATRA_OBJ) $(LIBSUMAPATH) $(LIB)
|
||||||
|
|
||||||
########
|
########
|
||||||
#
|
#
|
||||||
# project management
|
# project management
|
||||||
@ -33,12 +36,10 @@ sumatra: $(SUMATRA_OBJ) $(LIBFASTA) $(LIBLCS) $(LIBFILE) $(LIBUTILS)
|
|||||||
########
|
########
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o
|
rm -f $(SUMATRA_OBJ)
|
||||||
rm -f *.P
|
|
||||||
rm -f $(EXEC)
|
rm -f $(EXEC)
|
||||||
$(MAKE) -C ./sumalibs/libfasta clean
|
$(MAKE) -C ./sumalibs clean
|
||||||
$(MAKE) -C ./sumalibs/liblcs clean
|
|
||||||
$(MAKE) -C ./sumalibs/libfile clean
|
|
||||||
$(MAKE) -C ./sumalibs/libutils clean
|
|
||||||
|
|
||||||
|
install: all
|
||||||
|
install -d $(DESTDIR)$(PREFIX)/bin/
|
||||||
|
install -m 755 $(EXEC) $(DESTDIR)$(PREFIX)/bin/
|
28
global.mk
28
global.mk
@ -1,22 +1,15 @@
|
|||||||
|
LIBSUMAPATH = -L./sumalibs
|
||||||
|
|
||||||
LIBFASTAPATH = -L./sumalibs/libfasta
|
LIBSUMA = ./sumalibs/libsuma.a
|
||||||
LIBLCSPATH = -L./sumalibs/liblcs
|
|
||||||
LIBFILEPATH = -L./sumalibs/libfile
|
|
||||||
LIBUTILSPATH = -L./sumalibs/libutils
|
|
||||||
|
|
||||||
LIBFASTA = ./sumalibs/libfasta/libfasta.a
|
|
||||||
LIBLCS = ./sumalibs/liblcs/liblcs.a
|
|
||||||
LIBFILE = ./sumalibs/libfile/libfile.a
|
|
||||||
LIBUTILS = ./sumalibs/libutils/libutils.a
|
|
||||||
|
|
||||||
CC=gcc
|
CC=gcc
|
||||||
LDFLAGS=
|
LDFLAGS=
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(CC),gcc)
|
ifeq ($(CC),gcc)
|
||||||
CFLAGS = -O3 -s -DOMP_SUPPORT -fopenmp -w
|
CFLAGS = -I sumalibs -O3 -s -DOMP_SUPPORT -w
|
||||||
else
|
else
|
||||||
CFLAGS = -O3 -w
|
CFLAGS = -I sumalibs -O3 -w
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@ -32,14 +25,5 @@ default: all
|
|||||||
#
|
#
|
||||||
########
|
########
|
||||||
|
|
||||||
./sumalibs/libfasta/libfasta.a:
|
./sumalibs/libsuma.a:
|
||||||
$(MAKE) -C ./sumalibs/libfasta
|
$(MAKE) -C ./sumalibs
|
||||||
|
|
||||||
./sumalibs/liblcs/liblcs.a:
|
|
||||||
$(MAKE) -C ./sumalibs/liblcs
|
|
||||||
|
|
||||||
./sumalibs/libfile/libfile.a:
|
|
||||||
$(MAKE) -C ./sumalibs/libfile
|
|
||||||
|
|
||||||
./sumalibs/libutils/libutils.a:
|
|
||||||
$(MAKE) -C ./sumalibs/libutils
|
|
||||||
|
@ -10,10 +10,10 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "sumatra.h"
|
#include "sumatra.h"
|
||||||
#include "./sumalibs/libfasta/sequence.h"
|
#include "libfasta/sequence.h"
|
||||||
#include "./sumalibs/libutils/utilities.h"
|
#include "libutils/utilities.h"
|
||||||
#include "./sumalibs/liblcs/upperband.h"
|
#include "liblcs/upperband.h"
|
||||||
#include "./sumalibs/liblcs/sse_banded_LCS_alignment.h"
|
#include "liblcs/sse_banded_LCS_alignment.h"
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
2
sumalibs
2
sumalibs
Submodule sumalibs updated: 049129488e...9f08b85eaf
32
sumatra.c
32
sumatra.c
@ -14,13 +14,13 @@
|
|||||||
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include "./sumalibs/libfasta/sequence.h"
|
#include "libfasta/sequence.h"
|
||||||
#include "./sumalibs/liblcs/upperband.h"
|
#include "liblcs/upperband.h"
|
||||||
#include "./sumalibs/liblcs/sse_banded_LCS_alignment.h"
|
#include "liblcs/sse_banded_LCS_alignment.h"
|
||||||
#include "./sumalibs/libutils/utilities.h"
|
#include "libutils/utilities.h"
|
||||||
#include "mtcompare_sumatra.h"
|
#include "mtcompare_sumatra.h"
|
||||||
|
|
||||||
#define VERSION "1.0.20"
|
#define VERSION "1.0.36"
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------- */
|
/* ----------------------------------------------- */
|
||||||
@ -214,7 +214,7 @@ int compare1(fastaSeqCount db1, double threshold, BOOL normalize, int reference,
|
|||||||
BOOL always = TRUE;
|
BOOL always = TRUE;
|
||||||
int64_t pairs = (int64_t)(db1.count - 1) * (int64_t)db1.count /2;
|
int64_t pairs = (int64_t)(db1.count - 1) * (int64_t)db1.count /2;
|
||||||
BOOL print;
|
BOOL print;
|
||||||
double score;
|
double score, scoreG;
|
||||||
int32_t i,j;
|
int32_t i,j;
|
||||||
char* s1;
|
char* s1;
|
||||||
char* s2;
|
char* s2;
|
||||||
@ -239,7 +239,7 @@ int compare1(fastaSeqCount db1, double threshold, BOOL normalize, int reference,
|
|||||||
calculateMaxAndMinLenDB(db1, &lmax, &lmin);
|
calculateMaxAndMinLenDB(db1, &lmax, &lmin);
|
||||||
sizeForSeqs = prepareTablesForSumathings(lmax, lmin, threshold, normalize, reference, lcsmode, &address, &iseq1, &iseq2);
|
sizeForSeqs = prepareTablesForSumathings(lmax, lmin, threshold, normalize, reference, lcsmode, &address, &iseq1, &iseq2);
|
||||||
|
|
||||||
for (i=0; i < db1.count; i++) // ...??
|
for (i=0; i < db1.count; i++) // ...?? db1.count - 1 probably
|
||||||
for (j=i+1; j < db1.count; j++)
|
for (j=i+1; j < db1.count; j++)
|
||||||
{
|
{
|
||||||
print = FALSE;
|
print = FALSE;
|
||||||
@ -252,7 +252,23 @@ int compare1(fastaSeqCount db1, double threshold, BOOL normalize, int reference,
|
|||||||
l1 = (db1.fastaSeqs+i)->length;
|
l1 = (db1.fastaSeqs+i)->length;
|
||||||
s2 = (db1.fastaSeqs+j)->sequence;
|
s2 = (db1.fastaSeqs+j)->sequence;
|
||||||
l2 = (db1.fastaSeqs+j)->length;
|
l2 = (db1.fastaSeqs+j)->length;
|
||||||
|
|
||||||
|
/* fprintf(stderr, "\n%s", s1);
|
||||||
|
fprintf(stderr, "\n%s", s2);
|
||||||
|
fprintf(stderr, "\n%f", threshold);
|
||||||
|
fprintf(stderr, "\n%d", normalize);
|
||||||
|
fprintf(stderr, "\n%d", reference);
|
||||||
|
fprintf(stderr, "\n%d\n", lcsmode);
|
||||||
|
*/
|
||||||
|
// score = generic_sse_banded_lcs_align(s1, s2, threshold, normalize, reference, lcsmode);
|
||||||
|
// fprintf(stderr, "\nscore generic = %f", scoreG);
|
||||||
score = alignForSumathings(s1, iseq1, s2, iseq2, l1, l2, normalize, reference, lcsmode, address, sizeForSeqs, LCSmin);
|
score = alignForSumathings(s1, iseq1, s2, iseq2, l1, l2, normalize, reference, lcsmode, address, sizeForSeqs, LCSmin);
|
||||||
|
// fprintf(stderr, "\nscore = %f\n", score);
|
||||||
|
// if (scoreG != score)
|
||||||
|
// {
|
||||||
|
// fprintf(stderr, "\nscores differents\n");
|
||||||
|
// exit(1);
|
||||||
|
// }
|
||||||
print = always || (((normalize || lcsmode) && (score >= threshold)) || ((!lcsmode && !normalize) && (score <= threshold)));
|
print = always || (((normalize || lcsmode) && (score >= threshold)) || ((!lcsmode && !normalize) && (score <= threshold)));
|
||||||
if (print && !lcsmode && normalize)
|
if (print && !lcsmode && normalize)
|
||||||
score = 1.0 - score;
|
score = 1.0 - score;
|
||||||
@ -322,7 +338,7 @@ int compare2(fastaSeqCount db1, fastaSeqCount db2, double threshold, BOOL normal
|
|||||||
score = alignForSumathings(s1, iseq1, s2, iseq2, l1, l2, normalize, reference, lcsmode, address, sizeForSeqs, LCSmin);
|
score = alignForSumathings(s1, iseq1, s2, iseq2, l1, l2, normalize, reference, lcsmode, address, sizeForSeqs, LCSmin);
|
||||||
print = always || (((normalize || lcsmode) && (score >= threshold)) || ((!lcsmode && !normalize) && (score <= threshold)));
|
print = always || (((normalize || lcsmode) && (score >= threshold)) || ((!lcsmode && !normalize) && (score <= threshold)));
|
||||||
if (print && !lcsmode && normalize)
|
if (print && !lcsmode && normalize)
|
||||||
score = 1.0 - score;
|
score = 1.0 - score; // TODO isn't that already done?
|
||||||
}
|
}
|
||||||
printResults(db1.fastaSeqs+i, db2.fastaSeqs+j, score, extradata, pairs, print);
|
printResults(db1.fastaSeqs+i, db2.fastaSeqs+j, score, extradata, pairs, print);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef SUMATRA_H_
|
#ifndef SUMATRA_H_
|
||||||
#define SUMATRA_H_
|
#define SUMATRA_H_
|
||||||
|
|
||||||
#include "./sumalibs/libfasta/sequence.h"
|
#include "libfasta/sequence.h"
|
||||||
|
|
||||||
void printResults(fastaSeqPtr seq1, fastaSeqPtr seq2, double score, BOOL extradata, int64_t pairs, BOOL print);
|
void printResults(fastaSeqPtr seq1, fastaSeqPtr seq2, double score, BOOL extradata, int64_t pairs, BOOL print);
|
||||||
|
|
||||||
|
@ -29,7 +29,8 @@ Untar the archive, go into the newly created directory and compile:
|
|||||||
```
|
```
|
||||||
tar –zxvf sumatra_v[x.x.xx].tar.gz
|
tar –zxvf sumatra_v[x.x.xx].tar.gz
|
||||||
cd sumatra_v[x.x.xx]
|
cd sumatra_v[x.x.xx]
|
||||||
make
|
make -C sumalibs install
|
||||||
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
Binary file not shown.
Reference in New Issue
Block a user