-
Notifications
You must be signed in to change notification settings - Fork 0
mammography_analyzer
The MammographyAnalyzer class provides advanced tools for analyzing mammographic images. It supports breast density analysis, mass detection, calcification detection, architectural distortion detection, asymmetry detection, and skin thickening analysis. The class also includes visualization capabilities and methods for generating BI-RADS assessments and comprehensive reports.
class MammographyAnalyzer:
def __init__(self, image_analyzer):
"""
Initialize a new MammographyAnalyzer object.
:param image_analyzer: ImageAnalyzer instance for image processing
"""
...| Attribute | Type | Description |
|---|---|---|
image_analyzer |
ImageAnalyzer |
ImageAnalyzer instance for image processing. |
density_categories |
Dict[str, str] |
BI-RADS density categories. |
-
__init__(self, image_analyzer)Initializes a newMammographyAnalyzerinstance with the specifiedImageAnalyzer.
-
analyze_mammogram(self, image, view="CC", laterality="L") -> Dict[str, Any]Performs comprehensive mammography analysis, including density, masses, calcifications, architectural distortions, and asymmetries.-
Parameters:
-
image: Input mammographic image (ImageJ DataArray). -
view: Mammographic view ('CC', 'MLO', 'ML', 'LM'). -
laterality: Breast laterality ('L' for left, 'R' for right).
-
-
Returns: Dictionary containing comprehensive analysis results.
-
-
preprocess_mammogram(self, image) -> np.ndarrayPreprocesses a mammographic image for optimal analysis.-
Parameters:
-
image: Input mammographic image.
-
-
Returns: Preprocessed image.
-
-
segment_breast_region(self, image) -> np.ndarraySegments the breast region from the background and artifacts.-
Parameters:
-
image: Preprocessed mammographic image.
-
-
Returns: Binary mask of the breast region.
-
-
enhance_mammogram(self, image, breast_mask) -> np.ndarrayEnhances a mammographic image for better feature visibility.-
Parameters:
-
image: Preprocessed image. -
breast_mask: Breast region mask.
-
-
Returns: Enhanced image.
-
-
analyze_breast_density(self, image, breast_mask) -> Dict[str, Any]Analyzes breast density according to BI-RADS categories.-
Parameters:
-
image: Enhanced mammographic image. -
breast_mask: Breast region mask.
-
-
Returns: Density analysis results.
-
-
detect_masses(self, image, breast_mask) -> List[Dict[str, Any]]Detects potential masses in a mammographic image.-
Parameters:
-
image: Enhanced image. -
breast_mask: Breast region mask.
-
-
Returns: List of detected masses with properties.
-
-
detect_calcifications(self, image, breast_mask) -> List[Dict[str, Any]]Detects microcalcifications and macrocalcifications.-
Parameters:
-
image: Enhanced image. -
breast_mask: Breast region mask.
-
-
Returns: List of detected calcifications with properties.
-
-
detect_architectural_distortion(self, image, breast_mask) -> List[Dict[str, Any]]Detects architectural distortion patterns.-
Parameters:
-
image: Enhanced image. -
breast_mask: Breast region mask.
-
-
Returns: List of detected distortions with properties.
-
-
detect_asymmetries(self, image, breast_mask) -> List[Dict[str, Any]]Detects focal asymmetries and developing asymmetries.-
Parameters:
-
image: Enhanced image. -
breast_mask: Breast region mask.
-
-
Returns: List of detected asymmetries with properties.
-
-
analyze_skin_thickening(self, image, breast_mask) -> Dict[str, Any]Analyzes skin thickening, which can indicate inflammatory conditions.-
Parameters:
-
image: Enhanced image. -
breast_mask: Breast region mask.
-
-
Returns: Skin analysis results.
-
-
assess_mass_suspicion(self, circularity, contrast, area) -> strAssesses the suspicion level of a detected mass.-
Parameters:
-
circularity: Mass circularity measure. -
contrast: Mass contrast with surroundings. -
area: Mass area.
-
-
Returns: Suspicion level string.
-
-
analyze_calcification_clustering(self, calcifications) -> List[Dict[str, Any]]Analyzes clustering patterns of calcifications.-
Parameters:
-
calcifications: List of detected calcifications.
-
-
Returns: Updated calcifications with clustering analysis.
-
-
remove_duplicate_masses(self, masses, distance_threshold=30) -> List[Dict[str, Any]]Removes duplicate mass detections.-
Parameters:
-
masses: List of detected masses. -
distance_threshold: Minimum distance between masses.
-
-
Returns: Filtered list of masses.
-
-
remove_overlapping_distortions(self, distortions, distance_threshold=50) -> List[Dict[str, Any]]Removes overlapping architectural distortion detections.-
Parameters:
-
distortions: List of detected distortions. -
distance_threshold: Minimum distance between distortions.
-
-
Returns: Filtered list of distortions.
-
-
calculate_cancer_risk(self, masses, calcifications, distortions, asymmetries) -> Dict[str, Any]Calculates overall cancer risk assessment.-
Parameters:
-
masses: Detected masses. -
calcifications: Detected calcifications. -
distortions: Detected architectural distortions. -
asymmetries: Detected asymmetries.
-
-
Returns: Risk assessment dictionary.
-
-
visualize_mammography_analysis(self, analysis_results)Visualizes the results of mammography analysis.-
Parameters:
-
analysis_results: Results fromanalyze_mammogrammethod.
-
-
Parameters:
-
generate_birads_assessment(self, analysis_results) -> Dict[str, Any]Generates a BI-RADS assessment based on analysis results.-
Parameters:
-
analysis_results: Results fromanalyze_mammogrammethod.
-
-
Returns: BI-RADS assessment dictionary.
-
-
create_breast_tissue_from_mammogram(self, image, analysis_results, tissue_name: str) -> BreastTissueCreates a breast tissue representation from mammography analysis.-
Parameters:
-
image: Original mammographic image. -
analysis_results: Analysis results. -
tissue_name: Name for the tissue.
-
-
Returns: Tissue object with mammography-derived properties.
-
-
compare_bilateral_mammograms(self, left_analysis, right_analysis) -> Dict[str, Any]Compares bilateral mammographic findings for asymmetry assessment.-
Parameters:
-
left_analysis: Analysis results for the left breast. -
right_analysis: Analysis results for the right breast.
-
-
Returns: Bilateral comparison results.
-
-
export_analysis_report(self, analysis_results, birads_assessment=None) -> strExports a comprehensive analysis report.-
Parameters:
-
analysis_results: Analysis results. -
birads_assessment: Optional BI-RADS assessment.
-
-
Returns: Formatted report string.
-
# Initialize ImageAnalyzer
image_analyzer = ImageAnalyzer()
# Initialize MammographyAnalyzer
mammography_analyzer = MammographyAnalyzer(image_analyzer)
# Load a mammographic image
image = image_analyzer.load_image("path/to/mammogram.tif")
# Analyze the mammogram
analysis_results = mammography_analyzer.analyze_mammogram(image, view="CC", laterality="L")
# Visualize the mammography analysis
mammography_analyzer.visualize_mammography_analysis(analysis_results)
# Generate a BI-RADS assessment
birads_assessment = mammography_analyzer.generate_birads_assessment(analysis_results)
print(birads_assessment)
# Create a breast tissue object from the mammogram analysis
breast_tissue = mammography_analyzer.create_breast_tissue_from_mammogram(
image, analysis_results, "Left Breast Tissue"
)
print(breast_tissue)
# Export an analysis report
report = mammography_analyzer.export_analysis_report(analysis_results, birads_assessment)
print(report)-
cv2(OpenCV): For image processing tasks such as filtering, edge detection, and segmentation. -
numpy: For numerical operations and array handling. -
scipy: For scientific computing and image processing. -
skimage: For image processing and analysis. -
sklearn.cluster.KMeans: For clustering-based segmentation. -
matplotlib: For visualization. -
biobridge.blocks.cell.Cell: For creating cell objects. -
biobridge.definitions.tissues.breast.BreastTissue: For creating tissue objects.
- The class includes checks for valid input data and handles potential errors during image processing and analysis.
- The
MammographyAnalyzerclass is designed for advanced mammographic image analysis. - It supports multiple mammographic views and provides detailed analysis of breast density, masses, calcifications, architectural distortions, and asymmetries.
- The
visualize_mammography_analysismethod provides a graphical representation of the analysis results. - The
generate_birads_assessmentmethod generates a BI-RADS assessment based on the analysis results. - The
create_breast_tissue_from_mammogrammethod creates a tissue object based on the analysis results, which can be used for further biological simulations. - The
export_analysis_reportmethod generates a comprehensive report suitable for clinical interpretation.