Skip to content
Commits on Source (9)
......@@ -14,7 +14,7 @@ CFLAGS := -O3
#CFLAGS = -O0 -fPIC -pedantic -Wall -std=c99 -g -DMALLOC_CHECK_=3 # for shark, valgrind
# CFLAGS := -O0 -g -ipo -no-prec-div -xHost -std=c99
TARGET_ARCH :=
LDLIBS := -lm -lrt # -lrt?
LDLIBS := -lm -lrt -lpthread # -lrt?
ENABLE_MULTITHREAD := -Denablemultithread
......
This diff is collapsed.
......@@ -719,6 +719,7 @@ static double MSalignmm_tanni( double **n_dynamicmtx, int icyc, int jcyc, double
lgth1 = ien-ist+1;
lgth2 = jen-jst+1;
#if STOREWM
strncpy( ttt1, seq1[0]+ist, lgth1 ); ttt1[lgth1] = 0;
strncpy( ttt2, seq2[0]+jst, lgth2 ); ttt2[lgth2] = 0;
......@@ -2124,6 +2125,7 @@ double MSalignmm( double **n_dynamicmtx, char **seq1, char **seq2, double *eff1,
nglen1 = seqlen( seq1[0] );
nglen2 = seqlen( seq2[0] );
#if 0
fprintf( stderr, "\n" );
for( i=0; i<icyc; i++ ) fprintf( stderr, "seq1[%d] at root = %s\n", i, seq1[i] );
......@@ -2134,6 +2136,7 @@ double MSalignmm( double **n_dynamicmtx, char **seq1, char **seq2, double *eff1,
lgth1 = strlen( seq1[0] );
lgth2 = strlen( seq2[0] );
ll1 = ( (int)(lgth1) ) + 100;
ll2 = ( (int)(lgth2) ) + 100;
......
......@@ -819,6 +819,7 @@ static void createfgresult( double **gapfresult, int limk, double eff1, double e
}
static double Atracking( double *lasthorizontalw, double *lastverticalw,
double fpenalty, double fpenalty_ex,
char **seq1, char **seq2,
char **mseq1, char **mseq2,
int **ijp, int icyc, int jcyc,
......@@ -876,8 +877,8 @@ static double Atracking( double *lasthorizontalw, double *lastverticalw,
else
{
#if 1
double fpenalty = (double)penalty;
double fpenalty_ex = (double)penalty_ex;
// double fpenalty = (double)penalty;
// double fpenalty_ex = (double)penalty_ex;
double g;
// reporterr( "in S, lastverticalw[lgth1-1] = %f\n", lastverticalw[lgth1-1] );
// reporterr( "in S, lasthorizontalw[lgth2-1] = %f\n", lasthorizontalw[lgth2-1] );
......@@ -1066,7 +1067,7 @@ static double Atracking( double *lasthorizontalw, double *lastverticalw,
return( wm );
}
double A__align( double **n_dynamicmtx, char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *sgap1, char *sgap2, char *egap1, char *egap2, int *chudanpt, int chudanref, int *chudanres, int headgp, int tailgp, int firstmem, int calledbyfulltreebase, double **cpmxchild0, double **cpmxchild1, double ***cpmxresult, double orieff1, double orieff2 )
double A__align( double **n_dynamicmtx, int penalty_l, int penalty_ex_l, char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *sgap1, char *sgap2, char *egap1, char *egap2, int *chudanpt, int chudanref, int *chudanres, int headgp, int tailgp, int firstmem, int calledbyfulltreebase, double **cpmxchild0, double **cpmxchild1, double ***cpmxresult, double orieff1, double orieff2 )
/* score no keisan no sai motokaraaru gap no atukai ni mondai ga aru */
{
......@@ -1087,7 +1088,7 @@ double A__align( double **n_dynamicmtx, char **seq1, char **seq2, double *eff1,
double *currentw, *previousw;
// double fpenalty = (double)penalty;
#if USE_PENALTY_EX
double fpenalty_ex = (double)penalty_ex;
double fpenalty_ex = (double)penalty_ex_l;
#endif
#if 1
double *wtmp;
......@@ -1121,7 +1122,7 @@ double A__align( double **n_dynamicmtx, char **seq1, char **seq2, double *eff1,
double *gapfreq1pt;
static TLS double *gapfreq2;
double *gapfreq2pt;
double fpenalty = (double)penalty;
double fpenalty = (double)penalty_l;
double fpenalty_shift = (double)penalty_shift;
double *fgcp2pt;
double *ogcp2pt;
......@@ -2050,7 +2051,7 @@ fprintf( stderr, "\n" );
else
{
// wmo = Atracking( currentw, lastverticalw, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, reuseprofiles, eff1, eff2, cpmxresult, cpmx1pt, cpmx2pt, gapfreq1pt, gapfreq2pt, ogcp1opt, ogcp2opt, fgcp1opt, fgcp2opt, orieff1, orieff2, (cpmx1pt!=cpmx1), (cpmx2pt!=cpmx2) );
wmo = Atracking( currentw, lastverticalw, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, reuseprofiles, &gt1, &gt2 );
wmo = Atracking( currentw, lastverticalw, fpenalty, fpenalty_ex, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, reuseprofiles, &gt1, &gt2 );
if( !tailgp ) wm = wmo;
}
......@@ -2194,7 +2195,7 @@ double A__align_gapmap( char **seq1, char **seq2, double *eff1, double *eff2, in
}
double A__align_variousdist( int **which, double ***matrices, double **n_dynamicmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *sgap1, char *sgap2, char *egap1, char *egap2, int *chudanpt, int chudanref, int *chudanres, int headgp, int tailgp )
double A__align_variousdist( int **which, double ***matrices, double **n_dynamicmtx, int penalty_l, int penalty_ex_l, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *sgap1, char *sgap2, char *egap1, char *egap2, int *chudanpt, int chudanref, int *chudanres, int headgp, int tailgp )
/* score no keisan no sai motokaraaru gap no atukai ni mondai ga aru */
{
......@@ -2211,7 +2212,7 @@ double A__align_variousdist( int **which, double ***matrices, double **n_dynamic
double *currentw, *previousw;
// double fpenalty = (double)penalty;
#if USE_PENALTY_EX
double fpenalty_ex = (double)penalty_ex;
double fpenalty_ex = (double)penalty_ex_l;
#endif
#if 1
double *wtmp;
......@@ -2240,7 +2241,7 @@ double A__align_variousdist( int **which, double ***matrices, double **n_dynamic
static TLS int orlgth1 = 0, orlgth2 = 0;
static TLS double *gapfreq1;
static TLS double *gapfreq2;
double fpenalty = (double)penalty;
double fpenalty = (double)penalty_l;
double fpenalty_shift = (double)penalty_shift;
double *fgcp2pt;
double *ogcp2pt;
......@@ -3041,7 +3042,7 @@ fprintf( stderr, "\n" );
else
{
// Atracking( currentw, lastverticalw, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.0, 0.0, 1, 1 ); // NULL x 11 ha atode awaseru.
wmo = Atracking( currentw, lastverticalw, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, 0, NULL, NULL);
wmo = Atracking( currentw, lastverticalw, fpenalty, fpenalty_ex, seq1, seq2, mseq1, mseq2, ijp, icyc, jcyc, tailgp, warpis, warpjs, warpbase, &ngap1, &ngap2, 0, NULL, NULL);
if( !tailgp ) wm = wmo;
}
......
......@@ -86,7 +86,7 @@ void profilealignment2( int n0, int n2, char **aln0, char **aln2, int alloclen,
if( alg == 'M' )
MSalignmm( n_dis_consweight_multi, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
else
A__align( n_dis_consweight_multi, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
A__align( n_dis_consweight_multi, penalty, penalty_ex, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
newlen = strlen( aln0[0] );
......@@ -211,7 +211,7 @@ static void profilealignment( int n0, int n1, int n2, char **aln0, char **aln1,
if( alg == 'M' )
MSalignmm( n_dis_consweight_multi, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
else
A__align( n_dis_consweight_multi, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
A__align( n_dis_consweight_multi, penalty, penalty_ex, aln0, aln2, effarr0, effarr2, n0, n2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); //outgap=1, 2014/Dec/1
newlen = strlen( aln0[0] );
......
......@@ -1397,7 +1397,7 @@ static double treebase( int nseq, int *nlen, char **aseq, int nadd, char *mergeo
{
imp_match_init_strict( NULL, clus1, clus2, strlen( mseq1[0] ), strlen( mseq2[0] ), mseq1, mseq2, effarr1, effarr2, effarr1_kozo, effarr2_kozo, localhomshrink, NULL, 1, topol[l][0], topol[l][1], NULL, NULL, NULL, -1, 0 );
if( rnakozo ) imp_rna( clus1, clus2, mseq1, mseq2, effarr1, effarr2, grouprna1, grouprna2, NULL, NULL, NULL );
pscore = A__align( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxchild0 tsukaeru??
pscore = A__align( n_dis_consweight_multi, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxchild0 tsukaeru??
}
else if( alg == 'Q' )
{
......@@ -1430,7 +1430,7 @@ static double treebase( int nseq, int *nlen, char **aseq, int nadd, char *mergeo
pscore = MSalignmm( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, NULL, NULL, NULL, 0.0, 0.0 );
break;
case( 'A' ):
pscore = A__align( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxchild0 tsukaeru??
pscore = A__align( n_dis_consweight_multi, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxchild0 tsukaeru??
break;
default:
ErrorExit( "ERROR IN SOURCE FILE" );
......@@ -1974,7 +1974,7 @@ static void *addsinglethread( void *arg )
if( mseq1 ) free( mseq1 ); mseq1 = NULL;
if( mseq2 ) free( mseq2 ); mseq2 = NULL;
Falign( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, NULL );
A__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
A__align( NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
if( commonIP ) FreeIntMtx( commonIP );
commonIP = NULL;
commonAlloc1 = commonAlloc2 = 0;
......
......@@ -16,7 +16,7 @@ import(
"time"
)
var VersionNumber = 1.0
var VersionNumber = 1.1
var Debug = false
var NumberOfQueryTries = 12
var HTTPClient = &http.Client{}
......@@ -939,6 +939,7 @@ func filter_sequences_and_hat3(sequence_file_path string, hat3_path string,
//Write Cleaned Sequences
new_sequence_file, err := os.Create(sequence_file_path)
check(err)
defer new_sequence_file.Close()
for _, old_index := range(existing_hat3_indexes) {
sequence := sequence_data[old_index]
sequence_lines := fmt.Sprintf(">%s\n%s", sequence.Label, sequence.Sequence)
......@@ -1346,6 +1347,7 @@ func main() {
fmt.Println("Combining original sequences with DASH sequences...")
dash_sequences := ParseFASTA(sequences_output_path)
final_sequence_file, err := os.Create(sequences_output_path)
check(err)
for _, sequence := range(dash_sequences) {
fmt.Fprintln(final_sequence_file,
fmt.Sprintf(">%s\n%s", sequence.Label, sequence.Sequence))
......
This diff is collapsed.
......@@ -147,13 +147,14 @@ extern double Lalignmm_hmout( char **seq1, char **seq2, double *eff1, double *ef
extern double Lalign2m2m_hmout( char **seq1, char **seq2, char **seq1r, char **seq2r, char *dir1, char *dir2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, char *, char *, char *, char *, double **map );
extern double MSalign11( char **seq1, char **seq2, int alloclen );
//extern double rnalocal( char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, RNApair **pair );
extern double A__align( double **scoringmtx, char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *gs1, char *gs2, char *ge1, char *ge2, int *, int, int *, int headgp, int tailgp, int firstmem, int calledby, double **cpmxchild0, double **cpmxchild1, double ***cpmxresult, double orieff1, double orieff2 );
extern double A__align_variousdist( int **which, double ***scoringmatrices, double **dummtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *gs1, char *gs2, char *ge1, char *ge2, int *, int, int *, int headgp, int tailgp );
extern double A__align( double **scoringmtx, int penalty, int penalty_ex, char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *gs1, char *gs2, char *ge1, char *ge2, int *, int, int *, int headgp, int tailgp, int firstmem, int calledby, double **cpmxchild0, double **cpmxchild1, double ***cpmxresult, double orieff1, double orieff2 );
extern double A__align_variousdist( int **which, double ***scoringmatrices, double **dummtx, int penalty, int penalty_ex, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *gs1, char *gs2, char *ge1, char *ge2, int *, int, int *, int headgp, int tailgp );
extern double A__align_gapmap( char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, int *gapmap1, int *gapmap2 );
extern double translate_and_Calign( char **mseq1, char **mseq2, double *effarr1, double *effarr2, int clus1, int clus2, int alloclen );
extern double Fgetlag( double **scoringmtx, char **seq1, char **seq2, double *eff1, double *eff2, int clus1, int clus2, int alloclen );
extern double Falign( int **whichmtx, double ***scoringmatrices, double **scoreingmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int *fftlog, int *, int, int * );
extern double Falign_udpari_long( int **whichmtx, double ***scoringmatrices, double **scoringmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int *fftlog );
extern double Falign_givenanchors( ExtAnch *extanch, int **whichmtx, double ***scoringmatrices, double **scoringmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int *fftlog );
double Falign_localhom( int **which, double ***scoringmatrices, double **scoreingmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int constraint, double *totalimpmatch, int *gapmap1, int *gapmap2, int *chudanpt, int chudanref, int *chudanres );
extern double part_imp_match_out_sc( int i1, int j1 );
extern void part_imp_match_init_strict( double *imp, int clus1, int clus2, int lgth1, int lgth2, char **seq1, char **seq2, double *eff1, double *eff2, double *eff1_kozo, double *eff2_kozo, LocalHom ***localhom, char *swaplist, int forscore, int *memlist1, int *memlist2 );
......@@ -423,3 +424,4 @@ extern void limitlh( int *uselh, Lennum *in, int size, int limit );
extern double distdp_noalign( char *s1, char *s2, double selfscore1, double selfscore2, int alloclen ); // tbfast.c kara yobareru
extern void getweightfromname( int n, double *w, char **name );
extern void readexternalanchors( ExtAnch **extanch, int nseq, int *nogaplen );
......@@ -60,13 +60,45 @@ char creverse( char f )
return( table[(int)f] );
}
static int countc( char *s, char q )
{
int v = 0;
while( *s )
if( *s++ == q ) v++;
return( v );
}
static void ttou( char *s )
{
int v = 0;
while( *s )
{
if( *s == 't' ) *s = 'u';
else if( *s == 'T' ) *s = 'U';
s++;
}
}
void sreverse( char *r, char *s )
{
int numt = countc( s, 't' ) + countc( s, 'T' );
int numu = countc( s, 'u' ) + countc( s, 'U' );
// reporterr( "numt=%d, numu=%d\n", numt, numu );
// reporterr( "s=%s\n", s );
r += strlen( s );
*r-- = 0;
while( *s )
*r-- = creverse( *s++ );
// *r-- = ( *s++ );
if( numu > numt )
{
// reporterr( "RNA!\n" );
// reporterr( "r before ttou =%s\n", r );
ttou( r+1 );
// reporterr( "r after ttou =%s\n", r );
}
}
void gappick_samestring( char *seq )
......@@ -6157,7 +6189,7 @@ void use_getrusage(void)
if (getrusage(RUSAGE_SELF, &r) != 0) {
/*Failure*/
}
fprintf(stderr, "maxrss = %ld MB\n", r.ru_maxrss/1000);
fprintf(stderr, "\nmaxrss = %ld MB\n", r.ru_maxrss/1000);
}
#endif
......@@ -6243,3 +6275,73 @@ void commongappick( int nseq, char **seq )
#endif
}
void readexternalanchors( ExtAnch **extanch, int nseq, int *nogaplen )
{
FILE *fp;
int size, lineno;
char buf[10000];
fp = fopen( "_externalanchors", "r" );
if( fp == NULL )
{
reporterr( "Cannot open _externalanchors\n" );
exit( 1 );
}
size = 0;
lineno = 0;
while( 1 )
{
lineno++;
// reporterr( "size = %d\n", size );
fgets( buf, 9999, fp );
if( feof( fp ) ) break;
if( buf[0] == '#' ) continue;
// reporterr( "buf=%s\n", buf );
*extanch = realloc( *extanch, sizeof( ExtAnch ) * (size+2) );
if( *extanch == NULL )
{
reporterr( "Cannot realloc *extanch\n" );
exit( 1 );
}
sscanf( buf, "%d %d %d %d %d %d %d", &(((*extanch)+size)->i), &(((*extanch)+size)->j), &(((*extanch)+size)->starti), &(((*extanch)+size)->endi), &(((*extanch)+size)->startj), &(((*extanch)+size)->endj), &(((*extanch)+size)->score) );
// reporterr( "i=%d, j=%d, %d-%d, %d-%d, score=%d\n", (*extanch)[size].i, (*extanch)[size].j, (*extanch)[size].starti, (*extanch)[size].endi, (*extanch)[size].startj, (*extanch)[size].endj, (*extanch)[size].score );
((*extanch)+size)->i -= 1; // 1-origin -> 0-origin
((*extanch)+size)->j -= 1; // 1-origin -> 0-origin
((*extanch)+size)->starti -= 1;
((*extanch)+size)->startj -= 1;
((*extanch)+size)->endi -= 1;
((*extanch)+size)->endj -= 1;
if( (*extanch)[size].i >= nseq || (*extanch)[size].j >= nseq )
{
reporterr( "\nOut of range? The input file has %d sequences but pair %d-%d was specified in line %d.\nNote that sequence IDs are counted from 1.\n", nseq, (*extanch)[size].i+1, (*extanch)[size].j+1, lineno );
exit( 1 );
}
if( (*extanch)[size].i >= (*extanch)[size].j )
{
reporterr( "\nFormat problem? \"%d %d\" in line %d.\nThe sequence id of the first column must be less than the second.\n", (*extanch)[size].i+1, (*extanch)[size].j+1, lineno );
exit( 1 );
}
if( (*extanch)[size].starti > nogaplen[(*extanch)[size].i] )
{
reporterr( "\nOut of range? len(seq%d)=%d, but anchor=%d in line %d.\nNote that position is counted from 1.\n", (*extanch)[size].i+1, nogaplen[(*extanch)[size].i], (*extanch)[size].starti+1, lineno );
exit( 1 );
}
if( (*extanch)[size].startj > nogaplen[(*extanch)[size].j] )
{
reporterr( "\nOut of range? len(seq%d)=%d, but anchor=%d in line %d.\nNote that position is counted from 1.\n", (*extanch)[size].j, nogaplen[(*extanch)[size].j]+1, (*extanch)[size].startj+1, lineno );
exit( 1 );
}
size++;
(*extanch)[size].i = (*extanch)[size].j = -1;
}
fclose( fp );
}
......@@ -262,7 +262,7 @@ void GroupAlign( int nseq1, int nseq2, char **name, int *nlen, char **seq, char
if( alg == 'M' )
pscore = MSalignmm( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, NULL, NULL, NULL, 0.0, 0.0 );
else
pscore = A__align( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
pscore = A__align( n_dis_consweight_multi, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
}
#if DEBUG
time2 = getrusage_sec();
......
#! /bin/bash
er=0;
myself=`dirname "$0"`/`basename "$0"`; export myself
version="v7.429 (2019/Jul/1)"; export version
version="v7.453 (2019/Nov/8)"; export version
LANG=C; export LANG
os=`uname`
progname=`basename "$0"`
......@@ -214,6 +214,7 @@ dafs=$defaultdafs
mccaskill=$defaultmccaskill
contrafold=$defaultcontrafold
progressfile="/dev/stderr"
anchorfile="/dev/null"
debug=0
sw=0
algopt=$defaultalgopt
......@@ -530,6 +531,17 @@ if [ $# -gt 0 ]; then
elif [ "$1" = "--out" ]; then
shift
outputfile="$1"
elif [ "$1" = "--anchors" ]; then
shift
anchorfile="$1"
anchoropt=" -l "
# memopt=" -M -B " # ato de kentou
# memopt=" -N " # no memsave
if [ ! -e "$anchorfile" ]; then
echo "Cannot open $anchorfile" 1>&2
echo "" 1>&2
exit
fi
elif [ "$1" = "--thread" ]; then
shift
if ! expr "$1" : "[0-9\-]" > /dev/null ; then
......@@ -1047,6 +1059,7 @@ function removetmpfile() { # for MPI
cat "$laraparams" | tr "\r" "\n" | grep -v "^$" > "$TMPFILE/_lara.params"
cat "$pdblist" | tr "\r" "\n" | grep -v "^$" > "$TMPFILE/pdblist"
cat "$ownlist" | tr "\r" "\n" | grep -v "^$" > "$TMPFILE/ownlist"
cat "$anchorfile" | tr "\r" "\n" | grep -v "^$" > "$TMPFILE/_externalanchors"
SAVEIFS=$IFS
IFS='\n'
......@@ -1878,19 +1891,19 @@ function removetmpfile() { # for MPI
fi
fi
if [ $iterate -gt 0 ]; then
echo 'Iterative refinment is not supported for --'$treeext 1>>"$progressfile"
echo 'Iterative refinment is not supported for --large or --'$treeext 1>>"$progressfile"
echo '' 1>>"$progressfile"
exit 1
fi
if [ $fragment -ne 0 ]; then
echo '--addfragments, --addfull or --addlong is not yet supported for --'$treeext 1>>"$progressfile"
echo '--addfragments, --addfull or --addlong is not yet supported for --large or --'$treeext 1>>"$progressfile"
echo "Use --add newsequences --$treeext" 1>>"$progressfile"
echo "Or, --addfragments (long, full) newsequences, without --"$treeext 1>>"$progressfile"
echo '' 1>>"$progressfile"
exit 1
fi
if [ "$mergetable" != "/dev/null" ]; then # 2018/Mar/2
echo '--merge is not yet supported for --'$treeext 1>>"$progressfile"
echo '--merge is not yet supported for --large or --'$treeext 1>>"$progressfile"
echo "Use --merge without --"$treeext 1>>"$progressfile"
echo '' 1>>"$progressfile"
exit 1
......@@ -1925,6 +1938,7 @@ function removetmpfile() { # for MPI
bunkatsuopt=" -B " # fftnsi demo bunktasu shinai
if [ "$add2ndhalfarg" != " " ]; then
if [ $auto -eq 1 -o $iterate -gt 0 ]; then
echo '' 1>>"$progressfile"
echo 'The --keeplength and --mapout options are not supported' 1>>"$progressfile"
echo 'with the --auto or --maxiterate >0 options.' 1>>"$progressfile"
echo 'Use the --maxiterate 0 option (= progressive method).' 1>>"$progressfile"
......@@ -1934,9 +1948,18 @@ function removetmpfile() { # for MPI
fi
fi
# cycle=1 # chuui 2014Aug19
# iterate=0
# treealg=" -q " ## 2012/01/24 ## removed 2012/02/06
else
if [ "$add2ndhalfarg" != " " ]; then
echo '' 1>>"$progressfile"
echo 'The --keeplength and --mapout options are supported' 1>>"$progressfile"
echo 'only with --add, --addfragments or --addlong.' 1>>"$progressfile"
echo '' 1>>"$progressfile"
exit 1
fi
fi
......@@ -2093,15 +2116,15 @@ function removetmpfile() { # for MPI
fi
if [ $outputformat = "clustal" -a $outorder = "aligned" ]; then
outputopt=" -c $strategy -r _order$$ $f2clext "
outputopt=" -c $strategy -r $TMPFILE/order $f2clext "
elif [ $outputformat = "clustal" -a $outorder = "input" ]; then
outputopt=" -c $strategy $f2clext "
elif [ $outputformat = "phylip" -a $outorder = "aligned" ]; then
outputopt=" -y -r _order$$ "
outputopt=" -y -r $TMPFILE/order "
elif [ $outputformat = "phylip" -a $outorder = "input" ]; then
outputopt=" -y "
elif [ $outputformat = "pir" -a $outorder = "aligned" ]; then
outputopt=" -f -r _order$$ "
outputopt=" -f -r $TMPFILE/order "
else
outputopt="-f"
fi
......@@ -2524,7 +2547,7 @@ function removetmpfile() { # for MPI
if [ $fragment -ne 0 ]; then
"$prefix/addsingle" -Q 100 $legacygapopt -W $tuplesize -O $outnum $addsinglearg $addarg $add2ndhalfarg -C $numthreads $memopt $weightopt $treeinopt $treeoutopt $distoutopt $seqtype $model -f "-"$gop -h $aof $param_fft $localparam $algopt $treealg $scoreoutarg < infile > /dev/null 2>>"$progressfile" || exit 1
else
"$prefix/disttbfast" -q $npickup -E $cycledisttbfast -V "-"$gopdist -s $unalignlevel $legacygapopt $mergearg -W $tuplesize $termgapopt $outnum $addarg $add2ndhalfarg -C $numthreads-$numthreadstb $memopt $weightopt $treeinopt $treeoutopt $distoutopt $seqtype $model -g $gexp -f "-"$gop -Q $spfactor -h $aof $param_fft $algopt $treealg $scoreoutarg < infile > pre 2>>"$progressfile" || exit 1
"$prefix/disttbfast" -q $npickup -E $cycledisttbfast -V "-"$gopdist -s $unalignlevel $legacygapopt $mergearg -W $tuplesize $termgapopt $outnum $addarg $add2ndhalfarg -C $numthreads-$numthreadstb $memopt $weightopt $treeinopt $treeoutopt $distoutopt $seqtype $model -g $gexp -f "-"$gop -Q $spfactor -h $aof $param_fft $algopt $treealg $scoreoutarg $anchoropt < infile > pre 2>>"$progressfile" || exit 1
mv hat3.seed hat3
fi
fi
......@@ -2542,7 +2565,7 @@ function removetmpfile() { # for MPI
done
if [ $iterate -gt 0 ]; then
if [ $distance = "ktuples" ]; then
"$prefix/dndpre" $model -M 2 -C $numthreads < pre > /dev/null 2>>"$progressfile" || exit 1
"$prefix/dndpre" $seqtype $model -M 2 -C $numthreads < pre > /dev/null 2>>"$progressfile" || exit 1
fi
"$prefix/dvtditr" -W $minimumweight $bunkatsuopt -E $fixthreshold -s $unalignlevel $legacygapopt $mergearg $outnum -C $numthreadsit -t $randomseed $rnaoptit $memopt $scorecalcopt $localparam -z 50 $seqtype $model -f "-"$gop -Q $spfactor -h $aof -I $iterate $weightopt $treeinopt $algoptit $treealg -p $parallelizationstrategy $scoreoutarg -K $nadd < pre > /dev/null 2>>"$progressfile" || exit 1
fi
......@@ -2653,13 +2676,13 @@ function removetmpfile() { # for MPI
if [ "$outputopt" != "-f" -o "$windows" = "yes" ]; then # Windows deha kaigyo code wo f2cl de modosu.
# ln -s "$TMPFILE/order" _order$$ # f2cl ga space ari filename ni taiou shiteinainode
cp "$TMPFILE/order" _order$$ # ln -s no error wo sakeru
# cp "$TMPFILE/order" _order$$ # ln -s no error wo sakeru
if [ "$outputfile" = "" ]; then
"$prefix/f2cl" -n $namelength $outputopt < "$TMPFILE/pre" 2>"/dev/null" || exit 1
else
"$prefix/f2cl" -n $namelength $outputopt < "$TMPFILE/pre" > "$outputfile" 2>"/dev/null" || exit 1
fi
rm _order$$
# rm _order$$
else
if [ "$outputfile" = "" ]; then
cat < "$TMPFILE/pre" || exit 1
......
......@@ -857,6 +857,7 @@ int main( int argc, char *argv[] )
reporterr( "Step 1/2\n" );
if( !dodp )
{
if( nadd )
......@@ -879,7 +880,6 @@ int main( int argc, char *argv[] )
istart = 0;
for( i=istart; i<njob; i++ )
{
gappick0( tmpseq, seq[i] );
strcpy( seq[i], tmpseq );
sreverse( revseq, tmpseq );
......
......@@ -37,7 +37,7 @@
#define VERSION "7.429"
#define VERSION "7.453"
#define SHOWVERSION reporterr( "%s (%s) Version " VERSION "\nalg=%c, model=%s, amax=%3.1f\n%d thread(s)\n\n", progName( argv[0] ), (dorp=='d')?"nuc":((nblosum==-2)?"text":"aa"), alg, modelname, specificityconsideration, nthread )
#define FFT_THRESHOLD 80
......@@ -321,7 +321,16 @@ typedef struct _pairnum
int n1;
} Pairnum;
typedef struct _extanch
{
int i;
int j;
int starti;
int endi;
int startj;
int endj;
int score;
} ExtAnch;
#include "fft.h"
#include "dp.h"
......
......@@ -360,7 +360,7 @@ static int treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char
{
if( l < 500 || l % 100 == 0 ) if( cpmxchild1 || cpmxchild0 ) reporterr( " h" );
// reporterr( "\n\n %d - %d (%d x %d) : \n", topol[l][0][0], topol[l][1][0], clus1, clus2 );
pscore = A__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
pscore = A__align( dynamicmtx, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
}
break;
......@@ -510,7 +510,7 @@ static int treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char
#endif
Falign( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, NULL );
Falign_udpari_long( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL );
A__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
A__align( NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
D__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0 );
G__align11( NULL, NULL, NULL, 0, 0, 0 ); // iru?
free( effarr1 );
......@@ -531,7 +531,7 @@ static int treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char
Falign( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, NULL );
Falign_udpari_long( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL );
A__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
A__align( NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
D__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0 );
G__align11( NULL, NULL, NULL, 0, 0, 0 ); // iru?
if( effarr1 ) free( effarr1 ); effarr1 = NULL;
......
......@@ -137,6 +137,7 @@ int main( int argc, char *argv[] )
}
if( line[1] == 'R' )
{
directions[i] = 'R';
sreverse( tmpseq, seq[i] );
strcpy( seq[i], tmpseq );
......
......@@ -1050,7 +1050,7 @@ static void pairalign( int nseq, int *nlen, char **seq, int *mem1, int *mem2, do
else
{
// fprintf( stderr, "%d-%d", clus1, clus2 );
pscore = A__align( n_dis_consweight_multi, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
pscore = A__align( n_dis_consweight_multi, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
}
break;
default:
......
......@@ -891,7 +891,7 @@ static void *treebasethread( void *arg ) // seed && compacttree==3 niha taioushi
commonIP = NULL;
Falign( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, NULL );
Falign_udpari_long( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL );
A__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
A__align( NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
D__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0 );
partA__align( NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL );
G__align11( NULL, NULL, NULL, 0, 0, 0 ); // iru?
......@@ -1108,7 +1108,7 @@ static void *treebasethread( void *arg ) // seed && compacttree==3 niha taioushi
{
imp_match_init_strict( NULL, clus1, clus2, strlen( mseq1[0] ), strlen( mseq2[0] ), mseq1, mseq2, effarr1, effarr2, effarr1_kozo, effarr2_kozo, localhomshrink, swaplist, 1, localmem[0], localmem[1], uselh, NULL, NULL, (compacttree==3)?l:-1, 0 ); // seedinlh, nfiles ni ha taiou shiteinai
if( rnakozo ) imp_rna( clus1, clus2, mseq1, mseq2, effarr1, effarr2, grouprna1, grouprna2, NULL, NULL, NULL );
pscore = A__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxhist mitaiou
pscore = A__align( dynamicmtx, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxhist mitaiou
}
if( alg == 'd' )
{
......@@ -1147,7 +1147,7 @@ static void *treebasethread( void *arg ) // seed && compacttree==3 niha taioushi
pscore = MSalignmm( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxhist mitaiou
break;
case( 'A' ):
pscore = A__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxhist mitaiou
pscore = A__align( dynamicmtx, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, -1, -1, NULL, NULL, NULL, 0.0, 0.0 ); // cpmxhist mitaiou
break;
case( 'd' ):
pscore = D__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap );
......@@ -1590,7 +1590,7 @@ void treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char **mseq
#if REPORTCOSTS
// reporterr( "\n\n %d - %d (%d x %d) : \n", topol[l][0][0], topol[l][1][0], clus1, clus2 );
#endif
pscore = A__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
pscore = A__align( dynamicmtx, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, constraint, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
}
if( alg == 'd' )
{
......@@ -1629,7 +1629,7 @@ void treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char **mseq
pscore = MSalignmm( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
break;
case( 'A' ):
pscore = A__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
pscore = A__align( dynamicmtx, penalty, penalty_ex, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap, localmem[0][0], 1, cpmxchild0, cpmxchild1, cpmxhist+l, orieff1, orieff2 );
break;
case( 'd' ):
pscore = D__align( dynamicmtx, mseq1, mseq2, effarr1, effarr2, clus1, clus2, *alloclen, 0, &dumdb, NULL, NULL, NULL, NULL, NULL, 0, NULL, outgap, outgap );
......@@ -1766,7 +1766,7 @@ void treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char **mseq
free( effarr2_kozo );
Falign( NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, NULL, 0, NULL );
D__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0 );
A__align( NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
A__align( NULL, 0, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, -1, -1, NULL, NULL, NULL, 0.0, 0.0 );
imp_match_init_strictD( NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0 );
imp_match_init_strict( NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, 0 );
FreeCommonIP();
......
mafft (7.453-1) unstable; urgency=medium
* Team upload.
* New upstream version
* Standards-Version: 4.4.1
* Trim trailing whitespace.
* Use secure URI in Homepage field.
* Set fields Upstream-Name, Upstream-Contact in debian/copyright.
* Remove obsolete fields Name, Contact from debian/upstream/metadata.
-- Steffen Moeller <moeller@debian.org> Thu, 21 Nov 2019 17:27:17 +0100
mafft (7.429-1) unstable; urgency=medium
* Team upload.
......@@ -389,4 +401,3 @@ mafft (6.240-1) unstable; urgency=low
* Initial release (Closes: #409640)
-- Charles Plessy <charles-debian-nospam@plessy.org> Sat, 9 Jun 2007 12:06:43 +0900
......@@ -5,10 +5,10 @@ Uploaders: Charles Plessy <plessy@debian.org>,
Section: science
Priority: optional
Build-Depends: debhelper-compat (= 12)
Standards-Version: 4.4.0
Standards-Version: 4.4.1
Vcs-Browser: https://salsa.debian.org/med-team/mafft
Vcs-Git: https://salsa.debian.org/med-team/mafft.git
Homepage: http://mafft.cbrc.jp/alignment/software/
Homepage: https://mafft.cbrc.jp/alignment/software/
Package: mafft
Architecture: any
......