SYMBOL INDEX (267 symbols across 31 files) FILE: data/dataclass/CTData.py class CTFormat (line 12) | class CTFormat(Enum): class CTData (line 17) | class CTData: method __init__ (line 22) | def __init__(self): method from_dicom (line 38) | def from_dicom(cls, dicom_path): method from_mhd (line 80) | def from_mhd(cls, mhd_path): method convert_to_hu (line 112) | def convert_to_hu(self): method resample_pixel (line 130) | def resample_pixel(self, new_spacing=[1, 1, 1]): method filter_lung_img_mask (line 165) | def filter_lung_img_mask(self): method world_to_voxel (line 180) | def world_to_voxel(self, world_coord): method voxel_to_world (line 196) | def voxel_to_world(self, voxel_coord): method extract_cube (line 212) | def extract_cube(self, center_world_mm, size_mm,if_fixed_radius = False): method visualize_slice (line 256) | def visualize_slice(self, slice_idx=None, axis=0, show_lung_only=False): method visualize_nodule (line 298) | def visualize_nodule(self, coord_x,coord_y, coord_z, diameter): method save_as_nifti (line 333) | def save_as_nifti(self, output_path): FILE: data/dataclass/NoduleCube.py function normal_cube_to_tensor (line 11) | def normal_cube_to_tensor(cube_data): class NoduleCube (line 36) | class NoduleCube: method __post_init__ (line 56) | def __post_init__(self): method load_from_npy (line 65) | def load_from_npy(self) -> None: method save_to_npy (line 85) | def save_to_npy(self, output_path: str) -> str: method save_to_png (line 103) | def save_to_png(self, output_path: str) -> str: method load_from_png (line 157) | def load_from_png(self) -> None: method set_cube_data (line 201) | def set_cube_data(self, pixel_data: np.ndarray) -> None: method resize (line 219) | def resize(self, new_size: int) -> None: method augment (line 238) | def augment(self, rotation: bool = True, flip_axis: int = -1, noise: b... method visualize_3d (line 290) | def visualize_3d(self, output_path: Optional[str] = None, show: bool =... method from_npy (line 355) | def from_npy(cls, file_path: str, cube_size: int = 64) -> 'NoduleCube': method from_png (line 371) | def from_png(cls, file_path: str, cube_size: int = 64) -> 'NoduleCube': method from_array (line 387) | def from_array(cls, FILE: data/preprocessing/lidc_process/lidc_annotation_process.py function merge_nodule_annotation_csv_to_one (line 22) | def merge_nodule_annotation_csv_to_one(nodule_annotation_csv_list,save_f... function read_nodule_annotation_from_xml (line 44) | def read_nodule_annotation_from_xml(xml_path,patient_mhd_path_dict,agree... function process_lidc_annotations (line 201) | def process_lidc_annotations(xml_annotation_like,patient_mhd_path_dict,m... function extract_lidc_every_z_annotations (line 227) | def extract_lidc_every_z_annotations(xml_like,every_z_save_csv,patient_m... function extract_every_z_from_lidc_xml (line 238) | def extract_every_z_from_lidc_xml(xml_path,patient_mhd_path_dict): FILE: data/preprocessing/lidc_process/lidc_coordinate_process.py function draw_percent_cube_by_csv (line 15) | def draw_percent_cube_by_csv(percent_csv,mhd_info_csv,cube_save_path): function percent_coordinatecsv_to_mmcsv (line 40) | def percent_coordinatecsv_to_mmcsv(percent_csv,mhd_info_csv,mmcsv_save): function avg_coordinates (line 75) | def avg_coordinates(csv,threshold,csv_save): function add_final_mals (line 169) | def add_final_mals(csv,with_real_malsclabel_csv): function percent_coordinate_to_mm (line 253) | def percent_coordinate_to_mm(patient_id,p_x,p_y,p_z,mhd_info_csv): function draw_all_confirmed_cubes (line 282) | def draw_all_confirmed_cubes(mm_coordinates_csv,mhd_info_csv,extract_png... FILE: data/preprocessing/luna16_invalid_nodule_filter.py function nodule_valid (line 3) | def nodule_valid(ct_data, voxel_coord_x, voxel_coord_y,voxel_coord_z): FILE: data/preprocessing/luna16_prepare_cube_data.py function get_mhd_file_path (line 12) | def get_mhd_file_path(patient_id, luna16_root="H:/luna16"): function get_real_candidate (line 37) | def get_real_candidate(mhd_root_dir, annotation_csv, candidate_csv,save_... function ctdata_annotation2nodule (line 97) | def ctdata_annotation2nodule(ct_data, nodule_info, mal_label, cube_size=... function process_nodule (line 134) | def process_nodule(nodule, cube_index,mhd_root_dir, label, if_aug, png_o... function prepare_cubes_mp (line 266) | def prepare_cubes_mp(mhd_root_dir, annotation_csv, label, png_output, np... function main (line 351) | def main(): FILE: deploy/backend/app.py function on_detection_completed (line 58) | def on_detection_completed(session_id, results): function update_session_state (line 104) | def update_session_state(session_id, state): function get_session_state (line 131) | def get_session_state(session_id): function allowed_file (line 142) | def allowed_file(filename): function index (line 148) | def index(): function static_files (line 154) | def static_files(path): function upload_file (line 160) | def upload_file(): function detect_file_type (line 262) | def detect_file_type(directory): function start_preprocessing (line 298) | def start_preprocessing(session_id): function start_detection (line 401) | def start_detection(): function get_progress (line 460) | def get_progress(session_id): function get_results (line 502) | def get_results(session_id): function get_nodule_data (line 564) | def get_nodule_data(session_id, nodule_id): function generate_nodule_images (line 599) | def generate_nodule_images(session_id, nodules, lung_img): function update_session_state (line 792) | def update_session_state(session_id, state): function save_slice_box (line 820) | def save_slice_box(session_id,lung_seg,voxel_coords,radius = 32): function save_lung_segmentation_slices (line 851) | def save_lung_segmentation_slices(session_id, lung_seg): function get_lung_z_slice (line 915) | def get_lung_z_slice(session_id, slice_index): function get_lung_slices_info (line 940) | def get_lung_slices_info(session_id): FILE: deploy/backend/dataclass/CTData.py class CTFormat (line 12) | class CTFormat(Enum): class CTData (line 17) | class CTData: method __init__ (line 22) | def __init__(self): method from_dicom (line 38) | def from_dicom(cls, dicom_path): method from_mhd (line 80) | def from_mhd(cls, mhd_path): method convert_to_hu (line 112) | def convert_to_hu(self): method resample_pixel (line 130) | def resample_pixel(self, new_spacing=[1, 1, 1]): method filter_lung_img_mask (line 165) | def filter_lung_img_mask(self): method world_to_voxel (line 180) | def world_to_voxel(self, world_coord): method voxel_to_world (line 196) | def voxel_to_world(self, voxel_coord): method extract_cube (line 212) | def extract_cube(self, center_world_mm, size_mm,if_fixed_radius = False): method visualize_slice (line 256) | def visualize_slice(self, slice_idx=None, axis=0, show_lung_only=False): method visualize_nodule (line 298) | def visualize_nodule(self, coord_x,coord_y, coord_z, diameter): method save_as_nifti (line 333) | def save_as_nifti(self, output_path): FILE: deploy/backend/dataclass/NoduleCube.py function normal_cube_to_tensor (line 11) | def normal_cube_to_tensor(cube_data): class NoduleCube (line 36) | class NoduleCube: method __post_init__ (line 56) | def __post_init__(self): method load_from_npy (line 65) | def load_from_npy(self) -> None: method save_to_npy (line 85) | def save_to_npy(self, output_path: str) -> str: method save_to_png (line 103) | def save_to_png(self, output_path: str) -> str: method load_from_png (line 157) | def load_from_png(self) -> None: method set_cube_data (line 201) | def set_cube_data(self, pixel_data: np.ndarray) -> None: method resize (line 219) | def resize(self, new_size: int) -> None: method augment (line 238) | def augment(self, rotation: bool = True, flip_axis: int = -1, noise: b... method visualize_3d (line 290) | def visualize_3d(self, output_path: Optional[str] = None, show: bool =... method from_npy (line 355) | def from_npy(cls, file_path: str, cube_size: int = 64) -> 'NoduleCube': method from_png (line 371) | def from_png(cls, file_path: str, cube_size: int = 64) -> 'NoduleCube': method from_array (line 387) | def from_array(cls, FILE: deploy/backend/detector.py class NoduleDetector (line 41) | class NoduleDetector: method __init__ (line 44) | def __init__(self, model_path=None, device='cuda'): method load_model (line 63) | def load_model(self, model_path): method detect (line 84) | def detect(self, file_path, session_id, patient_id=None): method _detect_thread (line 127) | def _detect_thread(self, file_path, session_id, patient_id): method _create_progress_logger (line 242) | def _create_progress_logger(self, session_id): method _extract_nodule_cubes (line 288) | def _extract_nodule_cubes(self, ct_data, nodules_df, cube_size=32): method _update_session (line 348) | def _update_session(self, session_id, updates): method get_session_state (line 364) | def get_session_state(self, session_id): method set_completion_callback (line 396) | def set_completion_callback(self, callback): function get_detector_instance (line 404) | def get_detector_instance(model_path=None): FILE: deploy/backend/models/pytorch_c3d_tiny.py class C3dTiny (line 11) | class C3dTiny(nn.Module): method __init__ (line 12) | def __init__(self): method forward (line 66) | def forward(self, x): FILE: deploy/backend/models/pytorch_nodule_detector.py function setup_logger (line 21) | def setup_logger(log_dir="./inference_logs"): function load_ct_data (line 49) | def load_ct_data(file_path): function load_model (line 75) | def load_model(evaL_model_path, device='cuda'): function get_lung_bounds (line 92) | def get_lung_bounds(lung_mask): function scan_ct_data (line 151) | def scan_ct_data(ct_data, model, device, logger, step=SCAN_STEP): function process_batch (line 256) | def process_batch(batch_inputs, batch_positions, model, device, ct_data,... function reduce_overlapping_nodules (line 286) | def reduce_overlapping_nodules(results_df, distance_threshold=15): function filter_false_positives (line 328) | def filter_false_positives(nodules_df, ct_data, max_nodules=10): function format_results (line 364) | def format_results(results_df, ct_data, patient_id): function detect_nodules (line 405) | def detect_nodules(file_path, model_path, detect_patient_id=None, device... FILE: deploy/backend/preprocessing/luna16_invalid_nodule_filter.py function nodule_valid (line 4) | def nodule_valid(ct_data, voxel_coord_x, voxel_coord_y,voxel_coord_z): FILE: deploy/backend/util/dicom_util.py function is_dicom_file (line 12) | def is_dicom_file(filename): function get_dicom_thickness (line 26) | def get_dicom_thickness(dicom_slices): function load_dicom_slices (line 53) | def load_dicom_slices(dicom_path): function get_pixels_hu (line 85) | def get_pixels_hu(slices): function getinfo_dicom (line 105) | def getinfo_dicom(dicom_path): function extract_dicom_images_patient (line 127) | def extract_dicom_images_patient(dicom_path, target_dir): FILE: deploy/backend/util/image_util.py function get_normalized_img_unit8 (line 11) | def get_normalized_img_unit8(img): function load_patient_images (line 22) | def load_patient_images(png_path, wildcard="*.*", exclude_wildcards=[]): function draw_overlay (line 37) | def draw_overlay(png_path: str, p_x: float, p_y: float, p_z: float, inde... function prepare_image_for_net3D (line 61) | def prepare_image_for_net3D(img,MEAN_PIXEL_VALUE = 41): function move_png2dir (line 76) | def move_png2dir(target_dir): function rescale_patient_images (line 93) | def rescale_patient_images(images_zyx, org_spacing_xyz, target_voxel_mm ... function rescale_patient_images2 (line 141) | def rescale_patient_images2(images_zyx, target_shape, verbose=False): function resize_image (line 178) | def resize_image(image: np.ndarray, new_shape: Tuple[int, ...]) -> np.nd... function cv_flip (line 204) | def cv_flip(img,cols,rows,degree): function random_rotate_img (line 219) | def random_rotate_img(img, chance, min_angle, max_angle): function random_flip_img (line 248) | def random_flip_img(img, horizontal_chance=0, vertical_chance=0): function random_scale_img (line 283) | def random_scale_img(img, xy_range, lock_xy=False): class XYRange (line 325) | class XYRange: method __init__ (line 326) | def __init__(self, x_min, x_max, y_min, y_max, chance=1.0): method get_last_xy_txt (line 335) | def get_last_xy_txt(self): function random_translate_img (line 341) | def random_translate_img(img, xy_range, border_mode="constant"): function data_augmentation (line 368) | def data_augmentation(image: np.ndarray, augment_type: str = 'random') -... FILE: deploy/backend/util/mhd_util.py function get_all_mhd_file (line 17) | def get_all_mhd_file(BASE_DATA_DIR,base_head,max): function get_luna16_mhd_file (line 38) | def get_luna16_mhd_file(mhd_root): function read_csv_to_pandas (line 52) | def read_csv_to_pandas(mhd_info,col_sepator ='\t'): function extract_image_from_mhd (line 71) | def extract_image_from_mhd(mhd_file_path,png_save_path_root =None): FILE: deploy/backend/util/seg_util.py function normalize_hu_values (line 10) | def normalize_hu_values(image: np.ndarray, min_bound: int = -1000, max_b... function get_segmented_lungs (line 27) | def get_segmented_lungs(im, plot=False): FILE: deploy/backend/utils.py class CTData (line 25) | class CTData: method __init__ (line 28) | def __init__(self): method from_dicom (line 38) | def from_dicom(cls, dicom_path): method from_mhd (line 87) | def from_mhd(cls, mhd_path): method resample_pixels (line 112) | def resample_pixels(self, new_spacing=[1.0, 1.0, 1.0]): method convert_to_hu (line 146) | def convert_to_hu(self): method filter_lung_img_mask (line 165) | def filter_lung_img_mask(self, threshold=-320): method fill_body_mask (line 214) | def fill_body_mask(self, threshold_image): function extract_lung_from_image (line 234) | def extract_lung_from_image(sitk_image): function segment_lung (line 253) | def segment_lung(ct_array): function extract_lung_from_file (line 309) | def extract_lung_from_file(file_path): function prepare_data_for_3d_rendering (line 350) | def prepare_data_for_3d_rendering(lung_data): FILE: deploy/frontend/js/main.js function initializeSteps (line 27) | function initializeSteps() { function setupFileUpload (line 33) | function setupFileUpload() { function initializeEventListeners (line 79) | function initializeEventListeners() { function getFileExtension (line 115) | function getFileExtension(filename) { function formatFileSize (line 120) | function formatFileSize(bytes) { function uploadFile (line 129) | function uploadFile(file) { function startDetection (line 214) | async function startDetection() { function startProgressPolling (line 258) | function startProgressPolling() { function updateProgress (line 317) | function updateProgress(progress, message) { function loadLungSegmentation (line 333) | function loadLungSegmentation() { function initCTViewer (line 384) | function initCTViewer() { function handleSliceScroll (line 426) | function handleSliceScroll(event) { function changeSlice (line 437) | function changeSlice(delta) { function loadSlice (line 457) | function loadSlice(sliceIndex) { function fetchResults (line 498) | function fetchResults() { function updateNoduleList (line 553) | function updateNoduleList(nodules) { function createNoduleMarkers (line 633) | function createNoduleMarkers() { function highlightNoduleInList (line 741) | function highlightNoduleInList(noduleId) { function loadNoduleDetails (line 758) | function loadNoduleDetails(noduleId) { function resetView (line 879) | function resetView() { function showMessage (line 899) | function showMessage(message, type = 'info') { function updateUIState (line 938) | function updateUIState(state) { FILE: deploy/run.py function get_python_command (line 8) | def get_python_command(): function check_dependencies (line 15) | def check_dependencies(): function create_directories (line 29) | def create_directories(): function run_backend_server (line 35) | def run_backend_server(): function main (line 65) | def main(): FILE: inference/classifier.py function scan (line 16) | def scan(dicom_path, only_patient_id, workspace): function generate_ggn_class (line 75) | def generate_ggn_class(ii_index): function multipule_test (line 82) | def multipule_test(workspace, only_patient_id, CONTINUE_JOB): function locate_malignancy (line 96) | def locate_malignancy(png_path, model_weight,CONTINUE_JOB, only_patient_id, function filter_patient_nodules_predictions (line 198) | def filter_patient_nodules_predictions(df_nodule_predictions: pandas.Dat... function reduce_predicts_same_slice (line 244) | def reduce_predicts_same_slice(pred_nodules_df): FILE: inference/detector.py function filter_patient_nodules_predictions (line 48) | def filter_patient_nodules_predictions(df_nodule_predictions: pandas.Dat... function predict_cubes (line 94) | def predict_cubes(png_path, model_path, only_patient_id=None, magnifica... function reduce_predicts_same_slice (line 192) | def reduce_predicts_same_slice(pred_nodules_df): function multipule_test (line 218) | def multipule_test(workspace, only_patient_id, CONTINUE_JOB): function draw_overlay_dicom (line 235) | def draw_overlay_dicom(pixels, coord_x, coord_y, coord_z, i, pixel_spac... function get_papaya_coords (line 264) | def get_papaya_coords(coord_x, coord_y, coord_z, nodule_chance, pixel_sp... function get_papaya_coords_only (line 295) | def get_papaya_coords_only(coord_x, coord_y, coord_z, nodule_chance, pix... function run (line 326) | def run(dicom_path, png_save_dir): function predict_nodule_type (line 347) | def predict_nodule_type(df, png_size, png_dir): function generate_ggn_class (line 375) | def generate_ggn_class(ii_index): function scan (line 388) | def scan(dicom_path, only_patient_id, workspace, file_type="dicom"): function scan_only (line 474) | def scan_only(dicom_path, only_patient_id, workspace, file_type="dicom"): FILE: inference/negative_sample_selection.py function variance_of_laplacian (line 13) | def variance_of_laplacian(image): function texture_score (line 20) | def texture_score(cube): function is_valid_negative_sample (line 42) | def is_valid_negative_sample(cube, lung_mask=None, nodule_coords=None, m... function select_negative_samples_from_ct (line 76) | def select_negative_samples_from_ct(ct_data, nodule_coords=None, num_sam... function generate_negative_samples (line 200) | def generate_negative_samples(ct_paths, output_dir, nodules_csv=None, sa... function visualize_samples (line 268) | def visualize_samples(samples, output_path=None, cols=5): FILE: inference/pytorch_nodule_detector.py function setup_logger (line 21) | def setup_logger(log_dir="./inference_logs"): function load_ct_data (line 49) | def load_ct_data(file_path): function load_model (line 75) | def load_model(evaL_model_path, device='cuda'): function get_lung_bounds (line 92) | def get_lung_bounds(lung_mask): function scan_ct_data (line 151) | def scan_ct_data(ct_data, model, device, logger, step=SCAN_STEP): function process_batch (line 257) | def process_batch(batch_inputs, batch_positions, model, device, ct_data,... function reduce_overlapping_nodules (line 287) | def reduce_overlapping_nodules(results_df, distance_threshold=15): function filter_false_positives (line 329) | def filter_false_positives(nodules_df, ct_data, max_nodules=10): function format_results (line 365) | def format_results(results_df, ct_data, patient_id): function detect_nodules (line 406) | def detect_nodules(file_path, model_path, detect_patient_id=None, device... FILE: models/pytorch_c3d_tiny.py class C3dTiny (line 11) | class C3dTiny(nn.Module): method __init__ (line 12) | def __init__(self): method forward (line 66) | def forward(self, x): FILE: training/train_c3d_pytorch.py function setup_logger (line 31) | def setup_logger(log_dir="./pytorch_logs"): class Luna16DataSet (line 58) | class Luna16DataSet(Dataset): method __init__ (line 59) | def __init__(self, files, labels, tranform =None): method __len__ (line 64) | def __len__(self): method __getitem__ (line 67) | def __getitem__(self, idx): function load_train_val_data (line 77) | def load_train_val_data(postive_dir, negative_dir): function train_model (line 98) | def train_model(model,train_loader, val_loader, optimizer, criterion, sc... function plot_metrics (line 216) | def plot_metrics(train_losses, val_losses, train_accs, val_accs, save_dir): function main (line 244) | def main(): FILE: util/dicom_util.py function is_dicom_file (line 12) | def is_dicom_file(filename): function get_dicom_thickness (line 26) | def get_dicom_thickness(dicom_slices): function load_dicom_slices (line 53) | def load_dicom_slices(dicom_path): function get_pixels_hu (line 85) | def get_pixels_hu(slices): function getinfo_dicom (line 105) | def getinfo_dicom(dicom_path): function extract_dicom_images_patient (line 127) | def extract_dicom_images_patient(dicom_path, target_dir): FILE: util/image_util.py function get_normalized_img_unit8 (line 11) | def get_normalized_img_unit8(img): function load_patient_images (line 22) | def load_patient_images(png_path, wildcard="*.*", exclude_wildcards=[]): function draw_overlay (line 37) | def draw_overlay(png_path: str, p_x: float, p_y: float, p_z: float, inde... function prepare_image_for_net3D (line 61) | def prepare_image_for_net3D(img,MEAN_PIXEL_VALUE = 41): function move_png2dir (line 76) | def move_png2dir(target_dir): function rescale_patient_images (line 93) | def rescale_patient_images(images_zyx, org_spacing_xyz, target_voxel_mm ... function rescale_patient_images2 (line 141) | def rescale_patient_images2(images_zyx, target_shape, verbose=False): function resize_image (line 178) | def resize_image(image: np.ndarray, new_shape: Tuple[int, ...]) -> np.nd... function cv_flip (line 204) | def cv_flip(img,cols,rows,degree): function random_rotate_img (line 219) | def random_rotate_img(img, chance, min_angle, max_angle): function random_flip_img (line 248) | def random_flip_img(img, horizontal_chance=0, vertical_chance=0): function random_scale_img (line 283) | def random_scale_img(img, xy_range, lock_xy=False): class XYRange (line 325) | class XYRange: method __init__ (line 326) | def __init__(self, x_min, x_max, y_min, y_max, chance=1.0): method get_last_xy_txt (line 335) | def get_last_xy_txt(self): function random_translate_img (line 341) | def random_translate_img(img, xy_range, border_mode="constant"): function data_augmentation (line 368) | def data_augmentation(image: np.ndarray, augment_type: str = 'random') -... FILE: util/mhd_util.py function get_all_mhd_file (line 17) | def get_all_mhd_file(BASE_DATA_DIR,base_head,max): function get_luna16_mhd_file (line 38) | def get_luna16_mhd_file(mhd_root): function read_csv_to_pandas (line 52) | def read_csv_to_pandas(mhd_info,col_sepator ='\t'): function extract_image_from_mhd (line 71) | def extract_image_from_mhd(mhd_file_path,png_save_path_root =None): FILE: util/progress_watch.py class Stopwatch (line 2) | class Stopwatch(object): method start (line 3) | def start(self): method get_elapsed_time (line 5) | def get_elapsed_time(self): method get_elapsed_seconds (line 10) | def get_elapsed_seconds(self): method get_time (line 16) | def get_time(): method start_new (line 21) | def start_new(): FILE: util/seg_util.py function normalize_hu_values (line 12) | def normalize_hu_values(image: np.ndarray, min_bound: int = -1000, max_b... function get_segmented_lungs (line 29) | def get_segmented_lungs(im, plot=False):