AI in Drug Discovery

Image for post
Image for post
DNAJA1 protein, a potential target for pancreatic cancer.

Content

  1. Binding Affinity
  2. Virtual Screening
  3. Ligand parameterization
  4. Receptor parameterization
  5. Graph neural networks
  6. Example of implementation
  7. Summary

Author note: some words and definitions may be unfamiliar to a reader. Feel free to click and follow the links — you’ll land at the appropriate wiki page where you can find more information.

1. Intro

The topic relates to the application of AI and bioinformatics in drug discovery. The core purposes of the proposed AI technology [1] are:

  1. Cut expenses and duration of early drug discovery phases (target discovery and validation, lead identification and optimization). …


Software Architect’s library

Image for post
Image for post

Content

  1. Solutions to Sample Case Studies
  2. Online Proctored Exam
  3. Web Resources
  4. Mobile Resources
  5. Books
  6. FAQ
  7. Summary

Note: Google Cloud Certified Professional Cloud Architect exam v2.0 is in BETA as of early 2021. This guide discusses v1.0 of the exam

Intro

There are many good resources (see Resources and Books sections at the end) to prepare for the exam — this article does not pretend to be such a resource — it shares personal experience and recommendations.

I took A Cloud Guru’s online course first (haven’t finished, it’s crappy), then Cloud Academy’s (good), then Linux Academy’s (the best, but…


Software Architect’s library

Content

  1. Single-Tenant vs Multi-Tenant
  2. Databases and Multi-Tenancy
  3. Real-world example
  4. Advantages
  5. Disadvantages
  6. Use Cases
  7. Summary

1. Intro

In a multitenancy environment, multiple customers (tenants) share the same application, running on the same operating system, on the same hardware, with the same data-storage mechanism. The distinction between the customers is achieved during application design. Customers do not share or see each other’s data. The main motivation for doing this is reducing the cost per user in comparison to a dedicated system where each user has their own dedicated environment.

Image for post
Image for post
In a multi-tenant application, most of the software stacks — up until the application itself, — are shared by the different tenants.

Multi-tenancy is often used by Software-as-a-Service (SaaS) applications. The essence of SaaS…


Software Architect’s library

Content

  1. Solution
  2. Conceptual Diagram
  3. Real-World Example
  4. Benefits
  5. Drawbacks
  6. When should you use it?
  7. Summary

1. Challenge

You are developing a server-side enterprise application that:

  • supports a variety of different clients including desktop browsers, mobile browsers, native mobile applications, plus exposing an API for 3rd parties;
  • integrates with other applications via web services or a message broker;
  • handles HTTP requests and messages by executing business logic; accessing a database; exchanging messages with other systems; returning an HTML/JSON/XML response;
  • consists of logical components corresponding to different functional areas of the application. …


Software Architect’s library

Content

  1. Example
  2. Components
  3. Pattern Analysis
  4. Use Cases
  5. Antipatterns
  6. Applications
  7. Summary

1. Intro

The Pipes and Filters Architecture (PFA) expresses a sequence of processing steps on a data stream, using components called filters, connected through channels called pipes. The PFA is used to divide a larger processing task into a sequence of smaller, independent processing steps (filters) that are connected by channels (pipes). Filters can work sequentially and asynchronously. The final output is given to the consumer, known as a sink. …


Software Architect’s library

Content

  1. Example
  2. Components
  3. Pattern Analysis
  4. Use Cases
  5. Conclusions

1. Intro

The event-driven architecture (EDA) pattern is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. EDA is made up of highly decoupled, single-purpose components that asynchronously receive, and process events.

2. Example

We will characterize EDA with an example of an e-commerce site. The architecture enables the site to react to changes from a variety of sources during times of peak demand, without crashing the application or over-provisioning resources.

Image for post
Image for post
Example of an event-driven architecture for an e-commerce site. (1) Event Producers; (2) — Initial Events; (3) — Event Router; (4) — Processing Events; (5) — Event Consumers

3. Components

Event-driven architectures have five key components: event producers, initial and processing events, event routers, and event consumers. A producer…


Software Architect’s library

Software development life cycle (SDLC) is the process of dividing software development work into distinct phases to improve the design, product, and project management.

Image for post
Image for post

Typical SDLC phases:

  1. Defining the project scope.
    Customer and vendor define the project scope through requirement gathering and analysis.
  • Development.
    The system design is prepared and the overall system architecture is defined. Software development approach and pricing model are established. Then, the project team gets down to implementing and integrating the required features.
  • Stabilization. Now, testing engineers check the software to ensure that its quality is acceptable and the product serves the intended…


Software Architect’s library

Content

  1. Pattern description
  2. Key concepts
  3. Pattern example
  4. Anti-patterns
  5. Applicability
  6. Pattern Analysis
  7. Conclusions

1. Intro

The most common architecture pattern is the layered architecture (LA)pattern, otherwise known as the n-tier architecture pattern. This pattern is the de facto standard for most Java EE applications and therefore is widely known by most architects, designers, and developers.

2. Pattern description

Components within the layered architecture pattern are organized into horizontal layers, each layer performing a specific role within the application (e.g., presentation logic or business logic).

Although the layered architecture pattern does not specify the number and types of layers that must exist in the…


Software Architect’s library

Content

  1. Business Goals (=Design Purpose)
  2. Functional Requirements
  3. Quality Attributes (=Non-functional requirements)
  4. Architectural Concerns
  5. Business Constraints

1. Intro

Before commencing project design, you have to carefully think about what you are doing and why. Pretty obvious, right? But the devil is, as usual, in the details. These “what” and “why” questions are categorized as architectural drivers.

Image for post
Image for post
Overview of the architecture design activity

Knowing software Design Concepts and taking into account collected Architectural Drivers, the Software Architect makes software design decisions and documents them. That’s how a project is born.

Further, — one by one — a description of each of the main Architectural Drivers are given.

2. Business Goals


Software Architect’s library

Content

  1. Kanban metrics
  2. Kanban board
  3. Applicability
  4. Waterfall vs Scrum vs Kanban

1. What is Kanban?

Kanban is a methodology that attempts to balance demands with available team capacity (“limit work on progress”) and bypass system-level bottlenecks by full transparency of work (“visualize your work”).

To grasp the Kanban principle fast, imagine a supermarket shelf with bananas. You add bananas only after customers have bought some. You cannot put more than the shelf is capable of holding. You don’t want the shelf to be empty or underloaded — to not upset your customers. The same with feature requests. Your team…

Alex Gurbych

R&D Architect, PhD

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store