Skip to content

Commit

Permalink
Merge pull request #23 from GenevieveBuckley/validate
Browse files Browse the repository at this point in the history
Podo 0.1.0-alpha
  • Loading branch information
GenevieveBuckley authored Jun 29, 2018
2 parents 64e3e8f + e28f6b6 commit 90c3781
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
24 changes: 13 additions & 11 deletions podocytes/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@
# nonbuffered_stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
# sys.stdout = nonbuffered_stdout

__version__ = '0.1.0'

__DESCR__ = ('Load, segment, count, and measure glomeruli and podocytes in '
__DESCR__ = ('Version ' + __version__ + ' '
'Load, segment, count, and measure glomeruli and podocytes in '
'fluorescence images.')


Expand Down Expand Up @@ -78,7 +80,10 @@ def main():
logging.info(f"{len(filelist)} {ext} files found.")
for filename in filelist:
logging.info(f"Processing file: {filename}")
images = pims.open(filename)
try:
images = pims.open(filename)
except Exception:
continue
for im_series_num in range(images.metadata.ImageCount()):
logging.info(f"{images.metadata.ImageID(im_series_num)}")
logging.info(f"{images.metadata.ImageName(im_series_num)}")
Expand Down Expand Up @@ -108,15 +113,12 @@ def main():
f"{int(glom.centroid[0])})")
df = get_podocyte_avg_statistics(df)
df = get_glom_statistics(df, glom, glom_index, voxel_volume)
df['image_series_num'] = images.metadata.ImageID(im_series_num)
df['image_series_name'] = images.metadata.ImageName(im_series_num)
df['image_filename'] = filename
detailed_stats = detailed_stats.append(df, ignore_index=True, sort=False)
#detailed_stats.to_csv(os.path.join(output_directory, 'detailedstats.csv'))
detailed_stats.to_csv(output_filename_detailed_stats)
glom_index += 1
# add image details to dataframe
if detailed_stats is not None:
detailed_stats['image_series_num'] = images.metadata.ImageID(im_series_num)
detailed_stats['image_series_name'] = images.metadata.ImageName(im_series_num)
detailed_stats['image_filename'] = filename
detailed_stats.to_csv(output_filename_detailed_stats)
# Summarize output and write to file
summary_stats = create_summary_stats(detailed_stats)
output_filename_summary_stats = os.path.join(output_directory,
Expand Down Expand Up @@ -242,7 +244,7 @@ def find_files(input_directory, ext):
filelist = []
for root, _, files in os.walk(input_directory):
for f in files:
if f.endswith(ext):
if f.endswith(ext) and not f.startswith('.'):
filename = os.path.join(root, f)
filelist.append(filename)
return filelist
Expand Down Expand Up @@ -333,7 +335,7 @@ def log_file_begins(output_directory, args, timestamp):
# Log user input arguments
input_directory = ' '.join(args.input_directory)
output_directory = ' '.join(args.output_directory)
logging.info("Podocyte automated analysis program")
logging.info("Podocyte automated analysis program, version " + __version__)
logging.info(f"{timestamp}")
logging.info("========== USER INOUT ARGUMENTS ==========")
logging.info(f"input_directory: {input_directory}")
Expand Down
14 changes: 9 additions & 5 deletions podocytes/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@

def main():
# user input
input_dir = "/Users/genevieb/Desktop/test_podo/"
output_dir = "/Users/genevieb/Desktop/test_podo/out_26June2018/validate/"
image_filename = os.path.join(input_dir, "little_input", "51559.lif")
#image_filename = os.path.join(input_dir, "input", "51548 and 51570.lif")
input_counts_dir = "/Users/genevieb/Documents/ImageAnalysis/kidney_glomeruli/input_data/SP8/Postnatal21day_mice/markers_21daygloms/"
input_image_dir = "/Users/genevieb/Documents/ImageAnalysis/kidney_glomeruli/input_data/SP8/Postnatal21day_mice/input_files/"
output_dir = "/Users/genevieb/Documents/ImageAnalysis/kidney_glomeruli/input_data/SP8/Postnatal21day_mice/input_files/output_27June2018/validate//"
image_filename = os.path.join(input_image_dir, "51571 and 51575.lif")
channel_glomeruli = 0
channel_podocytes = 1
min_glom_diameter = 30
Expand All @@ -50,9 +50,12 @@ def main():

# images
images = pims.open(image_filename)
logging.info(f"Processing file: {image_filename}")

# CellCounter xml
cellcounter_filelist = find_all_count_files(os.path.join(input_dir, "counts"))
cellcounter_filelist = find_all_count_files(input_counts_dir)
logging.info(f"Found {len(cellcounter_filelist)} xml count files. ")
logging.info(f"{cellcounter_filelist}")
for xml_filename in cellcounter_filelist:
xml_tree = ET.parse(xml_filename)
xml_image_name = xml_tree.find('.//Image_Filename').text
Expand All @@ -77,6 +80,7 @@ def main():
glomeruli_view.shape)

glomeruli_labels = preprocess_glomeruli(glomeruli_view)
io.imsave(os.path.join(output_dir, output_fname+f"_Glomeruli_Labels.tif"), glomeruli_labels, imagej=True)
glom_regions = filter_by_size(glomeruli_labels,
min_glom_diameter,
max_glom_diameter)
Expand Down

0 comments on commit 90c3781

Please sign in to comment.