The positions of rows and columns are in one of the three lists below, so the corresponding position is 1, and the rest are all 0.
——[7-56,239-327,438-454,522-556,574-586]
——[57-85,96-112,221-238]
——[113-220,328-437,455-521,557-573]
Code implementation
def generateMaskBasedOnDom(dom_path, length): """ :param dom_path: this is a file path, which contains the following information: [7-56,239-327,438-454,522-556,574-586][57-85,96-112,221-238][113-220,328-437,455-521,557-573] each [...] means one domain :param length: this is the length of this protein :return: the mask matrix with size length x length, 1 means inner domain residue pair, otherwise 0 """ # Read the file with open(dom_path, "r", encoding="utf-8") as file: contents = () # Obtain mask location data list0 = [] list1 = [] list2 = [] for list_idx, content in enumerate(contents): num_range_list = ()[1:-1].split(",") for num_range in num_range_list: start_num = int(num_range.split("-")[0]) end_num = int(num_range.split("-")[1]) for num in range(start_num, end_num+1): if list_idx == 0: (num) elif list_idx == 1: (num) else: (num) mask = ((length, length)) # traverse each element of the matrix for row in range([0]): for col in range([1]): if (row in list0 and col in list0) or (row in list1 and col in list1) or (row in list2 and col in list2): mask[row][col] = 1 return mask if __name__ == "__main__": # if no dom file ,please get dom file first with open("", "w", encoding="utf-8") as f: ("[7-56,239-327,438-454,522-556,574-586]" + "\n" + "[57-85,96-112,221-238]" + "\n" + "[113-220,328-437,455-521,557-573]") file_path = "./" protein_length = 1000 # mask_matrix size mask_matrix = generateMaskBasedOnDom(file_path, protein_length) print("*************Generate Mask Matrix Successful!*************") # Randomly test several groups print(mask_matrix[7][56]) # 1 print(mask_matrix[7][239]) # 1 print(mask_matrix[8][57]) # 0 print(mask_matrix[57][95]) # 0 print(mask_matrix[113][573]) # 1
This is the end of this article about the example of python implementing mask matrix (according to the elements given in the list). For more related python implementing mask matrix, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!