def __init__(self, sequences, meta_data=None, permit_one_seq=True):
<EOL>if len(sequences) == <NUM_LIT:0>:<EOL><INDENT>msg = "<STR_LIT>"<EOL>raise MultipleAlignmentError(msg)<EOL><DEDENT>if len(sequences) == <NUM_LIT:1> and not permit_one_seq:<EOL><INDENT>msg = "<STR_LIT>" +"<STR_LIT>" +str(sequences[<NUM_LIT:0>].name) + "<STR_LIT>" + str(sequences[<NUM_LIT:0>].sequenceData)<EOL>raise MultipleAlignmentError(msg)<EOL><DEDENT>lengths = set()<EOL>for s in sequences:<EOL><INDENT>if isinstance(s, UnknownSequence):<EOL><INDENT>continue<EOL><DEDENT>lengths.add(len(s))<EOL><DEDENT>if len(lengths) != <NUM_LIT:1>:<EOL><INDENT>msg = "<STR_LIT>" +"<STR_LIT:U+002CU+0020>".join([str(x) for x in lengths]) + "<STR_LIT>" +"<STR_LIT:U+002C>".join(str(x.sequenceData) for x in sequences)<EOL>raise MultipleAlignmentError(msg)<EOL><DEDENT>self.length = list(lengths)[<NUM_LIT:0>]<EOL>self.sequences = {}<EOL>for s in sequences:<EOL><INDENT>self.sequences[s.name] = s<EOL><DEDENT>self._meta = meta_data<EOL>
Constructor for MSAs; see class docstring for param descriptions.