mutcleaner.cleaners.human_domainome_custom_cleaners#
Functions
|
Extract domain sequences from full sequences using position information |
|
Generate per-row mutation notations from wild-type amino acids, positions, and a domain identifier that encodes a sequence offset. |
|
Process domain position information from PFAM entries |
- mutcleaner.cleaners.human_domainome_custom_cleaners.extract_domain_sequences(dataset, sequence_column='sequence', start_pos_column='start_pos', end_pos_column='end_pos', num_workers=4)[source]#
Extract domain sequences from full sequences using position information
This function extracts domain subsequences based on start and end positions. Records with invalid positions or missing sequences are separated into the failed dataset.
- Parameters:
dataset (
DataFrame) – Dataset with full sequences and position informationsequence_column (
str) – Column containing full wild-type sequencesstart_pos_column (
str) – Column containing domain start positions (0-based)end_pos_column (
str) – Column containing domain end positionsnum_workers (
int) – Number of parallel workers for processing, set to -1 for all available CPUs
- Return type:
Tuple[DataFrame,DataFrame]- Returns:
(successful_dataset, failed_dataset) - datasets with and without extraction errors
Examples
>>> import pandas as pd >>> df = pd.DataFrame({ ... 'name': ['prot1', 'prot2', 'prot3'], ... 'sequence': ['ABCDEFGHIJ', 'KLMNOPQRST', None], ... 'start_pos': [2, 0, 5], ... 'end_pos': [7, 4, 10] ... }) >>> successful, failed = extract_domain_sequences(df) >>> print(successful['sequence'].tolist()) ['CDEFG', 'KLMN'] >>> print(len(failed)) # Should be 1 (the None sequence) 1
- mutcleaner.cleaners.human_domainome_custom_cleaners.generate_mutation_strings(dataset, name_column='domain_ID', wt_aa_column='wt_aa', mut_aa_column='mut_aa', aa_pos_column='pos')[source]#
Generate per-row mutation notations from wild-type amino acids, positions, and a domain identifier that encodes a sequence offset.
This step expects the identifier column (
name_column) to be formatted as"<Uniprot_ID>_<Pfam_ID>_<sequence_offset>". It splits that column, computes a relative residue position aspos - sequence_offset, builds a simple mutation string<wt_aa><relative_pos><mut_aa>(e.g.,A15K), stores it inmut_info. Helper columns introduced during the transformation are dropped before returning.- Parameters:
dataset (
DataFrame) – Input table containing at least the identifier, wild-type AA, mutant AA, and absolute position columns.name_column (
str) – Column holding the domain identifier in the formUniprot_ID_Pfam_ID_sequence_offset.wt_aa_column (
str) – Column with the wild-type amino acid (single-letter code).mut_aa_column (
str) – Column with the mutant amino acid (single-letter code).aa_pos_column (
str) – Column with the absolute residue position (integer).
- Return type:
DataFrame- Returns:
The input dataframe with: * A new column
mut_infocontaining strings likeA15K; * All other columns are preserved.- Raises:
KeyError – If any of the required columns are missing.
ValueError – If position or offset values cannot be interpreted as integers.
Notes
The relative position is computed as
pos - sequence_offset; interpret it
as 0-based or 1-based according to how
sequence_offsetis defined in your data. - The function relies on utility helperssplit_columnsandmerge_columns. It also treatssequence_offsetandposas integers.Examples
>>> import pandas as pd >>> df = pd.DataFrame({ ... "domain_ID": ["P12345_PF00001_10"], ... "wt_aa": ["A"], ... "mut_aa": ["K"], ... "pos": [25], ... }) >>> generate_mutation_strings(df)[["domain_ID", "mut_info"]] Splitting column 'domain_ID' into ['Uniprot_ID', 'Pfam_ID', 'sequence_offset']... Splitting using separator: '_' Successfully created split columns: ['Uniprot_ID', 'Pfam_ID', 'sequence_offset'] Merging columns ['wt_aa', 'aa_pos', 'mut_aa'] into 'mut_info'... Successfully created merged column 'mut_info' Merging columns ['Uniprot_ID', 'Pfam_ID', 'aa_pos'] into 'domain_ID'... Successfully created merged column 'domain_ID' domain_ID mut_info 0 P12345_PF00001_10 A15K
- mutcleaner.cleaners.human_domainome_custom_cleaners.process_domain_positions(dataset)[source]#
Process domain position information from PFAM entries
This function extracts position information from PFAM entries and calculates relative mutation positions. It handles parsing errors by separating failed records.
- Parameters:
dataset (
DataFrame) – Dataset with PFAM_entry column containing position information- Return type:
Tuple[DataFrame,DataFrame]- Returns:
(successful_dataset, failed_dataset) - datasets with and without parsing errors
Examples
>>> import pandas as pd >>> df = pd.DataFrame({ ... 'PFAM_entry': ['PF00001/10-100', 'PF00002/20-200', 'invalid_entry'], ... 'pos': [15, 25, 30], ... 'wt_aa': ['A', 'C', 'D'], ... 'mut_aa': ['K', 'Y', 'E'] ... }) >>> successful, failed = process_domain_positions(df) >>> print(len(successful)) # Should be 2 2 >>> print(len(failed)) # Should be 1 1