def main(args): seq = list(Sequence.fromFile(args.sequenceFilename)) score = Score.fromFile(args.substitutionMatrix) openingPenality = args.openingPenality extendingPenality = args.extendingPenality local = args.local if not args.nseq1: for i in range(len(seq)): seq1 = seq[i] for j in range(i + 1, len(seq)): seq2 = seq[j] if local: localAlignement(seq1, seq2, openingPenality, extendingPenality, score, args.substitutionMatrix) else: globalAlignement(seq1, seq2, openingPenality, extendingPenality, score, args.substitutionMatrix) print("\n" + "#"*80 + "\n") else: if not (1 <= args.nseq1 <= len(seq) and 1 <= args.nseq2 <= len(seq)): parser.error("-1 and -2 option must be in range of the number of sequences.") seq1 = seq[args.nseq1 - 1] seq2 = seq[args.nseq2 - 1] if local: localAlignement(seq1, seq2, openingPenality, extendingPenality, score, args.substitutionMatrix) else: globalAlignement(seq1, seq2, openingPenality, extendingPenality, score, args.substitutionMatrix)
def getOccurences(filename): occurences = [] nbSeq = 0 for sequence in Sequence.fromFile(filename): nbSeq += 1 for i, aa in enumerate(sequence): if i < len(occurences): if aa != "-": occurences[i][aa] = occurences[i].get(aa, 0) + 1 else: if aa != "-": occurences.append({aa: 1}) else: occurences.append({}) return occurences, nbSeq