Information:

Module information

Details

Title
Software
Type
Specialist
Module code
S-BG-S2-1
Credits
10
Requirement
Compulsory

Aim of this module

This module aims to give trainees experience in software development to be able to provide safe solutions to improve patients’ lives.

Work-based content

Competencies

# Learning outcome Competency Action
# 1 Learning outcome 1 Competency

Use Linux command line and command line tools to:

  • Change a file owner and permissions
  • Change the content of a file
  • Count the number of lines in a file
  • Identify the process taking up the most memory
  • Check file system disk space usage
Action View
# 2 Learning outcome 2, 3 Competency

Using Python3, create a script to demonstrate:

  • Variables
  • Data structures
  • Pattern matching
  • Loops
  • Conditionals
Action View
# 3 Learning outcome 2, 3, 5 Competency

Gather user requirements for a pipeline and select appropriate tools and scripting language for the pipeline and justify selection

Action View
# 4 Learning outcome 3, 4 Competency

Install new tools or update already installed tools and demonstrate a working version

Action View
# 5 Learning outcome 2,3,4,5,6 Competency

Create a pipeline/software with error handling

Action View
# 6 Learning outcome 3,4,5,6 Competency

Test the pipeline/software with relevant data

Action View
# 7 Learning outcome 3,4,6 Competency

Adjust computing parameters and software updates and assess the impact

Action View
# 8 Learning outcome 4, 6 Competency

Engage in the software management cycle

Action View
# 9 Learning outcome 3,4,6 Competency

Validate a pipeline

Action View
# 10 Learning outcome 5, 6 Competency

Produce appropriate documentation for a pipeline, provide training and gather user feedback

Action View

Assessments

Complete 2 Case-Based Discussions

Complete 2 DOPS or OCEs

Direct Observation of Practical Skills Titles

  • Perform MD5sum on a file.
  • Write a script to convert a nucleotide sequence to amino acids.
  • Install software or a package using command line.
  • Set up a conda environment or a Docker/Singularity container using command line.

Observed Communication Event Titles

  • Capture user requirements.
  • Discuss the pros and cons of commercial vs open-source software with a stakeholder.
  • Present new software/pipeline to a non-specialist audience.

Learning outcomes

# Learning outcome
1

Process data in a Linux environment.

2

Use a programming language to create software.

3

Apply best practice in software development and code testing.

4

Modify, install, update and test software.

5

Identify and ensure the needs of stakeholders and patients are met in the development of software, maintaining patient safety and confidentiality.

6

Appraise the application of the software development and management cycle in a healthcare environment.

Academic content (MSc in Clinical Science)

Important information

The academic parts of this module will be detailed and communicated to you by your university. Please contact them if you have questions regarding this module and its assessments. The module titles in your MSc may not be exactly identical to the work-based modules shown in the e-portfolio. Your modules will be aligned, however, to ensure that your academic and work-based learning are complimentary.

Learning outcomes

On successful completion of this module the trainee will be able to:

  1. Apply common commands and processes in the Linux operating environment.
  2. Express a clear understanding of a current high-level programming language.
  3. Demonstrate a critical awareness of software development process and modern software development models.
  4. Critically appraise the functional and non-functional requirements for a system.
  5. Discuss the role of testing programmes and good documentation.
  6. Demonstrate the ability to establish and use an effective software development environment and implement version control.
  7. Apply integrative knowledge of client/server architectures.
  8. Describe the basics of a relational database system and the SQL language.
  9. Demonstrate extended understanding of data formats including XML and JSON for data representation and transfer.
  10. Discuss the role of application programming interfaces (APIs) in communication of data.

Indicative content

  • Linux:
    • Grep, awk, sed, cat, find, xargs, ls and mkdir
    • Permissions and sudo
    • Process and storage management
    • Redirecting and piping
    • File types
    • MD5sum
  • Programming:
    • Python 3
    • Types, functions and loops
    • Data structures
    • Input/output and redirecting (stdin/stdout)
    • Pattern matching
    • Errors and exceptions (stderr)
    • Environment – conda and docker
  • Best practice in software development:
    • Local best practice
    • Style guides
    • Annotation, commenting and documentation
    • Log files
    • Git/gitHub version control, documentation, issues and requests
    • Open source/commercial
  • Software modification, install, update and test
    • Package sources
    • Source code and compilers
    • Software maintainability
    • Unit testing
    • Impact on resources (CPU and storage)
    • Use of test data
    • User experience
    • Data storage and compression, and backup
    • Containerisation
    • Client/server architecture
  • Validation:
    • Validation data
    • Sensitivity and specificity
    • Data integrity
    • Documention
  • Stakeholder analysis and requirement gathering:
    • Stakeholder engagement
    • User requirements for a pipeline
    • Impact on patients and confidentiality
  • Patient safety and confidentiality
  • Software development and management cycle:
    • Software deployment (development, testing, production)
    • Change log
    • SOPs

Clinical experiences

Important information

Clinical experiential learning is the range of activities trainees may undertake in order to gain the experience and evidence to demonstrate their achievement of module competencies and assessments. The list is not definitive or mandatory, but training officers should ensure, as best training practice, that trainees gain as many of these clinical experiences as possible. They should be included in training plans, and once undertaken they should support the completion of module assessments and competencies within the e-portfolio.

Activities

  1. Observe current practice in the area to be developed where required.
  2. Follow an issue or request in GitHub to appreciate other work being carried out in the community and where you can learn from this and apply it to your own work.

Module assigned to

Specialties

Specialty code Specialty title View
Specialty code SBI1-1-22 Specialty title Clinical Bioinformatics Genomics [2022] Action View
Specialty code SBI1-1-23 Specialty title Clinical Bioinformatics Genomics [2023] Action View
Specialty code SBI1-1-24 Specialty title Clinical Bioinformatics Genomics [2024] Action View
Specialty code SBI1-1-25 Specialty title Clinical Bioinformatics Genomics [2025] Action View