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