Skip to main content

A tool to find cryo-em targets for cyro-em automation building on foundation ML models.

Project description

Cryo-SAM Author: James Rodgers, Aditya Balu Organization: Iowa State University - Department of Electrical and Computer Engineering Email: jmsrdgrs@iastate.edu

Uses Sam for the detection of squares, holes, and particles in cryo-em.

Usage:

from cryo_sam import Csam

Model checkpoint location, several types downloadable from https://github.com/facebookresearch/segment-anything#model-checkpoints testing done with the below model and checkpoint information:

model_name = "vit_h"
checkpoint = "sam_model/sam_vit_h_4b8939.pth" 
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

Example construction: detector = Csam(model_name, checkpoint, device)

Csam.hole_finder(numpy_image_array) Parameter: numpy image array Returns: list of square coordinates (x, y, w, h) Csam.square_finder(numpy_image_array): Parameter: numpy image array Returns: list of square coordinates (x, y, w, h)

Both of the above returns will need to be changed in the future since extra data is to be returned be the exact nature of that isn't determined yet. It will probably return a class containing the data in the near future.

Csam.visualize_detections(image, image_scale_percent, box_prompts = None, point_prompts = None, show_boxes = True, show_point_prompts = None, show_box_prompts, show_masks = True): Parameters: image: numpy image array, numpy array of points, numpy array of bounding box, bool, bool, bool image_scale_percent: int representing scaled percent i.e 60 = 60% of original size point_prompts: numpy array of points. [[x, y], [x, y], [x, y], ...] box_prompts: numpy array of rectangle boxes [[x1, y1, x2, y2], [x1, y1, x2, y2], ...] show_boxes: bool, show bounding boxes generated by the model show_masks: bool, show masks generated by the model show_point_prompts: bool, show point prompts sent to the model show_box_prompts: bool, show bounding box prompts sent to the model Returns: None

Example usage:

test_image = np.load("/mnt/big_data_2/pncc/annotated_data/160002/box4_g11/data_031022/mmm_0.npy")
test_image = cv2.cvtColor(test_image, cv2.COLOR_BGR2RGB)

print(detector.hole_finder(test_image))
detector.visualize_detections(test_image, image_scale_percent, show_boxes=True)

image_scale_percent = 40

This function will display the image with the detections overlaid on top of it. It is currently not specialized to hole or square.
This will be changed in the future, this is mostly for testing purposes.
The image_scale_percent is the percent of the original image size that the image will be displayed at. 
This is useful for large images that would be too large to display on a screen and to improve render speed. 
The default is 50% of the original size. Will probably add a save image option in the future.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cryo-sam-0.0.72.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

cryo_sam-0.0.72-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file cryo-sam-0.0.72.tar.gz.

File metadata

  • Download URL: cryo-sam-0.0.72.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for cryo-sam-0.0.72.tar.gz
Algorithm Hash digest
SHA256 3058ee1b04ca0930c00b57cb0839077de4fd5c3a92cb46ff3d83a39125fd356d
MD5 95fc3444bcdfb0b313e03e92538ab11f
BLAKE2b-256 4c1d951f03f3e0cead8519337d99462495e968f4b8bfdde1eb8d75b9ecd9f7f2

See more details on using hashes here.

File details

Details for the file cryo_sam-0.0.72-py3-none-any.whl.

File metadata

  • Download URL: cryo_sam-0.0.72-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for cryo_sam-0.0.72-py3-none-any.whl
Algorithm Hash digest
SHA256 5fa84eb95596826204337497a7c1d7f4757f2f3dbb57e8f00e9e23ebe9f6a3d0
MD5 3b3995b6ceac7505db19d89deeb7b917
BLAKE2b-256 7ca4e3ed1e1f367b654205a482b4e2bbb368ac345036ddcfbc21c230119af6d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page