1 /* Shuffling or bootstrapping multiple sequence alignments.
2  *
3  * SRE, Tue Jan 22 09:18:09 2008 [Market Street Cafe, Leesburg]
4  */
5 #ifndef eslMSASHUFFLE_INCLUDED
6 #define eslMSASHUFFLE_INCLUDED
7 #include "esl_config.h"
8 
9 #include "esl_alphabet.h"
10 #include "esl_random.h"
11 
12 /* 1. Shuffling or resampling columns ("horizontal" shuffling) */
13 extern int esl_msashuffle_Shuffle  (ESL_RANDOMNESS *r, ESL_MSA *msa, ESL_MSA *shuf);
14 extern int esl_msashuffle_Bootstrap(ESL_RANDOMNESS *r, ESL_MSA *msa, ESL_MSA *bootsample);
15 
16 /* 2. Shuffling residues within columns ("vertical" shuffling) */
17 extern int esl_msashuffle_VShuffle(ESL_RANDOMNESS *rng, const ESL_MSA *msa, ESL_MSA *shuf);
18 
19 /* 3. Permuting the sequence order */
20 extern int esl_msashuffle_PermuteSequenceOrder(ESL_RANDOMNESS *r, ESL_MSA *msa);
21 
22 /* 4. Shuffling pairwise (QRNA) alignments */
23 extern int esl_msashuffle_CQRNA(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, char    *x, char    *y, char    *xs, char    *ys);
24 extern int esl_msashuffle_XQRNA(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, ESL_DSQ *x, ESL_DSQ *y, ESL_DSQ *xs, ESL_DSQ *ys);
25 
26 #endif /*eslMSASHUFFLE_INCLUDED*/
27