def test_distance_dna_google(self): dist = bbc.Distance(self.vector, 'google') matrix = distmatrix.create(self.dna_records.id_list, dist) exp = [ " 3", "seq1 0.0000000 73.1311144 37.1219467", "seq2 73.1311144 0.0000000 33.2221873", "seq3 37.1219467 33.2221873 0.0000000" ] self.assertEqual(matrix.format(), "\n".join(exp))
def test_distance_dna_euclidnorm(self): dist = bbc.Distance(self.vector) matrix = distmatrix.create(self.dna_records.id_list, dist) exp = [ " 3", "seq1 0.0000000 1.0227476 1.9351116", "seq2 1.0227476 0.0000000 1.4469591", "seq3 1.9351116 1.4469591 0.0000000" ] self.assertEqual(matrix.format(), "\n".join(exp))
def test_distance_pep_google(self): vector = bbc.create_vectors(self.pep_records, 10, utils.ALPHABET_PEP) dist = bbc.Distance(vector, 'google') matrix = distmatrix.create(self.pep_records.id_list, dist) exp = [ " 4", "seq1 0.0000000 862.9400129 912.1886801 233.2058119", "seq2 862.9400129 0.0000000 694.9729647 237.9720958", "seq3 912.1886801 694.9729647 0.0000000 225.2262758", "seq4 233.2058119 237.9720958 225.2262758 0.0000000" ] self.assertEqual(matrix.format(), "\n".join(exp))
def main(): parser = get_parser() args = validate_args(parser) seq_records = seqrecords.read_fasta(args.fasta) vector = bbc.create_vectors(seq_records, args.k, alphabet=args.alphabet) dist = bbc.Distance(vector) matrix = distmatrix.create(seq_records.id_list, dist) if args.out: oh = open(args.out, 'w') matrix.write_to_file(oh, args.outfmt) oh.close() else: matrix.display(args.outfmt)
sys.stderr.write("Too many arguments\n") exit(1) else: method = sys.argv[1] infile = sys.argv[2] outfile = sys.argv[3] input_file = open(infile, 'r') seq_records = seqrecords.read_fasta(input_file) input_file.close() #choose one method to compute distance matrix if method == "bbc": alphabet = seqcontent.get_alphabet('protein') vector = bbc.create_vectors(seq_records, 10, alphabet) dist = bbc.Distance(vector) matrix = distmatrix.create(seq_records.id_list, dist) matrix.display() elif method == "ncd": dist = ncd.Distance(seq_records) matrix = distmatrix.create(seq_records.id_list, dist) matrix.display() elif method == "wmetric": matrix = subsmat.get('blosum62') dist = wmetric.Distance(seq_records, matrix) matrix = distmatrix.create(seq_records.id_list, dist) matrix.display() elif method == "d2":