Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3d98e2e83 | ||
|
|
e2ebc357ee |
No files matched your search
-16
@@ -1,16 +0,0 @@
|
||||
|
||||
# /src/
|
||||
/src/*.P
|
||||
/src/*.a
|
||||
/src/ecoPrimer
|
||||
|
||||
# /src/libecoPCR/
|
||||
/src/libecoPCR/*.P
|
||||
/src/libecoPCR/*.a
|
||||
|
||||
# /src/libecoprimer/
|
||||
/src/libecoprimer/*.P
|
||||
/src/libecoprimer/*.a
|
||||
|
||||
# /src/libthermo/
|
||||
/src/libthermo/*.P
|
||||
+1389
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,15 @@
|
||||
|
||||
|
||||
./ecoPrimer -d /Groups/Barcode-Leca/eubacteria-gr -l 10 -L 1000 -e 3 > euBactResults.txt
|
||||
./ecoPrimer -d ChloroDB/chloroplast -l 5 -L 120 -r 58023 -e 3 > chloroVascularPlantsEric.txt
|
||||
./ecoPrimer -d /Users/tiayyba/Documents/Data/mitochondrion/mitochondrion -q 0.4 -s 0.5 -l 10 -L 60 -r 1 -i 1 -T 0.2 -p > setsRoot.txt
|
||||
|
||||
|
||||
./ecoPCR -d /Users/tiayyba/Documents/workspace/ecoPrimers/src/mitochondrion/mitochondrion -l 50 -L 120 -r 7742 TAGAACAGGCTCCTCTAG TTAGATACCCCACTATGC > 12SV5.ecoPCR
|
||||
ecoTaxSpecificity -d /Users/tiayyba/Documents/workspace/ecoPrimers/src/mitochondrion/mitochondrion /Users/tiayyba/Documents/workspace/ecoPCR/src/12SV5.ecoPCR
|
||||
|
||||
|
||||
|
||||
149 ./ecoPrimer -d /Users/tiayyba/Documents/Data/mitochondrion/mitochondrion -r 40674 -E 9606 -l 10 -L 100 > MamalsNotHomoSapien.primers
|
||||
150 ./ecoPrimer -d /Users/tiayyba/Documents/Data/mitochondrion/mitochondrion -q 0.4 -s 0.5 -r 40674 -E 9606 -l 10 -L 100 > MamalsNotHomoSapien.primers
|
||||
151 ./ecoPrimer -d /Users/tiayyba/Documents/Data/mitochondrion/mitochondrion -q 0.5 -s 0.6 -r 40674 -E 9606 -l 10 -L 100 > MamalsNotHomoSapien1.primers
|
||||
Binary file not shown.
+250
@@ -0,0 +1,250 @@
|
||||
plot(s$seq, s$size, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 0.7e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 700, "nSeq = 273")
|
||||
plot(s$seq, s$time, xlab="Sequence Count", ylab="Time[s]", main="c. time vs sequence count withount data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 300, "nSeq = 273")
|
||||
plot(t$seq, t$time, xlab="Sequence Count", ylab="Time[s]", main="d. time vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(350, 20, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 0.6e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 600, "nSeq = 273")
|
||||
plot(s$seq, s$time, xlab="Sequence Count", ylab="Time[s]", main="c. time vs sequence count withount data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 300, "nSeq = 273")
|
||||
plot(t$seq, t$time, xlab="Sequence Count", ylab="Time[s]", main="d. time vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 15, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 0.6e+09, "Nseq = 273")
|
||||
plot(t$seq, t$size, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 600, "Nseq = 273")
|
||||
plot(s$seq, s$time, xlab="Sequence Count", ylab="Time[s]", main="c. time vs sequence count withount data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 300, "Nseq = 273")
|
||||
plot(t$seq, t$time, xlab="Sequence Count", ylab="Time[s]", main="d. time vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(400, 15, "Nseq = 273")
|
||||
s = read.table('/Users/tiayyba/Desktop/euBact/ecoprimer_71493.log', header= T)
|
||||
t = read.table('/Users/tiayyba/Desktop/euBact/ecoprimer_84784.log', header= T)
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 3e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1150, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 3e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1150, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1.7e+09, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1.4e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 500, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1.4e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 500, "nSeq = 273")
|
||||
text(450, 1000, "nSeq = 273")
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$seq, s$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="a. memory used vs sequence count without data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1.3e+09, "nSeq = 273")
|
||||
plot(t$seq, t$size*1.5, xlab="Sequence Count", ylab="Memory used[B]", main="b. memory used vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 1000, "nSeq = 273")
|
||||
plot(s$seq, s$time, xlab="Sequence Count", ylab="Time[s]", main="c. time vs sequence count withount data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 700, "nSeq = 273")
|
||||
plot(t$seq, t$time, xlab="Sequence Count", ylab="Time[s]", main="d. time vs sequence count with data mining")
|
||||
abline(v = 273, col = "Blue")
|
||||
text(450, 30, "nSeq = 273")
|
||||
s = read.table('/Users/tiayyba/Desktop/UsedistRef1.txt', header = T)
|
||||
s
|
||||
plot(s$Distance, s$Count)
|
||||
plot(s$Distance, log(s$Count))
|
||||
plot(log(s$Distance), log(s$Count))
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UU_results/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UsedistRef1.txt', header = T)
|
||||
plot(s$Distance*100, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UU_results/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UsedistRef1.txt', header = T)
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UU_results/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UsedistRef1.txt', header = T)
|
||||
plot(s$Distance, log(s$Count))
|
||||
plot(s$Distance*1000, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/UsedistRef1.txt', header = T)
|
||||
plot(s$Distance*1000, log(s$Count))
|
||||
u = read.table('/Users/tiayyba/Desktop/UU_FdistRef2.txt', header = T)
|
||||
u
|
||||
max(u$Count)
|
||||
max(u$Distance)
|
||||
plot(u$Distance, u$Count)
|
||||
plot(log(u$Distance), log(u$Count))
|
||||
plot(u$Distance, u$Count, log(xy))
|
||||
plot(u$Distance, u$Count, log=xy)
|
||||
plot(u$Distance, u$Count, log='xy')
|
||||
plot(u$Distance+1, u$Count, log='xy')
|
||||
plot(u$Distance, u$Count, log='xy')
|
||||
?plot
|
||||
s = read.table('/Users/tiayyba/Desktop/UU_FdistRef1.txt', header = T)
|
||||
plot(s$Distance, s$Count)
|
||||
plot(log(s$Distance), log(s$Count))
|
||||
plot(s$Distance, s$Count, log='xy')
|
||||
plot(s$Distance, log(s$Count))
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
s
|
||||
sNew = s[order(s$Count),]
|
||||
sNew
|
||||
plot(s$Distance, s$Count)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
t = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef2.old.txt', header = T)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef2.old.txt', header = T)
|
||||
u = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
t = data.frame(count=s$Count,uu=u$Distance,cs=s$Distance,col=(s$Distance < u$Distance)+1)
|
||||
plot(s$Distance,s$Count,log='xy',col=t$col)
|
||||
par(mfrow=c(1,2))
|
||||
plot(s$Distance+1,s$Count,log='xy',col=t$col)
|
||||
plot(u$Distance+1,u$Count,log='xy',col=t$col)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef2.old.txt', header = T)
|
||||
u = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_distRef1.old.txt', header = T)
|
||||
t = data.frame(count=s$Count,uu=u$Distance,cs=s$Distance,col=(s$Distance < u$Distance)+1)
|
||||
plot(u$Distance+1,u$Count,log='xy',col=t$col)
|
||||
par(mfrow=c(1,2))
|
||||
plot(s$Distance+1,s$Count,log='xy',col=t$col)
|
||||
plot(u$Distance+1,u$Count,log='xy',col=t$col)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F82/plots/F82_distRef1.txt', header = F)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F82/plots/F82_distRef1.txt', header = T)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F82/plots/F82_distRef2.txt', header = T)
|
||||
u = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F82/plots/F82_distRef1.txt', header = T)
|
||||
t = data.frame(count=s$Count,uu=u$Distance,cs=s$Distance,col=(s$Distance < u$Distance)+1)
|
||||
t = data.frame(count=u$Count,uu=u$Distance,cs=s$Distance,col=(s$Distance < u$Distance)+1)
|
||||
s = read.table('/Users/tiayyba/Desktop/abc'header = F)
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
plot(s)
|
||||
s
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
s
|
||||
plot(s$V2, s$V1)
|
||||
plot(s$V1, s$V2)
|
||||
plot(s$V1, s$V2, xlab="sequence number", ylab="sequence count")
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
s
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
s
|
||||
Sr tacg gcta ctag actg␍par(mfrow=c(2,2))
|
||||
plot(s$V1, s$V2, xlab="sequence number", ylab="sequence count", main = "sample: tacg")
|
||||
plot(s$V1, s$V3, xlab="sequence number", ylab="sequence count", main = "sample: gcta")
|
||||
plot(s$V1, s$V4, xlab="sequence number", ylab="sequence count", main = "sample: ctag")
|
||||
plot(s$V1, s$V5, xlab="sequence number", ylab="sequence count", main = "sample: actg")
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
s
|
||||
plot(s$V1, s$V2, xlab="sequence number", ylab="sequence count", main = "sample: Ranunculus_acris")
|
||||
Sr tacg gcta ctag actg␍par(mfrow=c(2,2))
|
||||
plot(s$V1, s$V2, xlab="sequence number", ylab="sequence count", main = "sample: Ranunculus_acris")
|
||||
plot(s$V1, s$V3, xlab="sequence number", ylab="sequence count", main = "sample: Luzula_sudetica")
|
||||
plot(s$V1, s$V4, xlab="sequence number", ylab="sequence count", main = "sample: Deschampsia_cespitosa")
|
||||
plot(s$V1, s$V5, xlab="sequence number", ylab="sequence count", main = "sample: Cardamine_pratensis_paludosa")
|
||||
s = read.table('/Users/tiayyba/Desktop/abc', header = F)
|
||||
par(mfrow=c(2,2))
|
||||
plot(s$V1, s$V2, xlab="sequence number", ylab="sequence count", main = "sample 1: Ranunculus_acris")
|
||||
plot(s$V1, s$V3, xlab="sequence number", ylab="sequence count", main = "sample 2: Luzula_sudetica")
|
||||
plot(s$V1, s$V4, xlab="sequence number", ylab="sequence count", main = "sample 3: Deschampsia_cespitosa")
|
||||
plot(s$V1, s$V5, xlab="sequence number", ylab="sequence count", main = "sample 4: Cardamine_pratensis_paludosa")
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt', header = F)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt', header = F, row.names = 1)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt', header = F, row.names=1)
|
||||
s = read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt',row.names=1)
|
||||
s
|
||||
plot(s$count, s$uu)
|
||||
plot(s$uu, s$count)
|
||||
plot(s$uu, s$count, col = s$col)
|
||||
plot(s$cs, s$count, col = s$col)
|
||||
plot(s$cs, s$count, col = s$col, col = (s$uu < s$cs) +1)
|
||||
plot(s$uu, s$count)
|
||||
plot(log(s$uu), log(s$count))
|
||||
plot(s$uu, log(s$count))
|
||||
plot(log(s$uu), log(s$count))
|
||||
plot(s$uu, s$count)
|
||||
plot(s$uu, log(s$count))
|
||||
plot(s$uu, log(s$count), xlab = "distance from Uncia uncia", ylab = "log(SequenceCount)")
|
||||
= read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt', header = T)
|
||||
s= read.table('/Users/tiayyba/Desktop/ErrModel/Borneo/UnciaUncia/UU_F83/plots/F83_dist.txt', header = T)
|
||||
s
|
||||
par(mfrow = c(1,2))
|
||||
plot(s$cs, s$count, col = s$col)
|
||||
plot(s$cs, s$count,log = 'xy', col = s$col)
|
||||
par(mfrow = c(1,2))
|
||||
plot(s$cs, s$count,log = 'xy', col = s$col)
|
||||
plot(s$uu, s$count,log = 'xy', col = s$col)
|
||||
score = (0.407)*0.890*exp(-sqrt(692.33/1.247))
|
||||
score
|
||||
score1 = (0.511)*0.904*exp(-sqrt(481/148.5))
|
||||
score1
|
||||
score1 = sqrt(481/148.5)
|
||||
score1
|
||||
score = sqrt(692.33/1.247)
|
||||
score
|
||||
score = (0.407)^2*0.890*sqrt(692.33/1.247)
|
||||
score
|
||||
score1 = (0.511)^2*0.904*sqrt(481/148.5)
|
||||
score1
|
||||
score = (0.407)*0.890*sqrt(692.33/1.247)
|
||||
score
|
||||
score1 = (0.511)*0.904*sqrt(481/148.5)
|
||||
score1
|
||||
score = (0.407)*0.890*692.33/sqrt(1.247)
|
||||
score
|
||||
score1 = (0.511)*0.904*481/sqrt(148.5)
|
||||
score1
|
||||
sum = 714 + 710 + 699
|
||||
sum
|
||||
2123/3
|
||||
1760+3210+4950+2090
|
||||
12010+3300+220
|
||||
4400+385+55+495+715+800+450+2200+1540+1210+550
|
||||
944 - 220
|
||||
724 - 40
|
||||
684 -10
|
||||
364-278
|
||||
944-657
|
||||
250+220
|
||||
7*9
|
||||
q
|
||||
quit
|
||||
s = read.table('metazoas_Mdyn_T50.gv')
|
||||
s = read.table('metazoas_Mdyn_T50.gv.hist.gv')
|
||||
t = read.table('test.gv')
|
||||
hist(t$V3)
|
||||
hist(s$V3)
|
||||
File renamed without changes.
@@ -54,7 +54,6 @@ libthermo/libthermo.a:
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f *.P
|
||||
rm -f $(EXEC)
|
||||
$(MAKE) -C libecoPCR clean
|
||||
$(MAKE) -C libecoprimer clean
|
||||
|
||||
Executable
BIN
Binary file not shown.
Regular → Executable
+6
-9
@@ -20,7 +20,7 @@
|
||||
#include"libthermo/thermostats.h"
|
||||
|
||||
|
||||
#define VERSION "0.4"
|
||||
#define VERSION "0.3"
|
||||
/* TR: by default, statistics are made on species level*/
|
||||
#define DEFAULTTAXONRANK "species"
|
||||
|
||||
@@ -78,7 +78,7 @@ static void PrintHelp()
|
||||
PP "-A : Print the list of all identifier of sequences present in the database\n\n");
|
||||
PP "-f : Remove data mining step during strict primer identification\n\n");
|
||||
PP "-v : Store statistic file about memory usage during strict primer identification\n\n");
|
||||
PP "-p : Print sets of primers (may take several minutes after primers have been designed!)\n\n");
|
||||
PP "-p : Print sets of primers\n\n");
|
||||
PP "-T : Ignore pairs having specificity below this Threshold\n\n");
|
||||
PP "\n");
|
||||
PP "------------------------------------------\n");
|
||||
@@ -156,7 +156,7 @@ void initoptions(poptions_t options)
|
||||
options->specificity_threshold = 0.6;
|
||||
options->links_cnt = 1;
|
||||
options->max_links_percent = -1; /*graph only those primers having maximum 15% links*/
|
||||
options->filter_on_links = FALSE;
|
||||
options->filter_on_links = TRUE;
|
||||
}
|
||||
|
||||
void printapair(int32_t index,ppair_t pair, poptions_t options)
|
||||
@@ -430,24 +430,21 @@ void printpairs (ppairtree_t pairs, poptions_t options,ecotaxonomy_t *taxonomy,
|
||||
if (options->g)
|
||||
{
|
||||
printf("# Ignore %s:\n",taxon[(options->g>1) ? 1:0]);
|
||||
for(i=0;i<(uint32_t)options->g;i++)
|
||||
for(i=0;i<(uint32_t)options->r;i++)
|
||||
{
|
||||
current_taxon=eco_findtaxonbytaxid(taxonomy,options->ignored_taxid[i]);
|
||||
printf("# %d : %s (%s)\n", current_taxon->taxid,
|
||||
current_taxon->name,
|
||||
taxonomy->ranks->label[current_taxon->rank]
|
||||
);
|
||||
|
||||
}
|
||||
printf("#\n");
|
||||
}
|
||||
|
||||
printf("# strict primer quorum : %3.2f\n",options->strict_quorum);
|
||||
printf("# example quorum : %3.2f\n",options->sensitivity_quorum);
|
||||
if (options->g + options->r)
|
||||
printf("# counterexample quorum : %3.2f\n",options->false_positive_quorum);
|
||||
|
||||
|
||||
printf("#\n");
|
||||
printf("# database : %s\n",options->prefix);
|
||||
printf("# Database is constituted of %5d examples corresponding to %5d %s\n",options->insamples,
|
||||
@@ -768,7 +765,7 @@ int main(int argc, char **argv)
|
||||
/* -------------------- */
|
||||
case 'p': /* print sets of primers */
|
||||
/* --------------------------------- */
|
||||
//options.print_sets_of_primers = TRUE;
|
||||
options.print_sets_of_primers = TRUE;
|
||||
break;
|
||||
|
||||
/* --------------------------------- */
|
||||
@@ -790,7 +787,7 @@ int main(int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
options.filter_on_links = TRUE;
|
||||
options.filter_on_links = FALSE;
|
||||
break;
|
||||
|
||||
case '?': /* bad option */
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
MACHINE=MAC_OS_X
|
||||
LIBPATH= -LlibecoPCR -Llibecoprimer -Llibthermo
|
||||
LIBPATH= -Llibapat -LlibecoPCR -Llibecoprimer -Llibthermo
|
||||
MAKEDEPEND = gcc -D$(MACHINE) -M $(CPPFLAGS) -o $*.d $<
|
||||
|
||||
CC=gcc
|
||||
|
||||
@@ -54,19 +54,13 @@ void *eco_realloc(void *chunk,
|
||||
{
|
||||
void *newchunk;
|
||||
|
||||
if (newsize == 0)
|
||||
{
|
||||
if (chunk)
|
||||
free(chunk);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
newchunk = realloc(chunk,newsize);
|
||||
|
||||
|
||||
if (!newchunk)
|
||||
{
|
||||
fprintf(stderr,"Requested memory : %d\n",newsize);
|
||||
ecoError(ECO_MEM_ERROR,error_message,filename,line);
|
||||
fprintf(stderr,"Requested memory : %d\n",newsize);
|
||||
}
|
||||
if (!chunk)
|
||||
eco_chunk_malloc++;
|
||||
|
||||
@@ -1184,8 +1184,8 @@ void sets_by_SimulatedAnealing (pairset *pair_set,
|
||||
}
|
||||
//nset = get_neighbor (&set, ¶ms); //all random
|
||||
//nset = get_neighbor2 (&set, ¶ms); //replace next with next available
|
||||
nset = get_neighbor3 (&set, ¶ms); //replace the one with least contribution with next
|
||||
//nset = get_neighbor4 (&set, ¶ms); //replace randome no of least contributing elements with random elements in the remaining set
|
||||
//nset = get_neighbor3 (&set, ¶ms); //replace the one with least contribution with next
|
||||
nset = get_neighbor4 (&set, ¶ms); //replace randome no of least contributing elements with random elements in the remaining set
|
||||
|
||||
if (nset.set_specificity < min_spc)
|
||||
min_spc = nset.set_specificity;
|
||||
@@ -1218,10 +1218,10 @@ void sets_by_SimulatedAnealing (pairset *pair_set,
|
||||
ECOFREE (set.set_wellIdentifiedTaxa, "Could not free memory for pair set wi");
|
||||
set = clone_set (&nset, options->dbsize);
|
||||
score = nscore;
|
||||
//which_one_to_replace = 0;
|
||||
//last_replaced_with = 0;
|
||||
//printf ("Seed Set: ");
|
||||
//print_set_info (&set, ¶ms);
|
||||
which_one_to_replace = 0;
|
||||
last_replaced_with = 0;
|
||||
printf ("Seed Set: ");
|
||||
print_set_info (&set, ¶ms);
|
||||
}
|
||||
k++;
|
||||
ECOFREE (nset.set_wellIdentifiedTaxa, "Could not free memory for pair set wi");
|
||||
@@ -1301,8 +1301,8 @@ void sets_by_TabuSearch (pairset *pair_set,
|
||||
|
||||
//nset = get_neighbor (&set, ¶ms); //all random
|
||||
//nset = get_neighbor2 (&set, ¶ms); //replace next with next available
|
||||
nset = get_neighbor3 (&set, ¶ms); //replace the one with least contribution with next
|
||||
//nset = get_neighbor4 (&set, ¶ms); //replace randome no of least contributing elements with random elements in the remaining set
|
||||
//nset = get_neighbor3 (&set, ¶ms); //replace the one with least contribution with next
|
||||
nset = get_neighbor4 (&set, ¶ms); //replace randome no of least contributing elements with random elements in the remaining set
|
||||
|
||||
if (nset.set_specificity < min_spc)
|
||||
min_spc = nset.set_specificity;
|
||||
@@ -1601,7 +1601,7 @@ size_t primers_changeSortedArray (ppair_t ** pairs,
|
||||
if((sortedpairs[i]->intaxa - sortedpairs[i]->notwellidentifiedtaxa) < (sortedpairs[j]->intaxa - sortedpairs[j]->notwellidentifiedtaxa))
|
||||
allowedtaxa = (sortedpairs[i]->intaxa - sortedpairs[i]->notwellidentifiedtaxa)/2;
|
||||
else
|
||||
allowedtaxa = (sortedpairs[j]->intaxa - sortedpairs[j]->notwellidentifiedtaxa)/2;
|
||||
allowedtaxa = (sortedpairs[j]->intaxa - sortedpairs[j]->notwellidentifiedtaxa)/2;
|
||||
|
||||
|
||||
//if (total_links > 5 && (total_links <= options->max_links_percent || options->max_links_percent==-1))
|
||||
|
||||
Regular → Executable
File mode changed.
@@ -27,17 +27,6 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
ecoseq_t *seq,
|
||||
uint32_t *size)
|
||||
{
|
||||
|
||||
/*
|
||||
* This function aims at building a vector of count for every possible hash codes
|
||||
*
|
||||
* The function must be applied once on each sequence
|
||||
*
|
||||
* The function allocates memory on the first call for the dest table
|
||||
* The function also allocates memory for the static temporary table in_last_seq and
|
||||
* the function must be called with *dest == -1 in order to free this temporary table
|
||||
*
|
||||
*/
|
||||
static char *in_last_seq=NULL;
|
||||
uint32_t i=0;
|
||||
uint32_t j;
|
||||
@@ -51,6 +40,7 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
|
||||
// run on the first call;
|
||||
|
||||
|
||||
if (dest==(void*)-1)
|
||||
{
|
||||
if (in_last_seq) ECOFREE(in_last_seq,"Free in last seq table");
|
||||
@@ -58,27 +48,14 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
}
|
||||
|
||||
|
||||
/* FWORDSIZE = 13 => *size = 67 108 864
|
||||
* FWORDSIZE = 14 => *size = 268 435 456
|
||||
* FWORDSIZE = 15 => *size = 1 073 741 824
|
||||
*/
|
||||
|
||||
*size = pow(4,FWORDSIZE);
|
||||
|
||||
/*
|
||||
* in_last_seq is a vector of char as it is just to avoid counting twice (or more) a hash code (a DNA word)
|
||||
* it is set to zero (with memset) and then filled with ones for each word belonging to the sequence
|
||||
*/
|
||||
|
||||
if (!in_last_seq)
|
||||
in_last_seq = ECOMALLOC(*size*sizeof(char),
|
||||
"Cannot allocate filtering hash table");
|
||||
|
||||
memset(in_last_seq,0,*size*sizeof(char));
|
||||
|
||||
/*
|
||||
* Allocate (on first call) the memory for the table of counts
|
||||
*/
|
||||
|
||||
if (!dest)
|
||||
{
|
||||
@@ -95,10 +72,6 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
|
||||
// DEBUG_LOG("Sequence %s @ %d : %18.18s",seq->AC,i,(seq->SQ+i));
|
||||
|
||||
/*
|
||||
* Compute first word of seq
|
||||
*/
|
||||
|
||||
for (i=0, base = seq->SQ; i < FWORDSIZE && i < lmax; i++,base++)
|
||||
{
|
||||
error<<= 1;
|
||||
@@ -122,9 +95,6 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
|
||||
goodword=(uint32_t)((doublestrand) ? MINI(word,antiword):word);
|
||||
|
||||
/*
|
||||
* FB: I don't think the test is necessary as the table has just been initialized
|
||||
*/
|
||||
if (!in_last_seq[goodword])
|
||||
{
|
||||
in_last_seq[goodword]=1;
|
||||
@@ -132,9 +102,6 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* compute and store counts (avoid counting twice a word) for the other words of the seq
|
||||
*/
|
||||
|
||||
for (j=1; j < lmax; j++,i++,base++)
|
||||
{
|
||||
@@ -175,7 +142,6 @@ static int32_t *ecoFilteringHashSequence(int32_t *dest,
|
||||
|
||||
}
|
||||
|
||||
|
||||
return dest;
|
||||
|
||||
}
|
||||
|
||||
@@ -33,19 +33,6 @@ pword_t ecoHashSequence(pword_t dest,
|
||||
uint32_t neededWordCount,
|
||||
int32_t quorum)
|
||||
{
|
||||
|
||||
/*
|
||||
* dest / out : words of the hashed sequence position per position
|
||||
* wordsize / in : size of the word to be hashed (record error for that size) BUT not equal to FWORDSIZE ...
|
||||
* ... the size of the word REALLY returned as a result
|
||||
* circular / in : is the sequence circular
|
||||
* doublestrand / in : if we have to hash on both strands of the sequence
|
||||
* seq / in : the sequence in ecoseq format
|
||||
* size / out : number of hashed words (size of the dest vector)
|
||||
* neededWordCount / in : table hash codes of word counts in the full DB (used to filter words)
|
||||
* quorum / in : minimum quorum used to filter words based on the neededWordCount table
|
||||
*/
|
||||
|
||||
uint32_t i=0;
|
||||
uint32_t j;
|
||||
char *base;
|
||||
@@ -67,7 +54,7 @@ pword_t ecoHashSequence(pword_t dest,
|
||||
"I cannot allocate memory for sequence hashing"
|
||||
);
|
||||
|
||||
//DEBUG_LOG("Sequence %s @ %d : %18.18s",seq->AC,i,(seq->SQ+i));
|
||||
// DEBUG_LOG("Sequence %s @ %d : %18.18s",seq->AC,i,(seq->SQ+i));
|
||||
|
||||
for (i=0, base = seq->SQ; i < wordsize && i < lmax; i++,base++)
|
||||
{
|
||||
@@ -110,7 +97,7 @@ pword_t ecoHashSequence(pword_t dest,
|
||||
for (j=1; j < lmax; j++,i++,base++)
|
||||
{
|
||||
|
||||
//DEBUG_LOG("Sequence %s @ %d : %18.18s",seq->AC,j,(seq->SQ+j));
|
||||
// DEBUG_LOG("Sequence %s @ %d : %18.18s",seq->AC,j,(seq->SQ+j));
|
||||
|
||||
/* roll over the sequence for circular ones */
|
||||
|
||||
@@ -148,19 +135,13 @@ pword_t ecoHashSequence(pword_t dest,
|
||||
}
|
||||
|
||||
}
|
||||
//DEBUG_LOG("%s goodword = %d",seq->AC,*size);
|
||||
// DEBUG_LOG("%s goodword = %d",seq->AC,*size);
|
||||
return dest;
|
||||
|
||||
}
|
||||
|
||||
uint32_t ecoCompactHashSequence(pword_t table,uint32_t size)
|
||||
{
|
||||
/*
|
||||
*
|
||||
* MULTIWORD is a word occurring more than once in a sequence
|
||||
*
|
||||
*/
|
||||
|
||||
uint32_t i,j;
|
||||
word_t current;
|
||||
// bool_t here=FALSE;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
static pmerge_t mergeInit(pmerge_t merge,pwordcount_t data,uint32_t s1,uint32_t s2);
|
||||
|
||||
|
||||
static pmerge_t mergeInit(pmerge_t merge, pwordcount_t data, uint32_t s1, uint32_t s2)
|
||||
static pmerge_t mergeInit(pmerge_t merge, pwordcount_t data,uint32_t s1,uint32_t s2)
|
||||
{
|
||||
merge->words = data->words;
|
||||
merge->count = data->strictcount;
|
||||
@@ -26,15 +26,6 @@ typedef enum {S1=1,S2=2,STACK=3} source_t;
|
||||
|
||||
void ecomerge(pwordcount_t data,uint32_t s1,uint32_t s2,uint32_t remainingSeq,uint32_t seqQuorum)
|
||||
{
|
||||
|
||||
/*
|
||||
* data / in out : the table that contains the two parts to be merged
|
||||
* s1 / in : end of the first part of the table
|
||||
* s2 / in : end of the second part of the table
|
||||
* remainingSeq / in : the number of remaining seqs to be added to the table
|
||||
* seqQuorum / in : the minimum number of sequences in which a pattern must appear
|
||||
*/
|
||||
|
||||
merge_t merged;
|
||||
source_t source;
|
||||
word_t currentword,tmpword;
|
||||
@@ -47,31 +38,12 @@ void ecomerge(pwordcount_t data,uint32_t s1,uint32_t s2,uint32_t remainingSeq,ui
|
||||
|
||||
// DEBUG_LOG("Coucou %p s1= %d s2= %d",data,s1,s2)
|
||||
|
||||
/*
|
||||
* init the merged structure (used only for coding convenience, never returned, allocated on the C-stack)
|
||||
* note that :
|
||||
* merged.words : hashcodes (initialized to data->words)
|
||||
* merged.count : counts of each word (initialized to data->strictcount)
|
||||
* merged.read1 : index of the first word of the first subtable (initialized to 0)
|
||||
* merged.read1 : index of the first word of the first subtable (initialized to 0)
|
||||
* merged.read2 : index of the first word of the second subtable (initialized to s1)
|
||||
* merged.size : total size of the table (initialized to s1+s2)
|
||||
*
|
||||
* allocate a new stack of size min(s1, s2)
|
||||
*/
|
||||
|
||||
(void)mergeInit(&merged,data,s1,s2);
|
||||
(void)newQueue(&queue,MINI(s1,s2));
|
||||
|
||||
|
||||
/* true until
|
||||
* merged.read1 == s1 AND merged.read2 == merged.size, i.e. ALL words have been processed
|
||||
*/
|
||||
while (merged.read1 < s1 || merged.read2 < merged.size)
|
||||
{
|
||||
/*
|
||||
* initialize current{word,count} from either STACK (if not empty) or first table (S1)
|
||||
*/
|
||||
if (! queue.empty)
|
||||
{
|
||||
currentword = queue.words[queue.pop];
|
||||
@@ -85,12 +57,6 @@ void ecomerge(pwordcount_t data,uint32_t s1,uint32_t s2,uint32_t remainingSeq,ui
|
||||
source=S1;
|
||||
}
|
||||
|
||||
/*
|
||||
* IF there are some words in the second subtable remaining to be processed AND
|
||||
* its first word is lower than current word
|
||||
* THEN initialize current{word,count} from the second table (S2)
|
||||
*
|
||||
*/
|
||||
if (merged.read2 < merged.size &&
|
||||
WORD(currentword) > WORD(merged.words[merged.read2]))
|
||||
{
|
||||
@@ -99,20 +65,11 @@ void ecomerge(pwordcount_t data,uint32_t s1,uint32_t s2,uint32_t remainingSeq,ui
|
||||
source = S2;
|
||||
}
|
||||
|
||||
/*
|
||||
* record if the two words in the both subtable are the same
|
||||
*/
|
||||
same = (source != S2) && (WORD(currentword) == WORD(merged.words[merged.read2]));
|
||||
nsame+=same;
|
||||
|
||||
// DEBUG_LOG("Merging : r1 = %d s1 = %d r2 = %d size = %d word = %s source=%u same=%u",merged.read1,s1,merged.read2-s1,merged.size,ecoUnhashWord(currentword,18),source,same)
|
||||
|
||||
|
||||
/*
|
||||
* merge step (AND apply the quorum property)
|
||||
* update merged.read1 AND/OR merged.read2
|
||||
* record the word and its count in the table
|
||||
*/
|
||||
tmpword = merged.words[merged.write];
|
||||
tmpcount= merged.count[merged.write];
|
||||
|
||||
@@ -158,12 +115,6 @@ void ecomerge(pwordcount_t data,uint32_t s1,uint32_t s2,uint32_t remainingSeq,ui
|
||||
// DEBUG_LOG("r1 : %d r2 : %d qsize : %d nsame : %d tot : %d write : %s count : %d source : %d size : %d pop : %d push : %d empty : %d",merged.read1,merged.read2-s1,qsize,nsame,qsize+nsame,ecoUnhashWord(currentword,18),currentcount,source,queue.size,queue.pop,queue.push,queue.empty)
|
||||
|
||||
|
||||
/*
|
||||
* finish the merging with words not processed (AND apply the quorum property)
|
||||
* they are stored in the second subtable (IF)
|
||||
* OR in the queue (ELSE)
|
||||
*/
|
||||
|
||||
if (merged.read2 < merged.size)
|
||||
{
|
||||
//DEBUG_LOG("end1 %d %d/%d %d/%d",merged.write,merged.read1,s1,merged.read2,merged.size);
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
* @author Pekka Pessi <Pekka.Pessi@nokia.com>
|
||||
*/
|
||||
|
||||
#include <stdlib.h> /* FB for NULL */
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -91,9 +91,7 @@ void addSeqToWordCountTable(pwordcount_t table, uint32_t wordsize, uint32_t circ
|
||||
table->words = ECOREALLOC(table->words,buffersize*sizeof(word_t),
|
||||
"\n\nCannot allocate memory to extend word table" );
|
||||
|
||||
/*
|
||||
* newtable is a pointer on the memory planed to be used for the new sequence (ecoWordCount new hash codes max)
|
||||
*/
|
||||
|
||||
newtable = table->words + table->size;
|
||||
|
||||
// DEBUG_LOG("Words = %x (%u) new = %x", table->words,table->size,newtable);
|
||||
@@ -101,24 +99,11 @@ void addSeqToWordCountTable(pwordcount_t table, uint32_t wordsize, uint32_t circ
|
||||
(void)ecoHashSequence(newtable,wordsize,circular,doublestrand,seq,&newsize,neededWords,neededWordCount,seqQuorum);
|
||||
// DEBUG_LOG("new seq wordCount : %d",newsize);
|
||||
|
||||
/*
|
||||
* at this stage, new hash codes have been added in the table but the table is not sorted
|
||||
*/
|
||||
|
||||
newsize = ecoCompactHashSequence(newtable,newsize);
|
||||
|
||||
/*
|
||||
* new hash codes have now been sorted BUT the whole table is not.
|
||||
* MULTIWORDS have been tagged (and compacted)
|
||||
*/
|
||||
|
||||
// DEBUG_LOG("compacted wordCount : %d",newsize);
|
||||
buffersize = table->size + newsize;
|
||||
|
||||
/*
|
||||
* buffersize is now set to the REAL size used by the table (but the memory chunck may be larger)
|
||||
*/
|
||||
|
||||
// resize the count buffer
|
||||
|
||||
table->inseqcount++;
|
||||
@@ -128,13 +113,10 @@ void addSeqToWordCountTable(pwordcount_t table, uint32_t wordsize, uint32_t circ
|
||||
"Cannot allocate memory to extend example word count table");
|
||||
//fprintf (stderr, " NewAddress: %x\n", table->strictcount);
|
||||
|
||||
|
||||
for (i=table->size; i < buffersize; i++)
|
||||
table->strictcount[i]=1;
|
||||
|
||||
/*
|
||||
* new words in the table are set to a count of ONE
|
||||
*/
|
||||
|
||||
|
||||
// Now we have to merge in situ the two tables
|
||||
|
||||
@@ -151,7 +133,7 @@ pwordcount_t lookforStrictPrimer(pecodnadb_t database, uint32_t seqdbsize,
|
||||
double seconde;
|
||||
char *logfilename;
|
||||
FILE *logfile;
|
||||
uint32_t i, j;
|
||||
uint32_t i;
|
||||
bool_t first=TRUE;
|
||||
pwordcount_t strictprimers=NULL;
|
||||
uint64_t totallength=0;
|
||||
@@ -251,36 +233,6 @@ pwordcount_t lookforStrictPrimer(pecodnadb_t database, uint32_t seqdbsize,
|
||||
if (neededWords)
|
||||
ECOFREE(neededWords,"Clean needed word table");
|
||||
|
||||
//TR: Somehow for some primers strictcount value is extremely large hence invalid
|
||||
//we need to remove these primers from the list
|
||||
j = strictprimers->size+1;
|
||||
for (i=0; i<strictprimers->size; i++)
|
||||
{
|
||||
if (strictprimers->strictcount[i] > seqdbsize)
|
||||
{
|
||||
if (j == (strictprimers->size+1))
|
||||
j = i;
|
||||
}
|
||||
|
||||
if (j < i && strictprimers->strictcount[i] <= seqdbsize)
|
||||
{
|
||||
strictprimers->words[j] = strictprimers->words[i];
|
||||
strictprimers->strictcount[j] = strictprimers->strictcount[i];
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
if (j < strictprimers->size)
|
||||
{
|
||||
strictprimers->size = j;
|
||||
strictprimers->strictcount = ECOREALLOC(strictprimers->strictcount,
|
||||
sizeof(uint32_t)*strictprimers->size,
|
||||
"Cannot reallocate strict primer count table");
|
||||
strictprimers->words = ECOREALLOC(strictprimers->words,
|
||||
sizeof(word_t)*strictprimers->size,
|
||||
"Cannot reallocate strict primer table");
|
||||
}
|
||||
|
||||
return strictprimers;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user