[med-svn] [Git][med-team/daligner][upstream] New upstream version 1.0+git20200608.c18a2fb
Steffen Möller
gitlab at salsa.debian.org
Sat Jun 13 14:39:02 BST 2020
Steffen Möller pushed to branch upstream at Debian Med / daligner
Commits:
2d72004d by Steffen Moeller at 2020-06-13T15:37:21+02:00
New upstream version 1.0+git20200608.c18a2fb
- - - - -
4 changed files:
- DB.c
- LAsort.c
- LAsplit.c
- daligner.c
Changes:
=====================================
DB.c
=====================================
@@ -1758,7 +1758,6 @@ static int Late_Track_Trim(DAZZ_DB *db, DAZZ_TRACK *track, int ispart)
j += 1;
}
}
- track->data = Realloc(track->data,anno4[j],NULL);
track->alen = Realloc(track->alen,sizeof(int)*j,NULL);
track->anno = Realloc(track->anno,track->size*(j+1),NULL);
}
@@ -1779,7 +1778,6 @@ static int Late_Track_Trim(DAZZ_DB *db, DAZZ_TRACK *track, int ispart)
j += 1;
}
}
- track->data = Realloc(track->data,anno8[j],NULL);
track->alen = Realloc(track->alen,sizeof(int)*j,NULL);
track->anno = Realloc(track->anno,track->size*(j+1),NULL);
}
=====================================
LAsort.c
=====================================
@@ -58,6 +58,26 @@ static int SORT_OVL(const void *x, const void *y)
if (pl != pr)
return (pl-pr);
+ pl = ol->path.aepos;
+ pr = or->path.aepos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.bbpos;
+ pr = or->path.bbpos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.bepos;
+ pr = or->path.bepos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.diffs;
+ pr = or->path.diffs;
+ if (pl != pr)
+ return (pl-pr);
+
if (ol < or)
return (-1);
else if (ol > or)
@@ -72,6 +92,8 @@ static int SORT_MAP(const void *x, const void *y)
Overlap *ol, *or;
int al, ar;
+ int bl, br;
+ int cl, cr;
int pl, pr;
ol = (Overlap *) (IBLOCK+l);
@@ -87,6 +109,36 @@ static int SORT_MAP(const void *x, const void *y)
if (pl != pr)
return (pl-pr);
+ bl = ol->bread;
+ br = or->bread;
+ if (bl != br)
+ return (bl-br);
+
+ cl = COMP(ol->flags);
+ cr = COMP(or->flags);
+ if (cl != cr)
+ return (cl-cr);
+
+ pl = ol->path.aepos;
+ pr = or->path.aepos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.bbpos;
+ pr = or->path.bbpos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.bepos;
+ pr = or->path.bepos;
+ if (pl != pr)
+ return (pl-pr);
+
+ pl = ol->path.diffs;
+ pr = or->path.diffs;
+ if (pl != pr)
+ return (pl-pr);
+
if (ol < or)
return (-1);
else if (ol > or)
@@ -95,6 +147,50 @@ static int SORT_MAP(const void *x, const void *y)
return (0);
}
+static int EQUAL(Overlap *ol, Overlap *or)
+{ int al, ar;
+ int bl, br;
+ int cl, cr;
+ int pl, pr;
+
+ al = ol->aread;
+ ar = or->aread;
+ if (al != ar)
+ return (0);
+
+ bl = ol->bread;
+ br = or->bread;
+ if (bl != br)
+ return (0);
+
+ cl = COMP(ol->flags);
+ cr = COMP(or->flags);
+ if (cl != cr)
+ return (0);
+
+ pl = ol->path.abpos;
+ pr = or->path.abpos;
+ if (pl != pr)
+ return (0);
+
+ pl = ol->path.aepos;
+ pr = or->path.aepos;
+ if (pl != pr)
+ return (0);
+
+ pl = ol->path.bbpos;
+ pr = or->path.bbpos;
+ if (pl != pr)
+ return (0);
+
+ pl = ol->path.bepos;
+ pr = or->path.bepos;
+ if (pl != pr)
+ return (0);
+
+ return (1);
+}
+
int main(int argc, char *argv[])
{ char *iblock, *fblock, *iend;
int64 isize, osize;
@@ -249,30 +345,39 @@ int main(int argc, char *argv[])
qsort(perm,sov,sizeof(int64),SORT_MAP);
else
qsort(perm,sov,sizeof(int64),SORT_OVL);
-
+
// Output the records in sorted order
- { int j;
- Overlap *w;
+ { int j, equal;
+ Overlap *w, *x, y;
int64 tsize, span;
char *fptr, *ftop, *wo;
+ y.aread = ((Overlap *) (iblock+perm[0]))->aread+1;
+ x = &y;
+
fptr = fblock;
ftop = fblock + osize;
for (j = 0; j < sov; j++)
{ w = (Overlap *) (wo = iblock+perm[j]);
do
- { tsize = w->path.tlen*tbytes;
+ { equal = EQUAL(w,x);
+ tsize = w->path.tlen*tbytes;
span = ovlsize + tsize;
if (fptr + span > ftop)
{ if (fwrite(fblock,1,fptr-fblock,foutput) != (size_t) (fptr-fblock))
SYSTEM_WRITE_ERROR
fptr = fblock;
}
- memmove(fptr,((char *) w)+ptrsize,ovlsize);
- fptr += ovlsize;
- memmove(fptr,(char *) (w+1),tsize);
- fptr += tsize;
+ if (equal)
+ fptr += (ovlsize + tsize);
+ else
+ { memmove(fptr,((char *) w)+ptrsize,ovlsize);
+ fptr += ovlsize;
+ memmove(fptr,(char *) (w+1),tsize);
+ fptr += tsize;
+ }
+ x = w;
w = (Overlap *) (wo += span);
}
while (wo < iend && CHAIN_NEXT(w->flags));
=====================================
LAsplit.c
=====================================
@@ -64,14 +64,16 @@ int main(int argc, char *argv[])
parts = strtol(argv[2],&eptr,10);
if (*eptr != '\0')
- { pwd = PathTo(argv[2]);
+ { pwd = PathTo(argv[2]);
if (strcmp(argv[2]+(strlen(argv[2])-4),".dam") == 0)
{ root = Root(argv[2],".dam");
stub = Read_DB_Stub(Catenate(pwd,"/",root,".dam"),DB_STUB_BLOCKS);
+ parts = stub->nblocks;
}
else
{ root = Root(argv[2],".db");
stub = Read_DB_Stub(Catenate(pwd,"/",root,".db"),DB_STUB_BLOCKS);
+ parts = stub->nblocks;
}
free(pwd);
free(root);
@@ -173,7 +175,7 @@ int main(int argc, char *argv[])
last = w->aread;
}
else
- { if (w->aread > last)
+ { if (w->aread >= last)
break;
}
=====================================
daligner.c
=====================================
@@ -51,8 +51,8 @@
#include "filter.h"
static char *Usage[] =
- { "[-vaABI] [-k<int(16)>] [-%<int(28)>] [-h<int(50)>] [-w<int(6)>] [-t<int>] [-M<int>]",
- " [-e<double(.75)] [-l<int(1500)>] [-s<int(100)>] [-H<int>]",
+ { "[-vaABI] [-k<int(16)>] [-%<int(28)>] [-h<int(50)>] [-w<int(6)>] [-t<int>]",
+ " [-M<int>] [-e<double(.75)] [-l<int(1500)>] [-s<int(100)>] [-H<int>]",
" [-T<int(4)>] [-P<dir(/tmp)>] [-m<track>]+",
" <subject:db|dam> <target:db|dam> ...",
};
View it on GitLab: https://salsa.debian.org/med-team/daligner/-/commit/2d72004df837dc57a328b587472bd73124dcb382
--
View it on GitLab: https://salsa.debian.org/med-team/daligner/-/commit/2d72004df837dc57a328b587472bd73124dcb382
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200613/4225bba1/attachment-0001.html>
More information about the debian-med-commit
mailing list