Decentralization Net

  • [ April 14, 2024 ] Overview of Balanced Regional Development and Fiscal Decentralization Decentralization
  • [ April 12, 2024 ] Elevating The Debate On Decentralization And Multilevel Governance In Africa Africa
  • [ April 12, 2024 ] LPSA contributes to Zambia’s Fourth National Decentralization Conference Africa
  • [ April 8, 2024 ] Intergovernmental Grants Impact on Tax Policy, Fiscal Stability and Political Economy Decentralization
  • [ April 3, 2024 ] LPSA Expert Working Group on Asia – Open Meeting – 9 April 2024 LPSA Updates

Functional assignments

Representatives of government, academics, industry, NGO and residents team up to find solutions for local waste management challenges (Photo Credit: BASF, 2015)

The first dimension of an effective local governance system (or an effectively organized local public sector ) is that functions and powers are assigned to different government levels (or administrative tiers) in a way that maximizes the overall performance of the public sector. In other words, in an effective local governance system, local governments are assigned meaningful responsibility and authority to manage local affairs.

An important concept that is used to assess the appropriateness of a country’s territorial-administrative structure and its functional assignments is the subsidiarity principle . The subsidiarity principle states that public goods and services should be provided by the lowest level of government that can do so efficiently. Adherence to the subsidiarity principle is a widely accepted benchmark of good local governance systems in the literature on decentralization and localization. This principle balances the arguments and concerns made both by proponents of centralized service delivery as well as by the champions of decentralizations: the subsidiarity principle suggests we should not automatically assign functions to either the highest or the lowest government level or administrative tier, but rather, urges us to identify the government level closest to the people that is able to perform the function efficiently.

At the surface, it is not excessively difficult to compare the subnational government structure and the assignment of functions and expenditure responsibilities in different countries. The legal framework in most countries defines an organogram that reveals the number of subnational government levels or tiers in each country, as well as the functional responsibilities of jurisdictions at each level or tier.

In practice, however, meaningful and effective functional assignments require local governments or other local bodies not only to have the legal “responsibility” to perform a function, but also to have the necessary authority and financial resources (from own source revenues as well as intergovernmental grants) to perform their functions well. Measuring and assessing the actual or “ de facto ” assignment of functional responsibilities is thus much more complicated that simply engaging in a review of the relevant legislation.

Consistent with the “second generation theory” of intergovernmental relations, it is also important to consider the vertical assignment of functions and expenditure responsibilities in a political economy context that recognizes that central and local political decision-makers do not necessarily try to maximize the well-being of their constituents. Instead, the assignment of functions and responsibilities is often shaped by the personal and institutional motivations of political and institutional decision-makers. As a result, in some countries there is a gap between the legal ( de jure ) responsibilities of local governments or local officials, and their de facto  role in local service delivery.

Find posts related to Functional Assignments .

Copyright 2015-2024. Local Public Sector Alliance.

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

Functional Programming 101

A deep dive on the benefits of functional programming and why it’s actually easier than you think.

Cassidy Williams

Artwork: Kasia Bojanowska

Photo of Cassidy Williams

Cassidy Williams // CTO, Contenda

The ReadME Project amplifies the voices of the open source community: the maintainers, developers, and teams whose contributions move the world forward every day.

Functional programming is a hot topic. The 2021 Developer Survey from Stack Overflow ranked functional languages among the most loved. Popular JavaScript libraries like React and Angular let you use functional concepts in your components, traditionally object-oriented languages have added functional support... and yet there’s been some confusion about what functional programming actually means.

Traditionally, folks often think that it’s a concept that you should learn when you are deeper into your development career, but that’s not necessarily the case!

“I think functional programming is more accessible for someone trying to teach themselves to program. I’ve seen folks from all sorts of backgrounds come onto the Elixir Wizards podcast and tell me that Elixir clicked for them when they were starting out because of the pipe operator. The pipe ( `|>` ) makes it easier for beginners to recognize what their code is doing, with a clear pipeline of what they started with, how it changed, and the final outcome. Generally, I think functional programming reads more like spoken language.” - Sundi Myint, co-host of the Elixir Wizards podcast

If you’re ready for it, let’s take a deep dive into what functional programming is, how it differs from other paradigms, why you would use it, and how to get started!

What is functional programming?

There are three “types” of programming that you may or may not know: procedural programming, object-oriented programming, and functional programming. I’ll focus on the latter two.

In object-oriented programming (OOP), you create “objects” (hence the name), which are structures that have data and methods. In functional programming, everything is a function. Functional programming tries to keep data and behavior separate, and OOP brings those concepts together.

“Functional programming [is] a paradigm that forces us to make the complex parts of our system explicit, and that’s an important guideline when writing software.” - José Valim, creator of Elixir

What are the rules of functional programming?

There are two main things you need to know to understand the concept:

Data is immutable: If you want to change data, such as an array, you return a new array with the changes, not the original.

Functions are stateless: Functions act as if for the first time, every single time! In other words, the function always gives the same return value for the same arguments.

There are three best practices that you should generally follow:

Your functions should accept at least one argument.

Your functions should return data, or another function.

Don’t use loops!

Now, some of these things can happen in object-oriented programming as well. Some languages allow you to mix-and-match concepts, too, like JavaScript for example.

An example to show the difference between OOP and functional programming

Let’s say that you have a school and we have the records of each of the students in some database. Let’s say they all have a name and a grade point average (GPA). In object-oriented programming, you might write something like this:

If you wanted to initialize a student, you might do something like this:

Now let’s say you want to change the GPAs of a bunch of students. With OOP, you could have an array of the students:

And to change each of their GPAs, you could do a loop to increase the grades of each.

…or something. Then you could loop through again to print out the results, or just work with the objects as you wish.

Now, if you wanted to solve the same type of problem with functional programming, you’d do it a little differently. This is how you might initialize the students:

We’re storing the students as plain arrays instead of objects. Functional programming prefers plain data structures like arrays and lists and hashes (etc.) to not “complicate” the data and behavior. So next, instead of writing just one changeGPA() function that you loop over, you’d have a changeGPAs() function and a changeGPA() function.

The function changeGPAs() would take in the students’ array. It would then call changeGPA() for each value in the students array, and return the result as a new array. The job of changeGPA() is to return a copy of the student passed in with the GPA updated. The point of this is because functional programming prefers tiny, modular functions that do one part of a larger job! The job of changeGPAs() is to handle the set of students, and the job of changeGPA() is to handle each individual student. Also note that the original array doesn’t change because we treat data as immutable in functional programming. We create new datasets instead of modifying existing ones.

Why would I use functional programming?

When you think about well-structured software, you might think about software that’s easy to write, easy to debug, and where a lot of it is reusable. That’s functional programming in a nutshell! Granted, one might argue that it’s not as easy to write, but let’s touch on the other two points while you wrap your mind around the functional paradigm.

“Once you get used to it, it’s self-evident. It’s clear. I look at my function. What can it work with? Its arguments. Anything else? No. Are there any global variables? No. Other module data? No. It’s just that.” - Robert Virding, co-inventor of Erlang

Debugging functional programming is arguably significantly easier than other programming paradigms because of its modularity and lack of side effects.

If something went wrong in your software using OOP, you would have to think about what other parts of your program might have done previously that could affect your program’s state. With functional programming, you can pinpoint the exact function where something went wrong, because certain things can only happen at one point.

For example, let’s say we had a counter that skipped the number 5.

In this program, if you want to test it, you’d have to keep track of the global state of count, and run the `increment()` function 5 times to make sure it worked, every single time. `increment()` returns something different every time it is called, so you need to use a debugger to step through your program.

Meanwhile, if you wrote this function in a functional way:

We don’t need to run `pureIncrement()` multiple times to check this. You can easily unit test the function because it will always return the same thing with the same input, and there is no variable being modified (remember, immutability)!

Now, that isn’t to say that you’ll never use a debugger (I won’t get into that in this article), but by having everything written into smaller chunks and free from side effects, your errors will be much faster to pinpoint, and won’t be dependent on the environment they’re being run in.

Reusability

As you saw in our student example, we broke down the functions into smaller functions. In every functional program you write, you break functions down to be as small as they can be. It’s kind of like breaking up a complex math problem into parenthesis.

Let’s say that you want to solve a math problem, like:

(6 * 9) / ((4 + 2) + (4 * 3)) If you were doing this by hand, you could break up the problem by adding/multiplying all of the numbers, combining what is in the parenthesis, and then dividing the results.

If you were doing this in a functional language, like Lisp, for example, it looks incredibly similar:

This is why functional programming is often referred to as “pure programming!" Functions run as if they are evaluating mathematical functions, with no unintended side effects.

“Purity” cartoon by xkcd with fields arranged by purity, with "more pure" on the right, and a stick figure under each. From the left is the sociologist, psychologist, biologist, chemist, physicist, finally, substantially farther over, the mathematician

“ Purity ” by xkcd is licensed under CC BY-NC 2.5

When you have such small, pure functions, you can often reuse them much more easily than your traditional object-oriented program. This is a controversial take (if you look up “functional programming reuse” you will find many discussions and podcasts on the subject), so hang in with me here: When you want to reuse a class in OOP and add a feature, typically you add conditionals and parameters, and your functions get larger. Your abstract classes and interfaces get pretty robust. You have to pay careful attention to the larger application architecture because of side effects and other factors that will affect your program (like we talked about before). In functional programming, it’s the opposite in that your functions get smaller and much more specific to what you want. One function does one thing, and whenever you want to do that one thing, you use that one function.

There are exceptions in every system, of course, but this is generally what you see in various codebases out in the world!

Okay, okay, I’m sold. How do I get started?

If you’re already comfortable with JavaScript or Python, you can get started right away trying out functional programming concepts like we’ve talked about here. If you’d like to get more into the nitty-gritty of “pure” languages that are designed for functional programming, you can try out the Lisp family (including Common Lisp, Scheme, and Clojure), the ML family (including OCaml and F#), Erlang, Elixir, Elm, or Haskell.

Functional programming can be a little mind-bending as you get used to it. But if you give it a chance and try it out, your development and production environments will be robust, your software will be easier to debug, and you’ll enjoy the guarantees you get from the solid foundations of functional programming!

Hi, I'm Cassidy! I'm based in Chicago, and I love coding, jokes, and mechanical keyboards. ⌨️  My favorite thing to do is help others to be the best that they can be, and I pursue that through teaching, building demos and starter projects on my GitHub, speaking, my newsletter, my live streams, mentoring, advising startups, and even just by making memes. 🤪 You can check out most of these things  here . Building for the web has been a blast for me since I was a teenager, and I have no plans of stopping anytime soon!

More stories

Photo of Ruth Ikegah

Make your first open source contribution in four easy steps

Photo of Aaron Francis

Finish your projects

Photo of Feross Aboukhadijeh

Do your part to secure the open source supply chain

About the readme project.

Coding is usually seen as a solitary activity, but it’s actually the world’s largest community effort led by open source maintainers, contributors, and teams. These unsung heroes put in long hours to build software, fix issues, field questions, and manage communities.

The ReadME Project is part of GitHub’s ongoing effort to amplify the voices of the developer community. It’s an evolving space to engage with the community and explore the stories, challenges, technology, and culture that surround the world of open source.

Nominate a developer

Nominate inspiring developers and projects you think we should feature in The ReadME Project.

Support the community

Recognize developers working behind the scenes and help open source projects get the resources they need.

Sign Up For Newsletter

Every month we’ll share new articles from The ReadME Project, episodes of The ReadME Podcast, and other great developer content from around the community.

niyander-logo

Niyander Tech

Learn with fun

  • All Coursera Quiz Answers

Programming Assignment: Building a functional program Solution

Programming Assignment Building a functional program Solution

In this article i am gone to share Programming with JavaScript by meta Week 3 | Programming Assignment: Building a functional program Solution with you..

Enroll Link: Programming with JavaScript

Lab Instructions: Building a Functional Program

In this exercise you’ll get hands-on practice with functional programming concepts.

Tips: Before you Begin

To view your code and instructions side-by-side, select the following in your vscode toolbar:.

  • View -> Editor Layout -> Two Columns
  • To view this file in Preview mode, right click on this README.md file and  Open Preview
  • Select your code file in the code tree, which will open it up in a new VSCode tab.
  • Drag your assessment code files over to the second column.
  • Great work! You can now see instructions and code at the same time.
  • Questions about using VSCode? Please see our support resources here: Visual Studio Code on Coursera

To run your JavaScript code

  • Select your JavaScript file
  • Select the “Run Code” button in the upper right hand toolbar of VSCode. Ex: It looks like a triangular “Play” button.

Task 1: Build a function-based console log message generator

In this exercise, your task is to code a function named  consoleStyler , which accepts four parameters:

Inside the body of the consoleStyler() function declaration, you need to do the following:

Create a new variable named message, and assign the following to it on the very first line inside the consoleStyler() function body.:

Create a style variable and assign the following to it on the next line:

Next, update the style variable (using the += operator) with the following code:

Then, update the style variable (again, using the += operator) with the following code:

Finally, console log the message and style variables inside the  consoleStyler  function declaration.

Hint: Be sure to use backticks (“) when updating your variable styles and not single (”) or double (“”) quotes.

Task 2: Build another console log message generator.

Your task is to code another function, and name it  celebrateStyler() . The function accepts a single parameter, reason, which should be of string data type.

Inside the function declaration’s body, code the following:

A new variable, named fontStyle, assigning it this code:

On the next line, an if statement, verifying that  reason == "birthday" .

Inside the body of the if block, code the following:

On the next line, add an else if, and inside the parentheses, check that

Inside the else if block, add this code:

Add an else block, with the following code inside of it:

Task 3: Run both the consoleStyler and the celebrateStyler functions

Invoke the consoleStyler() function, with the following arguments:

'Congrats!'

Next, invoke the celebrateStyler() function, with the following argument:

Task 4: Insert a congratulatory and custom message

Code another function, named  styleAndCelebrate() . The function declaration’s body should consist of two function invocations:

Next, invoke the new function, using the following arguments:

  • 'You made it!'
  • 'champions'

Final Step: Let’s submit your code!

Nice work! To complete this assessment:

  • Save your file through File -> Save
  • Select “Submit Assignment” in your Lab toolbar.

Your code will be autograded and return feedback shortly on the “Grades” tab. You can also see your score in your Programming Assignment “My Submission” tab.

Great job! Please continue to the next lesson.

  • Copy & paste this code on functionalprogramming.js File..
  • And save your file and then submit.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Save my name, email, and website in this browser for the next time I comment.

  • GDPR Privacy Policy
  • Privacy Policy
  • Terms and Conditions

Greetings, Hey i am Niyander, and I hail from India, we strive to impart knowledge and offer assistance to those in need.

what is a functional assignment

Customer Feedback

We would like your feedback to improve our website..

Your name * Your email *

Will you recommend this website to others? * How would you rate your overall experience with us? * Have you found the information you were looking for? If not, leave us a comment below on what you would like featured. Please leave this field empty. Please leave this field empty.

what is a functional assignment

Functional Assignment: Some Thoughts on the Evolving Subject

Vincy Davis

19 October 2015

Early in September I attended a workshop on Functional Assignment (FA) led by subject matter experts – Rainer Rohdewohld and Gabrielle Ferrazzi. Organised by LOGIN, the workshop aimed at orienting practitioners of decentralisation in governance to the evolving discourse on FA. Bureaucrats, politicians, researchers and social activists from 10 Asian countries participated in the workshop making the sharing sessions quite rich and engaging. The workshop helped clarify concepts of FA and shed light on areas that are yet to be fully explored, as FA is a relatively new concept.

Simply put, “Functional Assignment” is the process of identifying and allocating responsibilities (Functions), personnel (Functionaries) and resources (Funds) to different tiers of government by applying principles of good management and decentralisation. Substantively, this means:

1.      Undertaking a de jure and de facto assessment of institutional arrangements at all levels

2.      Defining functional domains

3.      Charting a blueprint or undertaking structural corrections (if malfunctioning systems are in place) to ensure that the 3 F’s are rationally assigned

Managing “change management”

At the heart of FA lies the idea that even if a higher tier of government assigns tasks to subnational governments, these subnational governments should have some say on the matter. That is, their agency/capacity to initiate programmes on their own and implement assigned tasks to further the cause of local development should be acknowledged in concrete terms. Thus in the context of FA, ‘devolution’ [1]  is viewed as the ideal mode for decentralizing. This idea appeared to make many of the participants (especially bureaucrats) uncomfortable, which led to some debate on the level of autonomy and capacity that should be awarded to subnational governments. This was a natural concern since most participants hailed from developing countries, each with their host of social, economic and political issues which made them hesitant about giving subnational governments (what appeared to be) a relatively free reign.

Two concerns appeared to be at the heart of the discomfort displayed during the workshop: First, the belief that subnational governments lack the capacity to perform complex tasks, resulting in an aversion to devolution. (To this Rainer responded by saying, “You can’t learn to swim without getting into the water!”), and second, the belief that FA would lead to a reduction in one’s   responsibilities, access to resources and therefore power.

On this note, Rainer and Gabrielle introduced the idea of “change management” – a common concept in management parlance – and its importance when undertaking an exercise as massive as FA. They spoke of the need to have a steering committee that would chalk out a plan to ensure that the people working in the system are able to adapt to the changes in the smoothest possible manner. Since there is a general tendency to resist change, and hesitations about devolution are already clear, it might be worth assessing the way FA is pitched to a new audience/stakeholders that are likely to be a part of the FA process. One gets a clue about this when one looks at the existing literature on FA.

FA as a process is commonly described as an objective exercise in decentralisation while acknowledging the fact that devolving responsibilities “wholesale” may not be ideal since contexts vary. Other popular modes of administrative decentralisation such as ‘deconcentration’ [2]  or ‘delegation’ [3]  might be preferable in certain contexts. However, there is a visible bias in the literature towards ‘devolution’ as the ideal mode of decentralisation when carrying out the actual FA process. Perhaps if FA is pitched as a more neutral exercise that aims to rectify governance systems, the concept might become palatable to a wider audience.

What would be the implications of undertaking FA with devolution as the guiding principle in a context where deconcentration is more appropriate? In my next blog post, I will explore this point further and discuss some more thoughts around this subject.    

(This is part 1 of 2 entries on Functional Assignment by the same author.)

[1]  Some of the features of “devolved” governments are as follows: 1.The local government units are perceived as autonomous entities over which central authorities have little control; 2, they have clear and legally recognized geographical boundaries where they perform public functions; 3. Have corporate status and authority to raise their own resources. (UNDP, 1997)

[2]  Deconcentrated governments display the following features: 1. The central administration has its regional/local offices in sub-state levels; 2. Involves limited transfer of authority. Jurisdictional authority of the central government reigns. (UNDP, 1997)

[3]  Governments that adopt “delegation” as their preferred mode of decentralization display the following features: 1. They have semi-autonomous units such as urban or regional development corporations to whom aspects of governance are delegated through legislation or contract; 2. These units are not wholly controlled by the government but are legally accountable to the central administration. (UNDP, 1997)

Add new comment Cancel reply

Your email address will not be published. Required fields are marked *

Recommended for you

what is a functional assignment

We tried to come up with a clear…

The bureaucracy is considered to be the steel…

what is a functional assignment

Policy Buzz

Keep up-to-date with all that is happening in…

what is a functional assignment

Where Do the Victims of Gender Based Violence…

Despite several efforts, a survey in 2018 ranked…

what is a functional assignment

PAISA for Panchayats Study for the State of…

The PAISA for Panchayats research project extends Accountability…

  • Experimental Design
  • Structural Annotation
  • Feature Curation

Functional Assignment

Introduction.

Functional assignment refers to the annotation of biological function to genetic elements identified during structural annotation and feature curation. In most cases it is not feasible to establish function experimentally for the majority of genome features identified. As such, most annotations are putative and rely upon either:

  • Similarity searches in sequence space to identify orthologs in other species which do have functional annotation. This might be accomplished using a simple BLAST search or more sophisticated phylogenetically-aware alogrithms.
  • Model-based approaches (typically hidden-markov-model) rely on the identification of specific patterns to group proteins into functional classes.

Typically both approaches will be used during functional assignment to provide multiple sources of evidence. However it is important to remember that any prediction is an untested hypothesis. All of these approaches rely upon similarity bourne of evolution. However common ancestry does not always imply common function. Gene duplication events given sufficient time can result in paralogs.

Controlled vocabularies organised into hierachies, often referred to as ontologies, provide a useful framework into which functional and other information can be compared across species. Additional biochemical pathway databases can also used to characerise the metabolic potential of an organism. These can be particularly valuable when performing comparative genomics, or assessing whether the assembly and/or structural annotation may be incomplete.

Some important points to remember:

  • Remember that different types/families of genes evolve in different ways so there is no one-stop solution to set any sort of cutoff for whether inferences can/cannot be made.
  • Always consider the differences between general (membrane protein) and specific (Na/K pump of the golgi) functions - think where to draw the line when making a hypothesis. How conservative do you want to be?
  • Consider treating the agreement/disagreement between different approaches as a proxy for globally assessing the quality of functional annotations, even if subsequent manual curation provides the real quality control.

Learn about pros & cons of the major sources of functional data: GO, KEGG, InterPro, PANTHERdb, SwissProt; e.g. hierarchies, levels of manual curation, availability. Be aware of the limitations of similarity-based approaches - functional inferences based on sequence homology - because common ancestry ? common function. Consider treating the agreement/disagreement between different approaches as a proxy for globally assessing the quality of functional annotations, even if subsequent manual curation provides the real quality control.

Training materials

Gene ontology.

  • GO tutorial for functional annotation
  • GO tutorial group exercise and discussion
  • GO functional annotation exercise
  • Gene ontology training syllabus - JCVI

Functional annotation

  • Automated functional annotation syllabus - JCVI
  • Automated functional annotation course - JCVI
  • Manual functional annotation course - JCVI
  • Manual functional annotation syllabus - JCVI
  • Pathway annotation course - JCVI
  • Pathway annotation syllabus - JCVI

Comparative genomics analysis

  • Comparative genomics analysis syllabus -JCVI
  • Comparative genomics exercises

Introduction to Functional Programming: JavaScript Paradigms

Functional Programming is a paradigm of building computer programs using expressions and functions without mutating state and data.

In this article, we will talk about doing functional programming using JavaScript. We will also explore various JavaScript methods and features that make it possible. In the end, we will explore different concepts associated with functional programming and see why they are so powerful.

Introduction to Functional Programming: JavaScript Paradigms

By Avi Aryan

Avi is a full-stack developer skilled with Python, JavaScript, and Go and is also a multiple-time Google Summer of Code participant.

PREVIOUSLY AT

Functional programming is a paradigm of building computer programs using expressions and functions without mutating state and data.

By respecting these restrictions, functional programming aims to write code that is clearer to understand and more bug resistant. This is achieved by avoiding using flow-control statements ( for , while , break , continue , goto ) which make the code harder to follow. Also, functional programming requires us to write pure, deterministic functions which are less likely to be buggy.

In this article, we will talk about doing functional programming using JavaScript. We will also explore various JavaScript methods and features that make it possible. In the end, we will explore different concepts associated with functional programming and see why they are so powerful.

Before getting into functional programming, though, one needs to understand the difference between pure and impure functions.

Pure vs. Impure Functions

Pure functions take some input and give a fixed output. Also, they cause no side effects in the outside world.

Here, add is a pure function. This is because, for a fixed value of a and b , the output will always be the same.

getId is not a pure function. The reason being that it uses the global variable SECRET for computing the output. If SECRET were to change, the getId function will return a different value for the same input. Thus, it is not a pure function.

This is also an impure function, and that too for a couple of reasons—(1) it uses a non-local variable for computing its output, and (2) it creates a side effect in the outside world by modifying a variable in that world.

getId is impure illustration

This can be troublesome if we had to debug this code.

What’s the current value of id_count ? Which other functions are modifying id_count ? Are there other functions relying on id_count ?

Because of these reasons, we only use pure functions in functional programming.

Another benefit of pure functions is that they can be parallelized and memoized. Have a look at the previous two functions. It’s impossible to parallelize or memoize them. This helps in creating performant code.

The Tenets of Functional Programming

So far, we have learned that functional programming is dependent on a few rules. They are as follows.

  • Don’t mutate data
  • Use pure functions: fixed output for fixed inputs, and no side effects
  • Use expressions and declarations

When we satisfy these conditions, we can say our code is functional.

Functional Programming in JavaScript

JavaScript already has some functions that enable functional programming. Example: String.prototype.slice , Array.protoype.filter , Array.prototype.join .

On the other hand, Array.prototype.forEach , Array.prototype.push are impure functions.

One can argue that Array.prototype.forEach is not an impure function by design but think about it—it’s not possible to do anything with it except mutating non-local data or doing side effects. Thus, it’s okay to put it in the category of impure functions.

Also, JavaScript has a const declaration, which is perfect for functional programming since we won’t be mutating any data.

Pure Functions in JavaScript

Let’s look at some of the pure functions (methods) given by JavaScript.

As the name suggests, this filters the array.

The condition here is a function that gets each item of the array, and it should decide whether to keep the item or not and return the truthy boolean value for that.

Notice that filterEven is a pure function. If it had been impure, then it would have made the entire filter call impure.

map maps each item of array to a function and creates a new array based on the return values of the function calls.

mapper is a function that takes an item of an array as input and returns the output.

reduce reduces the array to a single value.

reducer is a function that takes the accumulated value and the next item in the array and returns the new value. It is called like this for all values in the array, one after another.

reduce call illustration

concat adds new items to an existing array to create a new array. It’s different from push() in the sense that push() mutates data, which makes it impure.

You can also do the same using the spread operator.

Object.assign

Object.assign copies values from the provided object to a new object. Since functional programming is predicated on immutable data, we use it to make new objects based on existing objects.

With the advent of ES6 , this can also be done using the spread operator.

Creating Your Own Pure Function

We can create our pure function as well. Let’s do one for duplicating a string n number of times.

This function duplicates a string n times and returns a new string.

Higher-order Functions

Higher-order functions are functions that accept a function as an argument and return a function. Often, they are used to add to the functionality of a function.

In the above example, we create a withLog higher-order function that takes a function and returns a function that logs a message before the wrapped function runs.

withLog HOF can be used with other functions as well and it works without any conflicts or writing extra code. This is the beauty of a HOF.

One can also call it without defining a combining function.

Currying means breaking down a function that takes multiple arguments into one or multiple levels of higher-order functions.

Let’s take the add function.

When we are to curry it, we rewrite it distributing arguments into multiple levels as follows.

The benefit of currying is memoization. We can now memoize certain arguments in a function call so that they can be reused later without duplication and re-computation.

This is certainly better than using both arguments everywhere.

We can also reformat our curried function to look succinct. This is because each level of the currying function call is a single line return statement. Therefore, we can use arrow functions in ES6 to refactor it as follows.

Composition

In mathematics, composition is defined as passing the output of one function into input of another so as to create a combined output. The same is possible in functional programming since we are using pure functions.

To show an example, let’s create some functions.

The first function is range, which takes a starting number a and an ending number b and creates an array consisting of numbers from a to b .

Then we have a function multiply that takes an array and multiplies all the numbers in it.

We will use these functions together to calculate factorial.

The above function for calculating factorial is similar to f(x) = g(h(x)) , thus demonstrating the composition property.

Concluding Words

We went through pure and impure functions, functional programming, the new JavaScript features that help with it, and a few key concepts in functional programming.

We hope that this piece piques your interest in functional programming and possibly motivates you to try it in your code. We are positive that it will be a learning experience and a milestone in your software development journey.

Functional programming is a well - researched and robust paradigm of writing computer programs. With the introduction of ES6 , JavaScript allows for a much better functional programming experience than ever before.

Further Reading on the Toptal Blog:

  • Future-proof Your Android Code, Part 2: Functional Reactive Programming in Action
  • The Foundations of Functional Reactive Programming in Android

Understanding the basics

What is functional programming.

Functional programming is a paradigm of building computer programs using declarations and expressions.

Is JavaScript a functional programming language or object-oriented?

Thanks to new developments in ES6, we can say that JavaScript is both a functional as well as object-oriented programming language because of the various first-class features it provides.

What is the advantage of functional programming?

Functional programming ensures simpler flow control in our code and avoids any surprises in the form of variable and state changes. All this helps us avoid bugs and understand our code easily.

What are other functional programming languages?

Lisp, Erlang, Haskell, Closure, and Python are other functional programming languages. In these, Haskell is a purely functional programming language in the sense that it allows no other paradigm of programming.

What is ES6?

ES6 or ECMAScript 6 is a new version of JavaScript that includes many new features like arrow functions, constants, and spread operators, among many others.

  • FunctionalProgramming

New Delhi, Delhi, India

Member since March 28, 2018

About the author

World-class articles, delivered weekly.

Subscription implies consent to our privacy policy

Toptal Developers

  • Algorithm Developers
  • Angular Developers
  • AWS Developers
  • Azure Developers
  • Big Data Architects
  • Blockchain Developers
  • Business Intelligence Developers
  • C Developers
  • Computer Vision Developers
  • Django Developers
  • Docker Developers
  • Elixir Developers
  • Go Engineers
  • GraphQL Developers
  • Jenkins Developers
  • Kotlin Developers
  • Kubernetes Experts
  • Machine Learning Engineers
  • Magento Developers
  • .NET Developers
  • R Developers
  • React Native Developers
  • Ruby on Rails Developers
  • Salesforce Developers
  • SQL Developers
  • Tableau Developers
  • Unreal Engine Developers
  • Xamarin Developers
  • View More Freelance Developers

Join the Toptal ® community.

  • Research article
  • Open access
  • Published: 10 December 2019

Assessing the performance of different approaches for functional and taxonomic annotation of metagenomes

  • Javier Tamames   ORCID: orcid.org/0000-0003-4547-8932 1 ,
  • Marta Cobo-Simón 1 &
  • Fernando Puente-Sánchez 1  

BMC Genomics volume  20 , Article number:  960 ( 2019 ) Cite this article

13k Accesses

36 Citations

45 Altmetric

Metrics details

Metagenomes can be analysed using different approaches and tools. One of the most important distinctions is the way to perform taxonomic and functional assignment, choosing between the use of assembly algorithms or the direct analysis of raw sequence reads instead by homology searching, k-mer analysys, or detection of marker genes. Many instances of each approach can be found in the literature, but to the best of our knowledge no evaluation of their different performances has been carried on, and we question if their results are comparable.

We have analysed several real and mock metagenomes using different methodologies and tools, and compared the resulting taxonomic and functional profiles. Our results show that database completeness (the representation of diverse organisms and taxa in it) is the main factor determining the performance of the methods relying on direct read assignment either by homology, k-mer composition or similarity to marker genes, while methods relying on assembly and assignment of predicted genes are most influenced by metagenomic size, that in turn determines the completeness of the assembly (the percentage of read that were assembled).

Conclusions

Although differences exist, taxonomic profiles are rather similar between raw read assignment and assembly assignment methods, while they are more divergent for methods based on k-mers and marker genes. Regarding functional annotation, analysis of raw reads retrieves more functions, but it also makes a substantial number of over-predictions. Assembly methods are more advantageous as the size of the metagenome grows bigger.

Since its beginnings in the early 2000s, metagenomics has emerged as a very powerful way to assess the functional and taxonomic composition of microbiomes. The improvement in high-throughput sequencing technologies, computational power and bioinformatic methods have made metagenomics affordable and attainable, increasingly becoming a routine methodology for many laboratories.

The usual goal of metagenomics is to provide functional and taxonomic profiles of the microbiome, that is, to know the abundances of taxa and functions. A metagenomic experiment consists of a first wet-lab part, where DNA from samples is extracted and sequenced, and a second in silico part, where bioinformatics analysis of the sequences is carried out. There is not a golden standard for performing metagenomic experiments, especially regarding the bioinformatics used for the analysis.

Usually, one of the first steps in the analysis involves the assembly of the raw metagenomic reads after quality filtering. The objective is to obtain contigs, where genes can be predicted and then annotated, usually by means of comparisons against reference databases. It is sensible to think that the taxonomic and functional identification is more precise having the full gene than just the fragment of it contained in a short read. Also, taxonomic classification benefits of having contiguous genes, because since they come from the same genome, non-annotated genes can be ascribed to the taxon of their neighbouring genes. Therefore, obtaining an assembly can facilitate considerably the subsequent annotation steps.

However, de novo metagenomic assembly is a complex task: the performance of the assembly is dependent on the number of sequences and the diversity of the microbiome (richness and evenness of the present species) [ 1 ], and a fraction of reads will always remain unassembled. Microbiomes of high diversity or high richness (those presenting many different species) such as those of soils, are harder to assemble, likely to produce more misassembles and chimerism [ 2 ], and will produce smaller contigs.

From a computational point of view, the assembly step often requires large resources, especially in terms of memory usage, although modern assemblers have somewhat reduced this constraint. Different assemblers are available, which use diverse algorithms and heuristics and hence may produce different results, whose assessment is difficult.

Probably because of these problems, some authors prefer to skip the assembly step and proceed to the direct functional/taxonomic annotation of the raw reads, especially when the aim is just to obtain a functional or taxonomic profile of the metagenome [ 3 , 4 , 5 , 6 , 7 , 8 ]. This approach provides counts for the abundance of taxa and functions based on the similarity of the raw reads to corresponding genes in the database. There are two main drawbacks of working with raw reads in this way: first, since it is based on homology searches for millions of sequences against huge reference databases, it usually needs large CPU usage, especially taking into account that for taxonomic assignment the reference database must be as complete as possible to minimize errors [ 9 ]; and second, the sequences could be too short to produce accurate assignments [ 10 , 11 ]. Also, it is generally harder to annotate functions than taxa, because short reads are often not discriminative enough to distinguish between functions, since they may map to promiscuous domains that can be shared between very different protein.

Another alternative to assembly is to count the k-mer frequency of the raw reads, and compare it to a model trained with sequences from known genomes, as implemented in Kraken2 [ 12 ] or Centrifuge [ 13 ]. As k-mer usage is linked to the phylogeny and not to function, these methods can be used only for taxonomic assignment.

Finally, also for taxonomic profiling other methods rely on the identification of phylogenetic marker genes in raw reads to estimate the abundance of each taxa in the metagenome, for instance Metaphlan2 [ 14 ] or TIPP [ 15 ]. These methods must be considered profilers, since they do not attempt to classify the full set of reads, but instead recognize the identity of particular marker genes to infer community composition from these.

These different methods (assemblies, raw reads, k-mer composition and marker gene profiling) are likely to produce different results. While benchmarking and comparison of metagenomic software has been extensively done, for instance in the GAGE (Critical evaluation of genome and metagenome assemblies) [ 16 ] and CAMI (Critical Assessment of Metagenome Interpretation) [ 17 ] exercises, the influence of these different annotation strategies has been less studied. We have scarce information on how diverse the results of these approaches are, and whether they are so different as to compromise the subsequent biological interpretation of the data. This is a relevant point, since these methods are being used indistinctly for metagenomic analyses and their results could not be comparable if the differences are large.

The objective of the present analysis is to estimate the differences between all these approaches. To this end, we will functionally and taxonomically classify several real and mock metagenomes using direct assignment of the raw reads, or assembling the metagenomes first, annotating the genes, and then annotating the reads using their mapping to the genes [ 18 , 19 ]. For taxonomic analysis, we also use Kraken2 as a k-mer classifier, and Metaphlan2 as a marker gene classifier.

The mock communities of known composition can help us to evaluate the goodness of the results. Even if mock communities are rather less complex than real ones, they are valuable tools for having a framework to compare the annotations done by different methods to the real expectations.

We aim to illustrate how different approaches can lead to diverse results, and therefore different interpretations of the underlying biological reality. We hope that this can help in the informed choice of the most adequate method according to the particular characteristics of the dataset.

Mock communities

To better estimate the performances of each method of assignments, we created mock communities simulating microbiomes of marine, thermal, and gut environments. We selected 35 complete genomes from species known to be associated to these environments, according to a compiled list of preferences between taxa and habitats [ 20 ], and created mock metagenomes by selecting a variable number (from 0.2 M to 5 M) of reads from them, in diverse proportions. The composition of these mock metagenomes can be found in Additional file  8 : Table S1.

Taxonomic annotations

We used different methods to taxonomically assign the reads from these metagenomes (see Fig.  1 and methods for full details): 1) We ran a homology search of the reads against the GenBank NR database, followed by assignment using the last common ancestor (LCA) of the hits. We termed this approach “assignment to raw reads” (RR). 2) We also used the SqueezeMeta software [ 21 ] to proceed with a standard metagenomic analysis pipeline: assembly of the genomes using Megahit [ 18 ], prediction of genes using Prodigal [ 22 ], taxonomic assignment of these genes by homology search against the GenBank nr database (followed by LCA assignment as above), taxonomic assignment of the contig to the consensus taxon of its constituent genes, mapping of the reads to the contigs using Bowtie2, and taxonomic annotation of the reads according to the taxon of the gene (assembly by genes, Ag) or contig (assembly by contigs, Ac) they mapped to. We also used a combined approach in which the read inherited the annotation of the contig in first place, or the one for the gene if the contig was not annotated (assembly combined, Am). 3) In addition, we used Kraken2, a k-mer profiler that assigns reads to the most likely taxon by compositional similarity. 4) Finally, we used Metaphlan2, which attempts to find reads corresponding to clade-specific genes to assign the corresponding read to the target clade.

figure 1

Schematic description of the procedure followed for the analysis. Boxed in blue, taxonomic annotations. In red, functional (KEGG) annotations

We first will focus in the 1 M dataset for discussing the results. The results for the phylum rank can be seen in Fig.  2 , and for the family rank in Additional file  1 : Figure S1.

figure 2

Taxonomic assignments for the mock metagenomes. Left panels show the results for all the reads, right panels show the results removing unclassified reads and scaling to 100%. Real: Real composition of the mock community. Ac, Assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken2. MP: Metaphlan2. Numbers above the bars in the right panels correspond to the Bray-Curtis distance to the composition of the original microbiome, and the number of taxa (phyla) recovered by each method, with the real number of taxa present in the mock metagenome indicated in the “Real” column

The methods classifying more reads are RR for the marine mock metagenome, Am for the thermal, and Kraken2 for the gut. As expected, the assembly approaches work better when the assemblies recruit more reads (the percentage of mapped reads in the assemblies is 75, 84 and 81% for marine, thermal and gut, respectively). Kraken2 seems to be especially suited to classify gut metagenomes, but misses many reads for metagenomes from other environments. RR also classifies more reads for gut metagenomes, indicating that the representation of related genomes and species in the database, which is higher for gut genomes, is an important factor. We measured the Bray-Curtis dissimilarities to the real taxonomic composition of the mock metagenome to evaluate the closeness of the observed results to the expected ones. The results are rather close to the original composition for the assembly approaches and RR, with best results for the gut metagenome. Kraken2 performs well for the marine and gut metagenomes, even if it misses entire phyla in some instances (for example, Nitrospinae in the thermal metagenome). Metaphlan2 provides the more distant profile in all cases. The Bray-Curtis dissimilarities between the taxonomic profiles generated by each method can be seen in Additional file  2 : Figure S2. The RR and assembly approaches, which relied on homology annotations, led to similar results. On the other hand, the results from Kraken2 and Metaphlan2 were markedly different from the others.

We also inspected the number of reported phyla by each method. Excess of predicted phyla will be produced by incorrect assignments. Metaphlan2 is the only method that reports the exact number of phyla in all the mock microbiomes, while the assembly approaches provide a few more, and RR and Kraken2 report a higher number of superfluous taxa. Especially RR produces a very inflated number (more than ten times higher for the thermal mock microbiome). The version of Kraken2 that we used provided a maximum of 42 phyla for training, and therefore this is the maximum number of phyla that it will predict. In all cases the number is close to this top, indicating that Kraken2 predicts almost all taxa it has in its training set, irrespectively of the environment.

We next measured the error by inspecting the accuracy of the taxonomic annotations of the reads using the different methods (Fig.  3 ). All methods perform well (less that 1% error) for the gut metagenome at the phylum rank, and also at the family rank. Nevertheless, substantial differences appear for the other two environments, where errors increase notably. At phylum rank, more errors are done for the thermal metagenome, while at family rank, the marine metagenome is the most challenging. This is unrelated to the number of taxa in both metagenomes, as the thermal set has both more phyla and families. The most precise method is Metaphlan2, that makes no errors, although the low number of reads classified with this method produces a skewed composition as seen in Fig. 2 . The assembly methods have less that 1% error in all cases, and annotation by contigs is more accurate than by genes, evidencing the advantage of having contextual information. RR taxonomic annotation exceeds the error rate of the assemblies, reaching 4% for the thermal metagenome at the family level. Kraken2 is the method making more errors, more than 4% for thermal and marine metagenomes at the phylum level, and reaching more than 10% for the marine metagenome at the family level. This is also reflected in the high amount of “Other taxa” classifications for Kraken2 in the Fig. 2 .

figure 3

Percentage of discordant assignments between the different methods, for mock metagenomes. Only reads that were classified by both compared methods are considered (i.e. unclassified reads by either method are excluded). A: Assignment by Megahit assembly mapping to: (g: genes; c: contigs; m: combination of contigs and genes). RR: Assignment by raw reads; KR: Kraken2; MP: Metaphlan2

The results were almost identical when replacing the megahit assembler by metaSPAdes [ 23 ], as it can be seen by the very low Bray-Curtis dissimilarities between Megahit and metaSPAdes results (Additional file  3 : Figure S3).

We were aware that our results could be dependent on metagenomic size, especially those related to the assemblies for which the number of sequences is a critical factor. Therefore, we did additional tests to evaluate the performance of each method regarding metagenomic size. Our hypothesis was that methods that classify reads independently (RR, Kraken2 and Metaphlan2) would not be influenced, while the annotation by assembly could be seriously impacted. We created several mock metagenomes of different sizes for marine, thermal and gut environments, extracting reads from genomes strongly associated with these environments [ 20 ]. We created mock metagenomes for 200.000 (0.2 M), 500.000 (0.5 M), 1.000.000 (1 M), 2.000.000 (2 M) and 5.000.000 (5 M) paired sequences, all with the same composition of species (Additional file 8 : Table S1). We annotated these datasets using the different methods, and calculated the Bray-Curtis distance between the resulting distribution of taxa and the real one. The results can be seen in Fig.  4 for the phylum rank, and in Additional file  4 : Figure S4 for the family rank.

figure 4

Bray-Curtis distance to the real composition of the mock metagenomes. For several sample sizes, at phylum rank. Ac, Assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken2. MP: Metaphlan2

As we expected, RR, Kraken2 and Metaphlan2 are not affected by the size of the metagenome. Metaphlan2 is the method diverging more from the actual composition, except for the thermal mock community at family rank. Of these three methods directly assigning reads, RR is clearly the one providing the closest estimation to the real composition. Again, these methods perform much better for the gut mock metagenome than for the rest.

The assembly methods are, as expected, highly dependent of the amount of reads that can be assembled. For very small samples, where less than 50% of the reads are mapped to the assembly, it provides much more divergent classifications than other methods. When the percentage of assembled reads is in the range of 80–85%, they obtain similar results than RR. When the percentage of assembled reads is higher than that, taxonomic annotation by assembly outperforms the other methods. This indicates that the coverage of the metagenome (the number of times that each base was sequenced), which is directly related to the percentage of assembled reads, can be seen as the factor determining if it is more advantageous using RR or assembly methods for analysing metagenomes.

Functional annotations

We also analysed the functional assignment for these mock metagenomes. The reference was the annotation of genes to KEGG functions. We classified the reads using the Assembly (F_Ag) and Raw Read (F_RR) annotation approaches. Kraken2 and Metaphlan2 were skipped since they do not provide functional annotation, and Ac and Am because there is not a contig annotation for functions (each gene has a different function). The results can be seen in the Fig.  5 .

figure 5

Functional classification of the mock metagenomes. Percentage of reads classified to KEGG functions (bars) and number of KEGG functions (lines) provided by the different functional assignment methods, for the different sizes of the mock metagenomes. The data labelled as “mock” correspond to the annotations of the reads based on the original annotations of the genomes. The data corresponding to “metagenome” correspond to the total number of functions in all the genomes used to build the mock communities

The maximum percentage of reads that can be functionally classified is around 60% for all metagenomes, the ones mapping to functionally annotated genes in the reference genomes. The rest correspond to reads from genes with no known function or with no associated KEGG. RR classification classifies around 50% of the reads in all cases. The variation with metagenomic size (the number of picked reads) is almost inexistent because the reads are extracted from the same background distribution of functions and they are annotated independently. F_Ag functional assignment, in turn, varies with size since it depends on metagenomic coverage, as stated above. We can see that for the biggest size (5 M), the percentage of assignments is larger for F_Ag than for F_RR. In this case there are no evident differences regarding the diverse environments.

Concerning the number of functions detected, it can be seen how the F_RR approach is over-predicting the number of functions, exceeding these actually present in the complete metagenome. This is an indication that this method is producing false positives, and the number of predicted functions increases linearly and shows no saturation, in contrast to the real number of functions. On the other hand, F_Ag produces a very low number of functions when the metagenomes are small, but it quickly increases to numbers close to the real ones for bigger sizes.

We also quantified the number of wrong annotations by comparing the functional annotation of reads by each method with regard to the real scenario. The results can be seen in Fig.  6 , and show that F_Ag has consistently a lower number of errors than F_RR, for all data sets. The differences between methods (discordant annotations) can also be seen in Additional file  9 : Table S2.

figure 6

Incorrect functional assignments for the mock metagenomes. Shown as a percentage of the total number of reads. A read is incorrectly annotated when the provided function is different than the one from the original gene in the genome

F_RR assignments are always more error-prone. As for the taxonomic analysis, the thermal metagenome is the most difficult to annotate, and the gut one the easiest. The percentage of errors does not vary with sizes, and it is above 4% in the thermal metagenome. The F_Ag annotations are more precise, not exceeding the threshold of 3% errors. The influence of sizes can be noticed also here, with usually fewer errors in the bigger metagenomic sizes, but this trend is not so marked as for taxonomic annotations. For instance, the gut example shows a very stable error rate around 1.8%, irrespectively of the metagenomic size.

Real metagenomes

Using methods described above, we analysed three different metagenomes coming from different environments, coincident with the mock communities studied previously: a thermal microbial mat metagenome from a hot spring in Huinay (Chile) [ 24 ], a marine sample from the Malaspina expedition [ 25 ], and a gut metagenome from the Human Microbiome Project [ 26 ] (thermal, marine and gut from now on).

The results of the taxonomic annotation can be seen in Fig.  7 , for the assignments at phylum rank. The results at family taxonomic rank are shown in Additional file  5 : Figure S5, and show similar trends. The Bray-Curtis dissimilarities between the profiles generated by each method can be seen in Additional file  6 : Figure S6.

figure 7

Comparison of taxonomic assignments by different methods, for real metagenomes. Ac, Assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken. MP: Metaphlan2. Left: All reads considered. Right: Discounting unclassified reads. These panels also show the number of obtained phyla

Assembly methods achieve the highest number of classified reads in the three metagenomes. According to the results for mock communities, we anticipated that the amount of classifications by these methods would be related to the percentage of reads that were assembled. This will be ultimately related to the total size of the metagenome and the diversity of the community. The ratio of mapped reads is 72, 93, and 94% for the marine, thermal and gut samples, respectively. These numbers set the maximum percentage of reads that can be assigned by the assembly approaches. The most complete classification is achieved for the gut sample, allowing the taxonomic assignment of 73% of the reads. A substantial reduction is observed for the thermal sample (65% of reads assigned), even if the percentage of mapped reads is almost the same. This must be attributed to representation biases in the reference databases. This sample belongs to a much less studied habitat, and therefore the corresponding taxa are expected to be less represented in the databases, complicating the assignment. Finally, the marine sample is the most difficult to annotate by assembly (51% of the reads), because of the lower percentage of assembled reads.

The percentage of assignment is higher when using the combination of mapping reads to genes and contigs (Ac). Using the contig annotation can overcome unannotated genes, while gene annotations are not affected by the lack of consensus needed for contig assignment.

Taxonomic annotation of the raw reads (RR) resulted in 10–20% less classified reads, with the gut metagenome being the best annotated (65%), and marine and thermal having similar percentages (42–45% annotated reads). Kraken2 classification provides less annotations, around 25–30% less than the assembly. Again, the gut metagenome is the one having more assignments, benefiting of the increased completeness of the databases in gut-associated taxa. Finally, Metaphlan2 is able to classify very few reads, which is expected because it only annotates marker (clade-specific) genes.

The relative taxonomic composition at the phylum level obtained by each approach, discounting the effect of the unclassified reads, can be also seen in Fig. 7 . Ideally, we should expect the same composition for all methods for the same metagenome, but instead we see that they diverge substantially. One of the most affected phylum is Cyanobacteria, present in thermal and marine samples. Assembly approaches report lower quantities for this taxon than RR and especially Kraken2, which greatly increases its proportion in the two datasets to unrealistic values, particularly in the case of the marine sample. The gene marker approach of MetaPhlan2 predicts less Cyanobacteria than the rest in the marine sample, but much more than the others in the thermal sample. The rest of the taxa are affected in different ways. Rare taxa such as Armatimonadetes in the thermal sample are obtained in greater abundance by the assembly approaches, and are ignored by Kraken2 and Methaphlan2, probably because of the absence of complete genomes belonging to these phyla in their training data sets. This is an example of how the gaps in the representation of taxa in the set of available complete genomes can hamper the taxonomic annotations of methods based on them [ 9 , 27 ].

While the inferred composition of the gut metagenome is roughly the same for all approaches, the marine and thermal metagenomes vary slightly between raw reads and assembly, and greatly for Kraken2 and Metaphlan2. These divergences can be seen in the Bray-Curtis dissimilarity values in Additional file 6 : Figure S6. The thermal metagenome shows big variations that affect for instance the determination of the most abundant taxon in the sample (Chloroflexi by assembly, Proteobacteria by raw reads, and Cyanobacteria by Kraken2 and Metaphlan2). Therefore, the choice of the method can influence greatly the ecological inferences obtained from the analysis.

We compared the discrepancies between the assignments done by different methods, by counting the cases in which the annotations were different at the phylum level (not-annotated reads were not considered). The results can be seen in Fig.  8 . Consistently with the previous results, the thermal dataset is the one having more differences. The differences between the assembly methods are very low, and are also low between RR and assembly methods (less than 3% of the reads in the thermal dataset, less than 1% in the others). On the contrary, the differences were much bigger between Kraken2 and the rest: more than 8% for the thermal dataset, more than 4% for the marine, and almost 4% for the gut. This indicates again that the Kraken2 assignment is more dissimilar than the rest.

figure 8

Percentage of incorrect taxonomic assigned reads, for real metagenomes. Left panel, phylum taxonomic rank. Right panel, family taxonomic rank. Ac, Megahit assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken. MP: Metaphlan2

The statistical significances of the differences between different methods are shown in Additional file  7 : Figure S7. The three assembly-based methods and RR were significantly (Kruskal-Wallis p  < 0.05) more similar to the rest, while Kraken2 and Metaphlan2 were significantly (Kruskal-Wallis p  < 0.05) more dissimilar to other methods.

We studied the distribution of functions by the assignment of reads to KEGG functions with the Ag (F_Ag) and RR (F_RR) approaches. F_Ag is again able to classify more reads than the F_RR in all metagenomes, even if the difference is small (Fig.  9 top). In contrast, F_RR assignment detects a much higher number of KEGGs in all cases (Fig. 9 bottom). These correspond to low-abundance functions. The percentage of functions represented by less than 10 reads in F_RR is 20, 15 and 23% for marine, thermal and gut metagenomes, respectively. These could correspond to low-coverage parts of the metagenome that could not be assembled. Also, these could correspond to false positives in F_RR annotation, as described when working with mock communities.

figure 9

Functional classification of real metagenomes. Top, percentage of reads classified in KEGG functions, by raw reads and assembly approaches, in the three metagenomes. Bottom, number of KEGG functions

Figure  10 (left) shows the distribution of abundances of each KEGG function as rank-abundance curves. Distributions for F_Ag and F_RR are almost indistinguishable, except for the higher number of KEGG functions predicted by F_RR, and the slightly higher abundance for all functions using the assembly, because of the higher number of reads assigned by this method. A comparison of the abundance of KEGG functions can be seen in Fig.  10 (right), where the good fit indicates that there are not big differences between the functional assignments by both methods. The number of discordant assignments (reads classified to different functions by both methods) is low: 1.49, 2.21 and 0.88% for marine, thermal and gut metagenomes, respectively.

figure 10

Comparison of functional assignments for all real metagenomes. Left: Rank/abundance curves for the distribution of KEGG functions the three metagenomes, classifying either by raw reads (F_RR) or by assembly and mapping to genes (F_Ag). Right: Scatter plots showing the abundance percentages for each KEGG function for both approaches

Different approaches can be used for the taxonomic and functional annotation of metagenomes. Working with raw reads, taxonomic annotation can be done using homology, k-mer composition or gene marker searches. But we also can assemble the reads and use the assembly as a framework for the annotation, since this will provide longer fragments of genes (or complete ones) and contextual information. There is not a standard way of proceed, and examples of each approach can be found in the literature. However, it is unclear how the diverse approaches can influence the accuracy of the results. We wanted to explore the characteristics of each method to, if possible, provide hints helping the choice of the most appropriate approach.

Regarding taxonomic annotation, our study shows that the differences between different methods are significant (Additional file 7 : Figure S7). Especially Kraken2 and Metaphlan2 produce taxonomic assignations that are quite different to the ones obtained using assembly-based or raw read assignment approaches.

Assembly and especially the assignment of raw reads are demanding methods in time and computational resources. In contrast, Kraken2 and Metaphlan2 are very fast methods that can be very useful to obtain a quick view of the diversity of the metagenomes. Nevertheless, the analysis of mock metagenomes shows that these methods are less accurate, especially for non-human-associated environments. They are rather sensitive to the composition of the databases, and their performance decreases when rare species are present in the metagenome. This drawback also affects to the assignment of raw reads by homology.

While for the methods based on annotation of reads database completeness is the main factor determining their performance, for the assembly approaches the critical issue is metagenomic coverage, that in turn influences the completeness of the assembly. When the assemblies recruit 85% or more of the original reads, assembly approaches are more advantageous in terms to percentage of reads classified, smaller number of errors and importantly, similarity to the real scenario. When the coverage is reduced because of both a high microbial diversity and a small number of reads, the assignment of raw reads could be preferred. Assembly approaches seem to be less influenced than others by database completeness because having longer sequences (full genes instead of short reads) is advantageous when only distant homologies can be found, and, for taxonomic annotation, having the contextual information of the contigs helps to infer annotations for all genes on it. Nevertheless, they are also affected to some extent by database composition.

Therefore, when dealing with small metagenomes from well-studied ecosystems, such as these human-associated, the usage of raw read assignment can be preferred for taxonomic assignments, at least for the ranks considered in this study. In other instances, assembly approaches should be favoured. This is especially true if we want to obtain bins, where co-assembly of metagenomes is mandatory. We did not consider the effect of co-assembly in the taxonomic annotation, but since it helps to obtain more and longer contigs and therefore to map more reads to the assembly, it is expected to improve the annotations even more. It would be also possible to follow a combined approach in which assembly is done and used as a reference, and then the remaining unmapped reads are classified independently.

For functions, the KEGG assignments for the real metagenomes show a high degree of correlation between assembly and raw read annotation. Short reads are often not discriminative enough to distinguish between functions, and consequently assembly annotation provides a higher percentage of functional classification. On the other hand, functions represented by a few reads will be probably missed by the assembly approaches. Because of this, raw read assignment provides a higher number of functions than the assembly. Given these advantages and disadvantages of each method, if one is interested in looking for specific functions, a combination of both approaches would be advisable.

When choosing the most appropriate method for analysing metagenomes, several factors must be taken into account: the underlying diversity and richness, often related to the type of habitat, will influence coverage because rich and diverse samples are more difficult to assemble. Also, metagenomes from less studied habitats will likely find less similarities in the databases. Therefore, when dealing with small metagenomes from well-studied ecosystems, the usage of raw read assignment can be advantageous. Otherwise assembly approaches are more accurate.

We have used three different metagenomes: 1) a microbial mat metagenome from a hot spring in Huinay (Chile), corresponding to a sample taken at 48 °C, and sequenced using Illumina HiSeq (82.7 M reads, 9.8 G bases, accession SRP104009) [ 24 ] 2) A marine metagenome corresponding to Malaspina sampling expedition, taken at 3 m depth in the Pacific Ocean [ 25 ], also sequenced with Illumina HiSeq (168.9 M reads, 16 G bases). 3) A gut metagenome from the human microbiome project [ 26 ], sequenced with the Illumina Genome Analyzer II (68.1 M reads, 6.4 G bases, accession SRS052697).

For assessing the performance of the approaches, we used mock metagenomes of different sizes (0.2 M, 0.5 M, 1 M, 2 M, 5 M reads) built with genomes of species significantly associated to each of the three environments considered: marine, thermal and gut. We calculated the associations between species and environments as in [ 20 ]. We selected sets of 35 environment- associated species with complete genomes available (Additional file 8 : Table S1), and calculated their abundance ratios following a hypergeometric distribution, used to simulate the ratios of species in samples [ 28 ]. Knowing these ratios and the total number of reads, we estimated how many reads of each species must be taken and created the mock metagenome by simulating the sequencing of the required number of paired-end reads from these genomes.

For analysing the mock metagenomes, we followed the same approaches above, but we removed the corresponding genomes in the NR database used for homology searching. We also created custom databases for Kraken2 and Metaphlan2 in which we also removed these genomes.

A schematic description of the procedure of analysis can be seen in Fig. 1 . The taxonomic classification of the raw reads (RR) was obtained by direct homology searches against GenBank NR database (release 223, December 2017) using DIAMOND (v0.9.13.114) with a minimum e-value threshold of 1e-03 [ 19 ]. The taxonomic annotations were done using a last-common ancestor (LCA) algorithm. LCA first select the hits having at least 80% of the bitscore of the best hit and overcoming the minimum identity threshold set for a particular taxonomic rank (85, 60, 55, 50, 46, 42 and 40% for species, genus, family, order, class, phylum and superkingdom ranks, respectively) [ 29 ]. This means that in order to classify a sequence at the phylum taxonomic rank, for instance, hits for that sequence must be at least 42% identical. Then it looks for the common taxon for all hits at the desired taxonomic rank (although some flexibility is allowed, for instance admitting one outlier if the number of hits is high). In case that a common taxon is not found, the read is unassigned. For the functional annotation of the raw reads (F_RR), KEGG [ 30 ] was used as the reference functional classification, and the reads were annotated using the best hit to this KEGG database.

The set of reads was also assembled and annotated. We used the SqueezeMeta pipeline [ 21 ] for this task, that automatizes all steps of metagenomic analysis. The assembly was done using Megahit (v1.1.2) [ 18 ], followed by gene prediction using Prodigal (v2.6.2) [ 22 ]. The predicted genes were searched for homologies against GenBank NR and KEGG databases using DIAMOND, and processed with the LCA algorithm, as above. This produces taxonomic and functional assignments for the genes in the contigs.

A taxonomic classification for the whole contig can be obtained as the consensus of the annotations of its genes. The criteria for declaring a consensus taxon are: 50% of all genes and 80% of the annotated genes in the contig must belong to the taxon (some genes may not have annotation). Otherwise, the contig is left unassigned. This approach has the advantage of allowing the annotation of many additional genes (those in the contig that were not classified directly, including orphans), but it has the drawback of dropping the original annotations for the genes if a consensus is not found. Notice that under these criteria, short contigs comprising just one gene get the annotation of their only gene.

Once genes and contigs are annotated, we classified the reads mapping them against the contigs using Bowtie2 (v2.2.6) [ 31 ], and inheriting the annotation of the corresponding gene or contig. Also, we investigated a combined approach merging these two strategies, in which reads first inherit the annotation of the contig, and then the one of the gene if the contig did not provide an annotation. These approaches will be referred as annotation by assembly/genes (Ag), assembly/contigs (Ac), and assembly/combined (Am). For functional classification, only mapping against genes was used (F_Ag), since there is not contig annotation for functions (each gene has a different function).

We also used two other approaches widely used in metagenomic analysis for taxonomic assignment. First, assignment by means of k-mer composition using Kraken2 (KR) [ 12 ]. Second, the clade-specific gene marker searching of Metaphlan2 (MP) [ 14 ]. These methods are not suitable for functional assignment.

For analysing the mock metagenomes, we followed these same approaches, but we removed the corresponding genomes in the NR database used for homology searching. We also created custom databases for Kraken2 and Metaphlan2 in which we removed these genomes as well.

For each metagenome, we compiled tables with the taxonomic or functional assignment of each of the reads by all methods. These tables were used to calculate the functional and taxonomic profiles that were used in the comparison.

Such [ 20 , 28 ] comparison between taxonomic profiles for the different methods (and to real values in case of mock communities) was done by calculating the Bray-Curtis dissimilarity measure between them. Comparison between functional profiles was done measuring the percentage of reads with divergent annotations between them.

The datasets used and/or analyzed during the current study available from the corresponding author on reasonable request.

Availability of data and materials

All datasets used and/or analyzed during the current study available from the corresponding author on reasonable request. Metagenomic datasets can be found in the SRA archive with accession SRP104009 (Thermal dataset), SRS052697 (Gut dataset).

Luo C, Tsementzi D, Kyrpides NC, Konstantinidis KT. Individual genome assembly from complex community short-read metagenomic datasets. ISME J. 2012;6:898–901. https://doi.org/10.1038/ismej.2011.147 .

Article   CAS   PubMed   Google Scholar  

Mikheenko A, Saveliev V, Gurevich A. MetaQUAST: evaluation of metagenome assemblies. Bioinformatics. 2016;32:1088–90.

Article   CAS   Google Scholar  

Varin T, Lovejoy C, Jungblut AD, Vincent WF, Corbeil J. Metagenomic analysis of stress genes in microbial mat communities from Antarctica and the high Arctic. Appl Environ Microbiol. 2012;78:549–59.

Article   Google Scholar  

Varin T, Lovejoy C, Jungblut AD, Vincent WF, Corbeil J. Metagenomic profiling of Arctic microbial mat communities as nutrient scavenging and recycling systems. Limnol Oceanogr. 2010;55:1901–11. https://doi.org/10.4319/lo.2010.55.5.1901 .

Greenblum S, Turnbaugh PJ, Borenstein E. Metagenomic systems biology of the human gut microbiome reveals topological shifts associated with obesity and inflammatory bowel disease. Proc Natl Acad Sci. 2012;109:594–9. https://doi.org/10.1073/pnas.1116053109/-/DCSupplemental.www.pnas.org/cgi/doi/10.1073/pnas.1116053109 .

Mangrola AV, Dudhagara P, Koringa P, Joshi CG, Patel RK. Shotgun metagenomic sequencing based microbial diversity assessment of Lasundra hot spring, India. Genomics Data. 2015;4:73–5.

Mackelprang R, Waldrop MP, DeAngelis KM, David MM, Chavarria KL, Blazewicz SJ, et al. Metagenomic analysis of a permafrost microbial community reveals a rapid response to thaw. Nature. 2011;480:368–71. https://doi.org/10.1038/nature10576 .

Balcom IN, Driscoll H, Vincent J, Leduc M. Metagenomic analysis of an ecological wastewater treatment plant’s microbial communities and their potential to metabolize pharmaceuticals. F1000Research. 2016;5:1881.

Pignatelli M, Aparicio G, Blanquer I, Hernández V, Moya A, Tamames J. Metagenomics reveals our incomplete knowledge of global diversity. Bioinformatics. 2008;24:2124–5.

Wommack KE, Bhavsar J, Ravel J. Metagenomics: read length matters. Appl Environ Microbiol. 2008;74:1453–63.

Carr R, Borenstein E. Comparative analysis of functional metagenomic annotation and the mappability of short reads. PLoS One. 2014;9:e105776.

Wood DE, Salzberg SL. Kraken: Ultrafast metagenomic sequence classification using exact alignments. Genome Biol. 2014;15:R46.

Kim D, Song L, Breitwieser FP, Salzberg SL. Centrifuge: Rapid and sensitive classification of metagenomic sequences. Genome Res. 2016;26:1721–9.

Truong DT, Franzosa EA, Tickle TL, Scholz M, Weingart G, Pasolli E, et al. MetaPhlAn2 for enhanced metagenomic taxonomic profiling. Nat Methods. 2015;12:902–3.

Nguyen NP, Mirarab S, Liu B, Pop M, Warnow T. TIPP: Taxonomic identification and phylogenetic profiling. Bioinformatics. 2014;30:3548–55.

Salzberg SL, Phillippy AM, Zimin A, Puiu D, Magoc T, Koren S, et al. GAGE: a critical evaluation of genome assemblies and assembly algorithms. Genome Res. 2012;22:557–67.

Sczyrba A, Hofmann P, Belmann P, Koslicki D, Janssen S, Dröge J, et al. Critical Assessment of Metagenome Interpretation - A benchmark of metagenomics software. Nat Methods. 2017;14:1063–71.

Li D, Liu CM, Luo R, Sadakane K, Lam TW. MEGAHIT: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph. Bioinformatics. 2015;31:1674–6.

Buchfink B, Xie C, Huson DH. Fast and sensitive protein alignment using DIAMOND. Nat Methods. 2015;12:59–60. https://doi.org/10.1038/nmeth.3176 .

Tamames J, Sánchez PD, Nikel PI, Pedrós-Alió C. Quantifying the relative importance of phylogeny and environmental preferences as drivers of gene content in prokaryotic microorganisms. Front Microbiol. 2016;7:433.

Tamames J, Puente-Sánchez F. SqueezeMeta, a highly portable, fully automatic metagenomic analysis pipeline. Front Microbiol. 2019; In press.

Hyatt D, Chen GL, LoCascio PF, Land ML, Larimer FW, Hauser LJ. Prodigal: prokaryotic gene recognition and translation initiation site identification. BMC Bioinformatics. 2010;11:119.

Nurk S, Meleshko D, Korobeynikov A, Pevzner PA. MetaSPAdes: A new versatile metagenomic assembler. Genome Res. 2017;27:824–34.

Alcamán-Arias ME, Pedrós-Alió C, Tamames J, Fernández C, Pérez-Pantoja D, Vásquez M, et al. Diurnal Changes in Active Carbon and Nitrogen Pathways Along the Temperature Gradient in Porcelana Hot Spring Microbial Mat. Front Microbiol. 2018;9:2353.

Duarte CM. Seafaring in the 21st century: the Malaspina 2010 circumnavigation expedition. Limnology Oceanography Bull. 2015;24:11–4.

Turnbaugh PJ, Ley RE, Hamady M, Fraser-liggett C, Knight R, Gordon JI. The human microbiome project: exploring the microbial part of ourselves in a changing world. Nature. 2007;449:804–10.

Tamames J, Durante-Rodríguez G. Taxonomy becoming a driving force in genome sequencing projects. Syst Appl Microbiol. 2013;36.

Shimadzu H, Darnell R. Attenuation of species abundance distributions by sampling. R Soc Open Sci. 2015;2:140219.

Luo C, Rodriguez-R LM, Konstantinidis KT. MyTaxa: An advanced taxonomic classifier for genomic and metagenomic sequences. Nucleic Acids Res. 2014;42:e73.

Ogata H, Goto S, Sato K, Fujibuchi W, Bono H, Kanehisa M. KEGG: Kyoto encyclopedia of genes and genomes. Nucleic Acids Res. 1999;27:29–34. https://doi.org/10.1093/nar/27.1.29 .

Article   CAS   PubMed   PubMed Central   Google Scholar  

Langmead B, Salzberg SL. Fast gapped-read alignment with bowtie 2. Nat Methods. 2012;9:357–9.

Wattam AR, Abraham D, Dalay O, Disz TL, Driscoll T, Gabbard JL, et al. PATRIC, the bacterial bioinformatics database and analysis resource. Nucleic Acids Res. 2014;42:D581–91.

Download references

Acknowledgements

Not applicable.

This research was funded by projects CTM2013–48292-C3–2-R and CTM2016–80095-C2–1-R, Spanish Ministry of Economy and Competitiveness. This funding body had no further role in the design of the study, analysis, interpretation of data and writing. Manuscript.

Author information

Authors and affiliations.

Systems Biology Department, Centro Nacional de Biotecnología, CSIC, C/Darwin 3, 28049, Madrid, Spain

Javier Tamames, Marta Cobo-Simón & Fernando Puente-Sánchez

You can also search for this author in PubMed   Google Scholar

Contributions

JT designed the work, interpreted the data, drafted the manuscript and approved the submitted version. FPS interpreted the data, drafted the manuscript and approved the submitted version. MCS acquire data and approved the submitted version.

Corresponding author

Correspondence to Javier Tamames .

Ethics declarations

Ethics approval and consent to participate, consent for publication, competing interests.

The authors declare that they have no competing interests.

Additional information

Publisher’s note.

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplementary information

Additional file 1: figure s1..

Taxonomic assignments for the mock communities, at the family rank. Ac, Megahit assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken. MP: Metaphlan2. Left: All reads considered. Right: Discounting unclassified reads. Numbers above the bars in the right panels correspond to the Bray-Curtis dissimilarity to the composition of the original microbiome.

Additional file 2: Figure S2.

Bray-Curtis dissimilarity between assignment methods for mock metagenomes. The “real” column indicated the distance to the real composition of the mock metagenome.

Additional file 3: Figure S3.

Bray-Curtis dissimilarity between assignment methods by assembly, comparing Megahit and metaSPAdes assemblers. Left: mock communities. Right: real metagenomes.

Additional file 4: Figure S4.

Bray-Curtis dissimilarity to the real composition of the mock community, at family taxonomic rank. For several sample sizes, at phylum rank. Ac, Assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken2. MP: Metaphlan2.

Additional file 5: Figure S5.

Taxonomic assignments for the real communities, at the family rank. Ac, Megahit assembly and mapping reads to contigs. Ag, Same but mapping reads to genes. Am, same but mapping genes first to contigs, then to genes. RR, raw reads assignment. KR: Kraken. MP: Metaphlan2. Left: All reads considered. Right: Discounting unclassified reads.

Additional file 6: Figure S6.

Bray-Curtis dissimilarity between assignment methods for real metagenomes.

Additional file 7: Figure S7.

Significance of differences for taxonomic assignment methods . For each analysis method (Ac, Ag, Am, RR, KR, MP), the left-side boxplot shows the Bray-Curtis dissimilarities between the taxonomic profile (phylum level) obtained with that method and the taxonomic profiles obtained with the rest of the methods. This was done separately for the three real metagenomes and the three mock metagenomes with one million reads. The right side boxplot shows the pairwise Bray-Curtis dissimilarities between the taxonomic profiles (phylum level) obtained with the rest of the methods. Significant differences (Kruskal-Wallis, p  < 0.05) are denoted with a red asterisk.

Additional file 8: Table S1.

Abundances and PATRIC accession numbers [ 32 ] of different species in the mock metagenomes.

Additional file 9: Table S2.

Percentage of divergent assignments for mock communities. “Real” indicates the differences with the real functional composition of the metagenome.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License ( http://creativecommons.org/licenses/by/4.0/ ), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver ( http://creativecommons.org/publicdomain/zero/1.0/ ) applies to the data made available in this article, unless otherwise stated.

Reprints and permissions

About this article

Cite this article.

Tamames, J., Cobo-Simón, M. & Puente-Sánchez, F. Assessing the performance of different approaches for functional and taxonomic annotation of metagenomes. BMC Genomics 20 , 960 (2019). https://doi.org/10.1186/s12864-019-6289-6

Download citation

Received : 16 January 2019

Accepted : 14 November 2019

Published : 10 December 2019

DOI : https://doi.org/10.1186/s12864-019-6289-6

Share this article

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • Metagenomics
  • Functional annotation
  • Taxonomic annotation

BMC Genomics

ISSN: 1471-2164

what is a functional assignment

  • A–Z Index

Data, Analysis & Documentation

Functional classification.

Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.

  • View all journals
  • Explore content
  • About the journal
  • Publish with us
  • Sign up for alerts
  • Published: 04 June 2018

Functional assignment of multiple catabolic pathways for d -apiose

  • Michael S. Carter 1   na1 ,
  • Xinshuai Zhang 1   na1 ,
  • Hua Huang 1   na1 ,
  • Jason T. Bouvier 1 , 2 ,
  • Brian San Francisco 1 ,
  • Matthew W. Vetting 3 ,
  • Nawar Al-Obaidi 3 ,
  • Jeffrey B. Bonanno 3 ,
  • Agnidipta Ghosh 3 ,
  • Rémi G. Zallot   ORCID: orcid.org/0000-0002-7317-1578 1 ,
  • Harvey M. Andersen 1 ,
  • Steven C. Almo 3 &
  • John A. Gerlt 1 , 2 , 4  

Nature Chemical Biology volume  14 ,  pages 696–705 ( 2018 ) Cite this article

2510 Accesses

21 Citations

4 Altmetric

Metrics details

Colocation of the genes encoding ABC, TRAP, and TCT transport systems and catabolic pathways for the transported ligand provides a strategy for discovering novel microbial enzymes and pathways. We screened solute-binding proteins (SBPs) for ABC transport systems and identified three that bind d -apiose, a branched pentose in the cell walls of higher plants. Guided by sequence similarity networks (SSNs) and genome neighborhood networks (GNNs), the identities of the SBPs enabled the discovery of four catabolic pathways for d -apiose with eleven previously unknown reactions. The new enzymes include d -apionate oxidoisomerase, which catalyzes hydroxymethyl group migration, as well as 3-oxo-isoapionate-4-phosphate decarboxylase and 3-oxo-isoapionate-4-phosphate transcarboxylase/hydrolase, which are RuBisCO-like proteins (RLPs). The web tools for generating SSNs and GNNs are publicly accessible ( http://efi.igb.illinois.edu/efi-est/ ), so similar ‘genomic enzymology’ strategies for discovering novel pathways can be used by the community.

This is a preview of subscription content, access via your institution

Access options

Access Nature and 54 other Nature Portfolio journals

Get Nature+, our best-value online-access subscription

24,99 € / 30 days

cancel any time

Subscribe to this journal

Receive 12 print issues and online access

251,40 € per year

only 20,95 € per issue

Buy this article

  • Purchase on Springer Link
  • Instant access to full article PDF

Prices may be subject to local taxes which are calculated during checkout

what is a functional assignment

Similar content being viewed by others

what is a functional assignment

Evolution of combinatorial diversity in trans-acyltransferase polyketide synthase assembly lines across bacteria

what is a functional assignment

Systems identification and characterization of β-glucuronosyltransferase genes involved in arabinogalactan-protein biosynthesis in plant genomes

what is a functional assignment

Structural characterization of a soil viral auxiliary metabolic gene product – a functional chitosanase

Zhao, S. et al. Discovery of new enzymes and metabolic pathways by using structure and genome context. Nature 502 , 698–702 (2013).

Article   CAS   PubMed   PubMed Central   Google Scholar  

Bastard, K. et al. Revealing the hidden functional diversity of an enzyme family. Nat. Chem. Biol. 10 , 42–49 (2014).

Article   CAS   PubMed   Google Scholar  

Sévin, D. C., Fuhrer, T., Zamboni, N. & Sauer, U. Nontargeted in vitro metabolomics for high-throughput identification of novel enzymes in Escherichia coli . Nat. Methods 14 , 187–194 (2017).

Calhoun, S. et al. Prediction of enzymatic pathways by integrative pathway mapping. eLife 7 , e31097 (2018).

Article   PubMed   PubMed Central   Google Scholar  

Zallot, R., Harrison, K. J., Kolaczkowski, B. & de Crécy-Lagard, V. Functional annotations of paralogs: a blessing and a curse. Life 6 , 39 (2016).

Article   PubMed Central   Google Scholar  

Schnoes, A. M., Brown, S. D., Dodevski, I. & Babbitt, P. C. Annotation error in public databases: misannotation of molecular function in enzyme superfamilies. PLoS Comput. Biol. 5 , e1000605 (2009).

Babbitt, P. C. & Gerlt, J. A. Understanding enzyme superfamilies. Chemistry As the fundamental determinant in the evolution of new catalytic activities. J. Biol. Chem. 272 , 30591–30594 (1997).

Gerlt, J. A. & Babbitt, P. C. Divergent evolution of enzymatic function: mechanistically diverse superfamilies and functionally distinct suprafamilies. Annu. Rev. Biochem. 70 , 209–246 (2001).

Gerlt, J. A. & Babbitt, P. C. Mechanistically diverse enzyme superfamilies: the importance of chemistry in the evolution of catalysis. Curr. Opin. Chem. Biol. 2 , 607–612 (1998).

Gerlt, J. A. Genomic enzymology: web tools for leveraging protein family sequence-function space and genome context to discover novel functions. Biochemistry 56 , 4293–4308 (2017).

Atkinson, H. J., Morris, J. H., Ferrin, T. E. & Babbitt, P. C. Using sequence similarity networks for visualization of relationships across diverse protein superfamilies. PLoS One 4 , e4345 (2009).

Gerlt, J. A. et al. Enzyme function initiative-enzyme similarity tool (EFI-EST): a web tool for generating protein sequence similarity networks. Biochim. Biophys. Acta 1854 , 1019–1037 (2015).

Zhao, S. et al. Prediction and characterization of enzymatic activities guided by sequence similarity and genome neighborhood networks. eLife 3 , e03275 (2014).

Pičmanová, M. & Møller, B. L. Apiose: one of nature’s witty games. Glycobiology 26 , 430–442 (2016).

Choi, S. H., Ruszczycky, M. W., Zhang, H. & Liu, H. W. A fluoro analogue of UDP-α- d -glucuronic acid is an inhibitor of UDP-α- d -apiose/UDP-α- d -xylose synthase. Chem. Commun. (Camb.) 47 , 10130–10132 (2011).

Article   CAS   Google Scholar  

Choi, S. H., Mansoorabadi, S. O., Liu, Y. N., Chien, T. C. & Liu, H. W. Analysis of UDP- d -apiose/UDP- d -xylose synthase-catalyzed conversion of UDP- d -apiose phosphonate to UDP- d -xylose phosphonate: implications for a retroaldol-aldol mechanism. J. Am. Chem. Soc. 134 , 13946–13949 (2012).

Eixelsberger, T., Horvat, D., Gutmann, A., Weber, H. & Nidetzky, B. Isotope probing of the UDP-apiose/UDP-xylose synthase reaction: evidence of a mechanism via a coupled oxidation and aldol cleavage. Angew. Chem. Int. Ed. Engl. 56 , 2503–2507 (2017).

Smith, J. A. & Bar-Peled, M. Synthesis of UDP-apiose in Bacteria: The marine phototroph Geminicoccus roseus and the plant pathogen Xanthomonas pisi . PLoS One 12 , e0184953 (2017).

Martens, E. C. et al. Recognition and degradation of plant cell wall polysaccharides by two human gut symbionts. PLoS Biol. 9 , e1001221 (2011).

Ndeh, D. et al. Complex pectin metabolism by gut bacteria reveals novel catalytic functions. Nature 544 , 65–70 (2017).

Wichelecki, D. J. et al. ATP-binding cassette (ABC) transport system solute-binding protein-guided identification of novel d -altritol and galactitol catabolic pathways in Agrobacterium tumefaciens C58. J. Biol. Chem. 290 , 28963–28976 (2015).

Huang, H. et al. A general strategy for the discovery of metabolic pathways: d -threitol, l -threitol, and erythritol utilization in Mycobacterium smegmatis . J. Am. Chem. Soc. 137 , 14570–14573 (2015).

Zhang, X. et al. Assignment of function to a domain of unknown function: DUF1537 is a new kinase family in catabolic pathways for acid sugars. Proc. Natl. Acad. Sci. USA 113 , E4161–E4169 (2016).

Lv, Y. et al. Crystal structure of Mycobacterium tuberculosis ketol-acid reductoisomerase at 1.0Å resolution - a potential target for anti-tuberculosis drug discovery. FEBS J. 283 , 1184–1196 (2016).

Tadrowski, S. et al. Metal ions play an essential catalytic role in the mechanism of ketol-acid reductoisomerase. Chemistry 22 , 7427–7436 (2016).

Patel, K. M. et al. Crystal structures of Staphylococcus aureus ketol-acid reductoisomerase in complex with two transition state analogs that have biocidal activity. Chemistry 23 , 18289–18295 (2017).

Cleland, W. W., Andrews, T. J., Gutteridge, S., Hartman, F. C. & Lorimer, G. H. Mechanism of rubisco: the carbamate as general base. Chem. Rev. 98 , 549–562 (1998).

Ashida, H. et al. A functional link between RuBisCO-like protein of Bacillus and photosynthetic RuBisCO. Science 302 , 286–290 (2003).

Imker, H. J., Fedorov, A. A., Fedorov, E. V., Almo, S. C. & Gerlt, J. A. Mechanistic diversity in the RuBisCO superfamily: the “enolase” in the methionine salvage pathway in Geobacillus kaustophilus . Biochemistry 46 , 4077–4089 (2007).

Imker, H. J., Singh, J., Warlick, B. P., Tabita, F. R. & Gerlt, J. A. Mechanistic diversity in the RuBisCO superfamily: a novel isomerization reaction catalyzed by the RuBisCO-like protein from Rhodospirillum rubrum . Biochemistry 47 , 11171–11173 (2008).

Erb, T. J. et al. A RubisCO-like protein links SAM metabolism with isoprenoid biosynthesis. Nat. Chem. Biol. 8 , 926–932 (2012).

Tabita, F. R., Satagopan, S., Hanson, T. E., Kreel, N. E. & Scott, S. S. Distinct form I, II, III, and IV Rubisco proteins from the three kingdoms of life provide clues about Rubisco evolution and structure/function relationships. J. Exp. Bot. 59 , 1515–1524 (2008).

Tabita, F. R., Hanson, T. E., Satagopan, S., Witte, B. H. & Kreel, N. E. Phylogenetic and evolutionary relationships of RubisCO and the RubisCO-like proteins and the functional lessons provided by diverse molecular forms. Phil. Trans. R. Soc. Lond. B 363 , 2629–2640 (2008).

Erb, T. J. & Zarzycki, J. A short history of RubisCO: the rise and fall (?) of Nature’s predominant CO 2 fixing enzyme. Curr. Opin. Biotechnol. 49 , 100–107 (2018).

Yokota, A. Revisiting RuBisCO. Biosci. Biotechnol. Biochem. 81 , 2039–2049 (2017).

Bathellier, C., Tcherkez, G., Lorimer, G. H. & Farquhar, G. D. Rubisco is not really so bad. Plant Cell Environ. 41 , 705–716 (2018).

Savitsky, P. et al. High-throughput production of human proteins for crystallization: the SGC experience. J. Struct. Biol. 172 , 3–13 (2010).

Aslanidis, C. & de Jong, P. J. Ligation-independent cloning of PCR products (LIC-PCR). Nucleic Acids Res. 18 , 6069–6074 (1990).

Bendtsen, J. D., Nielsen, H., von Heijne, G. & Brunak, S. Improved prediction of signal peptides: SignalP 3.0. J. Mol. Biol. 340 , 783–795 (2004).

Studier, F. W. Protein production by auto-induction in high density shaking cultures. Protein Expr. Purif. 41 , 207–234 (2005).

Vetting, M. W. et al. Experimental strategies for functional annotation and metabolism discovery: targeted screening of solute binding proteins and unbiased panning of metabolomes. Biochemistry 54 , 909–931 (2015).

Gileadi, O. et al. High throughput production of recombinant human proteins for crystallography. Methods Mol. Biol . 426 , 221–246 (2008).

Tropea, J. E., Cherry, S., Nallamsetty, S., Bignon, C. & Waugh, D. S. A generic method for the production of recombinant proteins in Escherichia coli using a dual hexahistidine-maltose-binding protein affinity tag. Methods Mol. Biol. 363 , 1–19 (2007).

Studier, F. W. Stable expression clones and auto-induction for protein production in E. coli . Methods Mol. Biol. 1091 , 17–32 (2014).

Blommel, P. G. & Fox, B. G. A combined approach to improving large-scale production of tobacco etch virus protease. Protein Expr. Purif. 55 , 53–68 (2007).

Minor, W., Cymborowski, M., Otwinowski, Z. & Chruszcz, M. HKL-3000: the integration of data reduction and structure solution–from diffraction images to an initial model in minutes. Acta Crystallogr. D Biol. Crystallogr. 62 , 859–866 (2006).

Sheldrick, G. M. A short history of SHELX. Acta Crystallogr. A 64 , 112–122 (2008).

Morris, R. J., Perrakis, A. & Lamzin, V. S. ARP/wARP and automatic interpretation of protein electron density maps. Methods Enzymol. 374 , 229–244 (2003).

Adams, P. D. et al. PHENIX: a comprehensive Python-based system for macromolecular structure solution. Acta Crystallogr. D Biol. Crystallogr. 66 , 213–221 (2010).

Niesen, F. H., Berglund, H. & Vedadi, M. The use of differential scanning fluorimetry to detect ligand interactions that promote protein stability. Nat. Protoc. 2 , 2212–2221 (2007).

Mole, B., Habibi, S., Dangl, J. L. & Grant, S. R. Gluconate metabolism is required for virulence of the soft-rot pathogen Pectobacterium carotovorum . Mol. Plant Microbe Interact. 23 , 1335–1344 (2010).

Varel, V. H. & Bryant, M. P. Nutritional features of Bacteroides fragilis subsp. fragilis. Appl. Microbiol. 28 , 251–257 (1974).

CAS   PubMed   Google Scholar  

Yamada, K., Kaneko, J., Kamio, Y. & Itoh, Y. Binding sequences for RdgB, a DNA damage-responsive transcriptional activator, and temperature-dependent expression of bacteriocin and pectin lyase genes in Pectobacterium carotovorum subsp. carotovorum. Appl. Environ. Microbiol. 74 , 6017–6025 (2008).

Khan, S. R., Gaines, J., Roop, R. M. II & Farrand, S. K. Broad-host-range expression vectors with tightly regulated promoters and their use to examine the influence of TraR and TraM expression on Ti plasmid quorum sensing. Appl. Environ. Microbiol. 74 , 5053–5062 (2008).

Kovach, M. E. et al. Four new derivatives of the broad-host-range cloning vector pBBR1MCS, carrying different antibiotic-resistance cassettes. Gene 166 , 175–176 (1995).

Pfaffl, M. W. A new mathematical model for relative quantification in real-time RT-PCR. Nucleic Acids Res. 29 , e45 (2001).

Rocha, D. J., Santos, C. S. & Pacheco, L. G. Bacterial reference genes for gene expression studies by RT-qPCR: survey and analysis. Antonie van Leeuwenhoek 108 , 685–693 (2015).

Download references

Acknowledgements

This work was supported by grants U54GM093342 (to S.C.A. and J.A.G.) and P01GM118303 (to S.C.A. and J.A.G.) from the National Institutes of Health.

Author information

These authors contributed equally: Michael S. Carter, Xinshuai Zhang and Hua Huang.

Authors and Affiliations

Institute for Genomic Biology, University of Illinois at Urbana–Champaign, Urbana, IL, USA

Michael S. Carter, Xinshuai Zhang, Hua Huang, Jason T. Bouvier, Brian San Francisco, Rémi G. Zallot, Harvey M. Andersen & John A. Gerlt

Department of Biochemistry, University of Illinois at Urbana–Champaign, Urbana, IL, USA

Jason T. Bouvier & John A. Gerlt

Department of Biochemistry, Albert Einstein College of Medicine, Bronx, NY, USA

Matthew W. Vetting, Nawar Al-Obaidi, Jeffrey B. Bonanno, Agnidipta Ghosh & Steven C. Almo

Department of Chemistry, University of Illinois at Urbana–Champaign, Urbana, IL, USA

John A. Gerlt

You can also search for this author in PubMed   Google Scholar

Contributions

M.S.C., X.Z., H.H., M.W.V., S.C.A., and J.A.G. conceived the project. J.T.B., M.W.V., and J.A.G. developed the library for SBP ligand screening. M.W.V., N.A., A.G., J.B.B., and S.C.A. managed the protein purification pipeline for the SBPs and some pathway enzymes. X.Z. and H.H. contributed purification of the remaining pathway enzymes, biochemical characterization of all enzymes, and chemical validation of their substrates and products. M.W.V. contributed the DSF screening of SBPs against the ligand library. M.S.C. identified d -apiose as the physiological ligand for the SBPs. M.W.V., J.B.B., and S.C.A. contributed crystallization data and analysis. M.S.C., X.Z., H.H., B.S.F., and J.A.G. evaluated SSNs, GNNs, biochemical, and biological data to hypothesize pathways. M.S.C., H.H., and R.G.Z. contributed biological validation of pathways. H.M.A. contributed molecular cloning. M.S.C., X.Z., and J.A.G. wrote the paper with contributions from all authors.

Corresponding author

Correspondence to John A. Gerlt .

Ethics declarations

Competing interests.

The authors declare no competing interests

Additional information

Publisher’s note: Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplementary information

Supplementary text and figures.

Supplementary Table 1–8, Supplementary Figures 1–34

Reporting Summary

Supplementary dataset 1.

Solute-binding proteins (SBPs) from PF13407 screened in this study

Supplementary Dataset 2

Phylogenetic information for organisms that encode the pathways discovered in this study. Separate worksheets are provided for each pathway

Rights and permissions

Reprints and permissions

About this article

Cite this article.

Carter, M.S., Zhang, X., Huang, H. et al. Functional assignment of multiple catabolic pathways for d -apiose. Nat Chem Biol 14 , 696–705 (2018). https://doi.org/10.1038/s41589-018-0067-7

Download citation

Received : 29 September 2017

Accepted : 29 March 2018

Published : 04 June 2018

Issue Date : July 2018

DOI : https://doi.org/10.1038/s41589-018-0067-7

Share this article

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

This article is cited by

Microbial life in 25-m-deep boreholes in ancient permafrost illuminated by metagenomics.

  • Abraham L. Almatari
  • Tatiana A. Vishnivetskaya

Environmental Microbiome (2023)

Discovery of a non-canonical prototype long-chain monoacylglycerol lipase through a structure-based endogenous reaction intermediate complex

  • Nikos Pinotsis
  • Anna Krüger
  • Matthias Wilmanns

Nature Communications (2023)

Deep ocean metagenomes provide insight into the metabolic architecture of bathypelagic microbial communities

  • Silvia G. Acinas
  • Pablo Sánchez
  • Josep M. Gasol

Communications Biology (2021)

Deciphering the enzymatic mechanism of sugar ring contraction in UDP-apiose biosynthesis

  • Simone Savino
  • Annika J. E. Borg
  • Bernd Nidetzky

Nature Catalysis (2019)

Quick links

  • Explore articles by subject
  • Guide to authors
  • Editorial policies

Sign up for the Nature Briefing newsletter — what matters in science, free to your inbox daily.

what is a functional assignment

  • Subscriber Services
  • For Authors
  • Publications
  • Archaeology
  • Art & Architecture
  • Bilingual dictionaries
  • Classical studies
  • Encyclopedias
  • English Dictionaries and Thesauri
  • Language reference
  • Linguistics
  • Media studies
  • Medicine and health
  • Names studies
  • Performing arts
  • Science and technology
  • Social sciences
  • Society and culture
  • Overview Pages
  • Subject Reference
  • English Dictionaries
  • Bilingual Dictionaries

Recently viewed (0)

  • Save Search
  • Share This Facebook LinkedIn Twitter

Related Content

More like this.

Show all results sharing these subjects:

  • Business and Management

global assignment

Quick reference.

Is a job assignment within a multinational corporation that involves expatriation; that is the relocation of an employee to another country. Specialists in international human resource management identify different types of global assignment. Technical assignments occur when employees with technical skills are sent from one country to another to fill a particular skill shortage. Developmental assignments, in contrast, are typically used within a management development programme and are used to equip managers with new skills and competencies. Strategic assignments arise when key executives are sent from one country to another to launch a product, develop a market or initiate another key change in business strategy. Finally, functional assignments resemble technical assignments but differ in one important respect. Technical assignments do not require the assignee to interact extensively with employees in the host country but this is a requirement of functional assignments and for this reason assignees are often prepared through cross-cultural training.

From:   global assignment   in  A Dictionary of Human Resource Management »

Subjects: Social sciences — Business and Management

Related content in Oxford Reference

Reference entries.

View all related items in Oxford Reference »

Search for: 'global assignment' in Oxford Reference »

  • Oxford University Press

PRINTED FROM OXFORD REFERENCE (www.oxfordreference.com). (c) Copyright Oxford University Press, 2023. All Rights Reserved. Under the terms of the licence agreement, an individual user may print out a PDF of a single entry from a reference work in OR for personal use (for details see Privacy Policy and Legal Notice ).

date: 26 April 2024

  • Cookie Policy
  • Privacy Policy
  • Legal Notice
  • Accessibility
  • [66.249.64.20|195.190.12.77]
  • 195.190.12.77

Character limit 500 /500

Logo for Milne Publishing

Want to create or adapt books like this? Learn more about how Pressbooks supports open publishing practices.

Chapter 2: The Methodology of Functional Assessment

Abstract: This chapter defines functional assessment and describes why this approach is useful. It focuses on the methodology of functional assessment, including surveys, rating scales, observations, and experimental approaches to determine the function of behavior. The step-by-step process of functional assessment and ethical considerations will be described.

Focus Questions:

  • What is functional assessment?
  • What are the three main functional assessment approaches and how are they used?
  • What are the advantages and disadvantages of each approach?
  • What ethical considerations are necessary when implementing functional assessment?

What is Functional Assessment?

Functional assessment (FA) refers to a variety of approaches, including indirect, observational, and experimental/functional analysis procedures (Hanley, Iwata, & McCord, 2003; Hagopian, Rooker, Jessel, & DeLeon, 2013; Iwata, Dorsey, Slifer, Bauman, & Richman, 1994; Mueller, Nkosi, & Hine, 2011). FA has been found to be useful with a wide range of behaviors and populations, such as feeding disorders (Gale, Eikeseth, & Rudrud, 2011; LaRue et al., 2011), chronic hand mouthing (Roscoe, Iwata, & Zhou, 2013), off task behavior of children in the classroom (Meyer, 1999), social avoidance (Harper, Iwata, & Camp, 2013), aggression and self-injurious behaviors (Fritz, Iwata, Hammond, Bloom, 2013), elopement (Tarbox, Wallace, &Williams, 2003), hand flapping of children (Mueller, Sterling-Turner, & Scattone, 2001), hair twirling (Deaver, Miltenberger, & Stricker, 2001), and rumination (Lyons et al., 2007). The spring 2013 issue of the Journal of Applied Behavior Analysis is devoted to FA-related research reflecting the strong empirical foundation that has contributed to the development of this approach. Furthermore, FA is a relatively versatile approach that, following instruction, has been implemented by parents (Gale, Eikeseth, & Rudrud, 2011; Shayne & Miltenberger, 2013), students (Iwata et al., 2000), teachers (Wallace, Doney, Mintz-Resudek, & Tarbox, 2004), and staff (Moore & Fisher, 2007).

The main reason for conducting a FA is to identify the possible causes of an individual’s challenging behavior so that an effective treatment can be designed (Chander & Dahlquist, 2010). Identification of the variables maintaining the challenging behavior prior to designing treatment is necessary since certain treatments can be contra-indicated or ineffective, depending on the function of the behavior (Iwata, Pace, Cowdery, & Miltenberger, 1994; Newcomer & Lewis, 2004).

Other reasons for using a FA include that it:

  • Is required by federal law (IDEIA, 2004)
  • May provide convincing evidence for treatment team decision-making and provide accountability
  • May result in less use of a punishment procedure (Pelios, Morren, Tesch, & Axelrod,1999)
  • Is recommended by professional associations (National American School Psychologists)

A FA approach is used to gather data regarding why the individual’s challenging behavior is occurring. Challenging behaviors may serve a purpose or function for the individual and are often a function of environmental conditions (Hanley, 2012). After the reinforcers maintaining the individual’s challenging behavior are clearly identified, it should be possible to predict the circumstances under which the behavior is likely to happen and what is causing it to recur. The motivating conditions and antecedents for the individual’s challenging behavior may be altered to decrease that behavior. For example, if Mary cries and hits herself due to fatigue when her bedtime approaches, then an earlier bedtime can be arranged. Similarly, Darrell’s hitting and screaming for candy at the grocery store may be prevented by bringing some of his favorite snack on the shopping trip and keeping the trip short. Additionally, more appropriate behaviors that achieve the same result may be taught, called functional replacement behavior . For example, Nija’s crying when she wants her doll can be decreased by teaching her to make the sign for doll in situations where she cried to get it in the past. To decrease the likelihood that Caden runs out of the classroom when reading class begins (a difficult skill for Caden), his teacher provides additional one-on-one instruction to establish his reading skills.

40076.png

FA Methodology

There are three main categories of functional assessment approaches—indirect (e.g., questionnaires, rating scales), observational, and experimental/functional analysis. Gathering information about the conditions surrounding the behavior, asking relevant individuals questions about the behavior are initial steps. If the results of indirect and observational assessment are unclear, testing the possible maintaining variables for the individual’s challenging behavior would next be performed. See Figure 1 of the FA process for an outline of this overall way to proceed when addressing the individual’s challenging behavior.

Indirect Functional Assessments

An indirect functional assessment is a procedure in which information about the challenging behavior is gathered from persons who are closest to the individual, such as parent(s), teachers, service providers, and aides. Rating scales, questionnaires, and interviews are used to gather information on potential factors that contribute to the individual’s challenging behavior (e.g., O’Neill et al., 1997). One example of an indirect assessment method is the Functional Analysis Screening Tool (FAST). The FAST is a 16-item questionnaire that can be administered to individuals who know the person with challenging behavior well to identify antecedents and consequences correlated with the behavior (Iwata, DeLeon, & Roscoe, 2013).

When using an open-ended FA interview, persons who are the closest to the individual with challenging behaviors are asked to describe in detail the circumstances occurring before and after the challenging behavior, the conditions under which it occurs most and least, its characteristics, and more (Hanley, 2012; O’Neill et al., 1997). Correlated variables noted from the information gathered during the interview can then be further examined with other types of FA. Additionally, an indirect functional assessment may be helpful with initially defining the challenging behavior since the relevant individuals are asked to describe exactly what the individual does when performing the challenging behavior.

There are limitations of using an indirect FA. Since the type of data gathered with indirect methods is not based on objective direct observation, it may be laced with differing perspectives and subjective viewpoints and be prone to memory errors. For example, interview data can provide much information, but can also be biased. A parent may relay during an interview that her child’s challenging behavior only “occurs when his dad is taking care of him.” In this example, the parent seems to identify the father as part of the problem. In a recent study, Iwata et al. (2013) found that reliability, or the agreement between raters, using the FAST was 71.5%. The validity of the FAST, or an outcome comparison of FAST to an experimental analysis of behavior, was found to be 63.8% across 69 cases. These results suggest that although indirect methods, such as the FAST, can be a quick means of obtaining preliminary information about the nature of the individual’s challenging behavior, additional corroborating evidence about the function of the behavior is necessary. This additional evidence may be obtained by the therapist or teacher conducting an observational FA.

Observational Functional Assessment

In an observational functional assessment , the professional directly and unobtrusively observes the individual’s challenging behavior in the natural environment, and records the circumstances surrounding the behavior (Lalli, Browder, Mace, & Brown, 1993). One method of collecting observational assessment information is to use a time chart , where a mark is made in the appropriate cell to indicate the time period and day in which a particular behavior was observed (Touchette, MacDonald, & Langer, 1985). From this information, certain activities, events or people correlated with the occurrence of the challenging behavior can be identified as possible causes of that behavior. For example, as seen in Table 6 below, if it is found that Sally consistently runs around and screams at 10 am, then the activity and conditions that usually occur at that time, say, during spelling, can be explored as somehow being associated with her behavior (e.g., difficult, noisy, boring, peer attention) and possibly contributing to it.

Data is collected on the antecedents, behavior, and consequences (the ABCs of behavior ) as they unfold in the situation where the challenging behavior most often occurs. This procedure of writing down in as much detail and objective a manner as possible is called ABC functional assessment . An ABC functional assessment often takes place in multiple settings or under different conditions (e.g., during math, language, or physical education instruction) so as to provide similar and contrasting information about the situations where the challenging behaviors are likely to occur. The degree of consistency in co-occurrence of certain antecedents and/or consequences with the challenging behavior across 30-60-min sessions held across 5 or more days is analyzed. These data may also serve as baseline information to compare the effects of later implementation of treatments to decrease the individual’s challenging behavior. Teachers, families, or staff may record the circumstances surrounding the individual’s challenging behavior. For instance, Annette may scream when adults around her are talking and when she does this, an adult typically asks her to be quiet. Examples of antecedents within the learning environment may include instructional content, teacher proximity, and peer interactions. Positive reinforcers for the challenging behavior may include certain language, gestures, removal of demands, physical touch, or eye contact by teachers or other students. See Table 7 for an example of an ABC recording data sheet.

A direct observational FA can provide an objective means of gathering information that may help to substantiate indirect assessment findings. The data generated from an ABC recording procedure can be subjected to a conditional probability analysis of the correlated observed antecedent and consequence events to determine which events are most likely to be associated with the challenging behavior (e.g., frequency of X antecedent co-occurring with behavior divided by the total number of times X occurred multiplied by 100). However, it should be recognized that observational methods are correlational and so causal conclusions are not possible. There may be other factors involved in contributing to the occurrence of the individual’s challenging behavior that are involved and have not been identified.

Functional Analysis (FAn)

Functional Analysis involves an experimental test of the different possible functions for the client’s problem behavior (e.g., attention positive reinforcement, tangible positive reinforcement, demand/negative reinforcement). FAn has been established as a clinically effective method of identifying the function of challenging behavior and treating it based on several decades of accumulated research (Beavers, Iwata, & Lerman, 2013). Using a standard FAn, attention, demand, tangible, and alone conditions are compared to a play/recreational control condition (e.g., Iwata, Dorsey, Slifer, Bauman, & Richman, 1982/1994).

The attention condition is conducted to determine if the individual’s problem behavior is due to attention positive reinforcement. Under conditions of social deprivation and in the presence of one or two adults, eye contact, physical contact, reprimands, and verbal interaction “No, don’t do that” or similar comments that typically are given by others in the individual’s natural environment are delivered immediately after the individual’s challenging behavior. Note that this condition may be tailored to the specific stimuli found to correlate with the occurrence of the individual’s challenging behavior based on indirect and observational FA.

The demand condition is conducted to determine if the individual’s problem behavior is due to escape/avoidance of task demands or activities (i.e., negative reinforcement). The therapist or teacher presents an activity or instruction to complete a task that the individual has in the past (based on interview or observational data) had difficulty in completing even when physically guided to do so. If the individual engages in the challenging behavior at any time, then the therapist immediately turns away from the client for 30 s.

The tangible condition is conducted to evaluate whether tangible positive reinforcement is maintaining the individual’s challenging behavior. Based on information gathered from other assessments (e.g., indirect, observational), preferred objects are placed out of reach (e.g., on a shelf). When the individual engages in the challenging behavior, that preferred item is delivered for 30 s.

In the alone condition , the client is in a room by him/herself with no toys or activities. Note that, as is the case in each of these conditions, all safety concerns should be addressed and appropriate precautions taken. The therapist observes the client’s behavior for the purpose of data collection from a one-way mirror or video camera. This condition involves a situation in which low levels of stimulation are present in order to test whether self-stimulation or automatic reinforcement is maintaining the client’s problem behavior. The client is placed in the therapy room alone, without any toys or materials that would provide a source of stimulation.

In the play condition , toys or activities are presented and the therapist interacts socially with the client. This condition serves as a comparison or control condition to rule out confounding variables such as the challenging behavior due to variables present in the attention, tangible, or demand conditions (e.g., the presence of the therapist, materials, social interaction). The therapist and client are in a room with a variety of toys or leisure activities present. The therapist provides social praise and brief physical contact contingent on the client’s appropriate behavior at least once every 30 s.

Evidence regarding the function of that behavior is provided when levels of the challenging behavior are higher in one condition compared to the other conditions. For instance, if the level of client’s behavior is consistently (e.g., across 5 sessions or more) greater in the demand condition than that in the other conditions, the function of the challenging behavior would be negative reinforcement. See Chapter 6 for additional information about FAn and a description of the conditions.

Research Design & Functional Analysis

A FAn compares the effects of various conditions using single participant experimental research designs. Commonly used research designs when conducting FAn include multielement and ABAB designs as defined below. The duration of presentation of each condition is typically at least 5 min with a brief (e.g., 5-min) break between conditions if several are presented on one day.

When implementing an ABAB Research Design , or a reversal-replication research design, the first step involves measuring the dependent variable (the individual’s challenging behavior) during the baseline phase (A), when no treatment is applied (Martin & Pear, 2011). Once stability of the behavior has been achieved, the treatment or the independent variable (B) is applied and its effect on behavior is observed. Lastly, these two phases are repeated or replicated. A convincing demonstration of the effect of the independent variable on the dependent variable is provided if the behavior changes only when treatment is present and not when it is absent. In other variations of this design different treatment conditions can be compared as opposed to including a baseline comparison.

In the graphed data presented in Figure 2 below, the use of an ABAB research design in a FAn to test the effects of easy versus difficult school work on the off-task behavior of a child in the classroom is illustrated. The levels of off-task behavior are greater when difficult school work is presented compared to when easy school work is presented. Intervention can be designed to provide the child with greater assistance or teach the child to ask for assistance when difficult school work is given.

Chapter2_01.png

With a multielement research design two or more conditions or treatments (i.e., independent variable) are alternated rapidly (e.g., treatments A and B are conducted in one day or during the same hour). This design is also known as alternating treatment or simultaneous treatment research design (Martin & Pear, 2011). The conditions are alternated across days (e.g., Day 1: attention, demands, alone, play; Day 2: demands, alone, play, attention, etc.) to reduce the confounding effects of order. Like an ABAB research design, the purpose of the multielement research design is to determine which of several conditions or treatments produce a change in the behavior of interest. The difference in levels of the challenging behavior between conditions is evaluated to determine which condition affects the behavior most. In the following graphical presentation of FAn seen in Figure 3, the frequency of aggressive behavior is highest in the attention condition compared to the other conditions providing experimental evidence that attention positive reinforcement is maintaining the individual’s aggressive behavior.

Chapter2_02.png

The following is an example of the steps involved in conducting an example of a functional analysis procedure using a multielement research design:

  • Define the problem behavior.
  • In a controlled setting, present 10 min where the attention condition is in effect and instances of the problem behavior are recorded.
  • 5 min break.
  • Present 10 min of the demand condition
  • 5 min break
  • Present 10 min play condition
  • Present 10 min of alone condition
  • On day 2, repeat above with randomized order of conditions.
  • Repeat for 3 more days or more depending on the stability of the data

Data Analysis

At least five data points are collected for each condition so that trends, levels of the problem behavior, and non-overlapping data points across conditions can be compared. Graphed data are examined to identify differential levels of the individual’s behavior across conditions. The data patterns are analyzed by examining stability, trends, overlapping data points, and magnitude of effect observed for the test conditions compared to the control (play/recreation) condition (Martin & Pear, 2011). If variability in the data pattern and/or overlapping data patterns are observed, then additional sessions may need to be conducted until stability and differentiation of the levels of behavior in each condition is reached to allow an interpretation of the results (see Bourret & Pietras, 2013 for more).

Advantages and Disadvantages of FAn

Like the other FA methods, there can be advantages and disadvantages to using a functional analysis approach. The major advantage of FAn is that it provides the most accurate information about the function of the individual’s behavior (Floyd, Phaneuf, & Wilcynski, 2005; Iwata et al., 2013). FAn is the only method that yields a “cause and effect” interpretation of the findings. Since this approach uses an experimental method that involves manipulating conditions (attention, alone, demand, or demand conditions) while controlling or holding constant other potentially confounding factors (play condition), the results from a FAn can be used to identify the specific factors maintaining the problem behavior. In a comparison of indirect, observational, and FAn methods to identify the function of the challenging behavior of seven children with autism, Tarbox et al. (2009) found that indirect and FAn methods produced more conclusive findings for all seven children than an observational method did. In contrast, Alter, Conroy, Mancil, and Haydon (2008) found one-to-one correspondence between FA observational methods and FAn and less correspondence with indirect FAn methods when identifying the function of challenging behavior with four young males. Additionally, in Taylor and Romanczyk’s (1994) study, the functions of students’ challenging behavior based on observations of teacher’s interaction with their students in the classroom predicted experimentally verified functions of those behaviors.

There are notable limitations to using a FAn. When the problem is multiply determined or low rates of occurrence of the challenging behavior exist, then interpretation of the results of a functional analysis may be difficult. Another disadvantage is that the function of the challenging behavior may not always be readily identified using the standard functional analysis conditions (i.e., attention, tangible, demand, control). In which case, tailoring the conditions used in a functional analysis to the individual’s circumstances may be necessary. Hapopian et al. (2013) describe how the maintaining variables for over 90% of 176 inpatient cases of individuals with intellectual disability and severe challenging behaviors were identified as a result of conducting a series of more individually-tailored or idiosyncratic FAn.

Researchers have attempted to address the difficulties with conducting FAn, such as the ethical issues when targeting harmful behaviors (Hanley, 2012). As one approach, procedures may be modified to reduce the threat of harm to the individual due to provocation of the challenging behavior during the assessment conditions. For instance, conditions may be a single trial (rather than 5-min sessions) and embedded in naturally-occurring ongoing activities in the individual’s environment (Bloom et al., 2011; Bloom, Lambert, Dayton, & Samaha, 2013). Other approaches entail measuring precursor behaviors instead of the actual challenging behavior (Fritz et al., 2013) or latency to engage in the challenging behavior (Neidert et al., 2013). A summary of the different types of FA and their advantages and disadvantages can be seen in the Table 8 below.

Family Contribution to Assessment of the Individual’s Challenging Behavior

Families play an essential role in providing necessary information for early detection and diagnosis, assessment, and are often involved in implementing interventions (Friend & Cook, 2007). Early detection followed by intervention provides the best chance of long-term beneficial outcomes for children with challenging behaviors (Shapiro & Batshaw, 2013). Understanding the family and their culture is necessary when assessing an individual’s challenging behavior. Cultural differences may involve any combination of age, race/ethnicity, social class, sex, language, religion, sexual orientation, ableness (special needs), regionality, and nationality. For instance, a family may come from cultural contexts with very different viewpoints about education and appropriate child behaviors and this may be involved with the occurrence of the individual’s challenging behaviors. The more different the cultural background of the family, the more likely that the individuals involved will face cultural conflicts resulting from those differences (Brown, 2010). This is especially true when sensitive topics or cultural incidents occur. Understanding the family and the cultural context of the family is critical to a comprehensive assessment and treatment. Professionals must ensure that families are part of the process and strive to build a positive, strong partnership with the family.

Ethical Considerations

A number of ethical issues should be considered before undertaking an FA. Ethical principles or procedures refer to rules that professions or organizations have specified to ensure survival of the culture (Skinner, 1953). Abiding by ethical considerations protects the client and others and can contribute to high quality care for the person. The overarching ethical considerations are: do no harm, right to privacy, and informed consent . Several federal laws mandate assessment, evaluation, and interventions with persons with disabilities, including Individuals with Disabilities Education Act, Americans with Disabilities Act, the Buckley Amendment of Families Equal Right to Privacy Act (FERPA) and other state and local policies. Professionals should be well-versed about these laws and policies and act accordingly. Other ethical factors specific to the FA process include: informed consent from the individual and family to perform FA and determine acceptability of treatment procedures, competence of the professional, adequate and appropriate behavior measures of baseline, treatment, and post-treatment to allow objective and fair evaluation of treatment effectiveness, the choice of a least restrictive alternative or intervention path, and the right to effective treatment based on research based intervention practices. Table 9 lists professional organizations in psychology and education that describe ethical guidelines, principles, and procedures.

According to Friend and Cook (2007), all assessment procedures must meet the following ethical guidelines:

  • Must be nondiscriminatory on a racial, cultural, and linguistic basis.
  • Instruments must be valid and reliable.
  • Administration is by trained professionals.
  • Testing format must take into account possible impact of the suspected disability.
  • Testing must be in the language with which child is most comfortable.
  • Include a variety of assessment tools and techniques.

Discussion Questions

  • What are the basic tenets of an FA approach?
  • What are the three ways in which FA can be conducted? What are their advantages and disadvantages? When would you use one or the other types of FA?
  • Speculate about the possible difficulties involved in evaluating challenging behavior.
  • How can competency in performing FAs be established with college students who are entering professions where they may work with individuals with challenging behavior?
  • What are important ethical considerations when assessing and treating the challenging behaviors of individuals with developmental disabilities?

Exercise 1: Case Study Simulation

Jimmy is a fifth grade student who has been in and out of five foster homes over the course of his life. Jimmy does not have many friends, due in part to his frequent transitions to new schools and homes. Jimmy is currently placed with a loving older couple who want to stabilize his daily life. Jimmy is very quiet and shy, often described as sullen by previous teachers. He participates in noxious behaviors, such as vomiting and spitting, when asked to complete a task that he doesn’t like or want to do. Using the approaches described in this chapter, evaluate Jimmy’s problem behavior by answering the following questions:

  • Propose a behavioral definition for Jimmy’s challenging behaviors. Ad lib as needed.
  • How would you begin to investigate the reasons for this behavior?
  • What indirect methods of FA could be used to evaluate this problem behavior?
  • What questions would you ask of the adults who are most significant in Jimmy’s life?
  • What might be a plausible maintaining variable for Jimmy’s challenging behavior?
  • Plan how you would conduct a FAn to determine if your hypothesis for the function of Jimmy’s challenging behavior is correct. Draw a graph that depicts the results of a FAn that illustrates that function.
  • Which type of FA method would provide you with the best evidence concerning the function of Jimmy’s challenging behavior?
  • What ethical issues are involved with assessment and treatment of Jimmy’s behavior?

Exercise 2: Interpreting Functional Analysis

Search for a research article in the library’s databases that involves use of functional analysis and treatment effectiveness evaluation and complete the following:

  • Write an APA-style reference
  • Describe the client and general background
  • Behaviorally define the target behavior
  • Summarize the functional analysis conditions
  • Describe the functional analysis graphed results
  • Identify the maintaining variable for the client’s problem behavior
  • Identify effective treatments and explain how knowledge of functional analysis led to that design.
  • Summarize what ethical procedures were used in the study.

* Please note that FA and treatment procedures should be performed only by well-trained and experienced individuals or under the supervision of a qualified individual (e.g., a Board Certified Behavior Analyst®)

Instruction in Functional Assessment Copyright © 2014 by Marcie Desrochers and Moira Fallon is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License , except where otherwise noted.

  • Trending Now
  • Foundational Courses
  • Data Science
  • Practice Problem
  • Machine Learning
  • System Design
  • DevOps Tutorial

Functional Programming Paradigm

  • Higher Order Functions and Currying
  • Functions in Programming
  • Introduction of Programming Paradigms
  • Functional Programming in JavaScript
  • Functional programming in JavaScript
  • Functional Programming in Python
  • Functional Programming in Java with Examples
  • Functional Programming: Pure and Impure Functions
  • Difference between Functional and Imperative Programming
  • Functional Testing - Software Testing
  • Explain the concepts of functional programming in JavaScript
  • Difference Between Functional and Logical Programming
  • Difference between Functional Programming and Object Oriented Programming
  • What is Haskell Programming Language?
  • Functional modelling and Information Flow modelling
  • Functional Interfaces in Java
  • Functional Procedure Layers in Software Engineering
  • Functional Modelling in object oriented analysis and design
  • Real Life Applications of Functions
  • ACID Properties in DBMS
  • How to write a Pseudo Code?
  • Naive Bayes Classifiers
  • Removing stop words with NLTK in Python
  • Supervised and Unsupervised learning
  • COCOMO Model - Software Engineering
  • Coupling and Cohesion - Software Engineering
  • Reinforcement learning
  • Advanced Encryption Standard (AES)
  • KDD Process in Data Mining

Introduction   Functional programming is a programming paradigm in which we try to bind everything in pure mathematical functions style. It is a declarative type of programming style. Its main focus is on “what to solve” in contrast to an imperative style where the main focus is “how to solve”. It uses expressions instead of statements. An expression is evaluated to produce a value whereas a statement is executed to assign variables. Those functions have some special features discussed below. 

Functional Programming is based on Lambda Calculus:   Lambda calculus is a framework developed by Alonzo Church to study computations with functions. It can be called as the smallest programming language in the world. It gives the definition of what is computable. Anything that can be computed by lambda calculus is computable. It is equivalent to Turing machine in its ability to compute. It provides a theoretical framework for describing functions and their evaluation. It forms the basis of almost all current functional programming languages.  Fact: Alan Turing was a student of Alonzo Church who created Turing machine which laid the foundation of imperative programming style.  

Programming Languages that support functional programming: Haskell, JavaScript, Python, Scala, Erlang, Lisp, ML, Clojure, OCaml, Common Lisp, Racket. 

Concepts of functional programming:  

  • Pure functions
  • Referential transparency
  • Functions are First-Class and can be Higher-Order
  • Variables are Immutable

Pure functions: These functions have two main properties. First, they always produce the same output for same arguments irrespective of anything else.  Secondly, they have no side-effects i.e. they do not modify any arguments or local/global variables or input/output streams.  Later property is called immutability. The pure function’s only result is the value it returns. They are deterministic.  Programs done using functional programming are easy to debug because pure functions have no side effects or hidden I/O. Pure functions also make it easier to write parallel/concurrent applications. When the code is written in this style, a smart compiler can do many things – it can parallelize the instructions, wait to evaluate results when needing them, and memorize the results since the results never change as long as the input doesn’t change.  example of the pure function: 

Recursion: There are no “for” or “while” loop in functional languages. Iteration in functional languages is implemented through recursion. Recursive functions repeatedly call themselves, until it reaches the base case.  example of the recursive function:  

Referential transparency: In functional programs variables once defined do not change their value throughout the program. Functional programs do not have assignment statements. If we have to store some value, we define new variables instead. This eliminates any chances of side effects because any variable can be replaced with its actual value at any point of execution. State of any variable is constant at any instant. 

Example:  

Functions are First-Class and can be Higher-Order: First-class functions are treated as first-class variable. The first class variables can be passed to functions as parameter, can be returned from functions or stored in data structures. Higher order functions are the functions that take other functions as arguments and they can also return functions. 

Example: 

Variables are Immutable: In functional programming, we can’t modify a variable after it’s been initialized. We can create new variables – but we can’t modify existing variables, and this really helps to maintain state throughout the runtime of a program. Once we create a variable and set its value, we can have full confidence knowing that the value of that variable will never change.  

Advantages and Disadvantages of Functional programming

Advantages:   

  • Pure functions are easier to understand because they don’t change any states and depend only on the input given to them. Whatever output they produce is the return value they give. Their function signature gives all the information about them i.e. their return type and their arguments.
  • The ability of functional programming languages to treat functions as values and pass them to functions as parameters make the code more readable and easily understandable.
  • Testing and debugging is easier. Since pure functions take only arguments and produce output, they don’t produce any changes don’t take input or produce some hidden output. They use immutable values, so it becomes easier to check some problems in programs written uses pure functions.
  • It is used to implement concurrency/parallelism because pure functions don’t change variables or any other data outside of it.
  • It adopts lazy evaluation which avoids repeated evaluation because the value is evaluated and stored only when it is needed.

Disadvantages:   

  • Sometimes writing pure functions can reduce the readability of code.
  • Writing programs in recursive style instead of using loops can be bit intimidating.
  • Writing pure functions are easy but combining them with the rest of the application and I/O operations is a difficult task.
  • Immutable values and recursion can lead to decrease in performance.

Applications:  

  • It is used in mathematical computations.
  • It is needed where concurrency or parallelism is required.

Fact: Whatsapp needs only 50 engineers for its 900M users because Erlang is used to implement its concurrency needs. Facebook uses Haskell in its anti-spam system.  

Please Login to comment...

Similar reads.

  • Computer Subject
  • Technical Scripter

advertisewithusBannerImg

Improve your Coding Skills with Practice

 alt=

What kind of Experience do you want to share?

  • Click here - to use the wp menu builder

Logo

  • Privacy Policy
  • Refund Policy
  • Terms Of Service
  • Nursing notes PDF
  • Nursing Foundations
  • Medical Surgical Nursing
  • Maternal Nursing
  • Pediatric Nursing
  • Behavioural sciences
  • BSC NURSING
  • GNM NURSING
  • MSC NURSING
  • PC BSC NURSING
  • HPSSB AND HPSSC
  • Nursing Assignment

Functional Assessment in Nursing: A Cornerstone of Care

Functional assessment in nursing stands as a cornerstone, systematically evaluating a patient’s ability to carry out activities of daily living (ADLs) and instrumental activities of daily living (IADLs). These assessments are vital in tailoring care plans, ensuring patient safety, and promoting overall well-being.

Table of Contents

What is a Functional Assessment?

A functional assessment involves a methodical examination of a patient’s capacity to perform basic ADLs like bathing, dressing, toileting, and eating, as well as more complex IADLs such as cooking , shopping, managing finances, and taking medications.

Importance of Functional Assessment in Nursing

Strengths and Weaknesses : Functional assessments offer insights into a patient’s abilities and limitations, enabling nurses to create personalized care plans.

Risk Mitigation : Understanding mobility and balance limitations helps implement preventive measures, reducing the risk of falls and injuries.

Progress Monitoring : Regular assessments allow nurses to track a patient’s progress, adjusting care plans accordingly.

Discharge Planning : Crucial for gauging a patient’s readiness for discharge and planning appropriate follow-up care.

How are Functional Assessments Conducted?

Functional assessments employ various tools and methods:

Observation : Watching patients perform daily tasks during their routines.

Interviews : Gathering information from patients or their caregivers about task performance.

Standardized Assessments : Utilizing tools like the Barthel Index and Lawton IADL Scale for quantifying functional abilities.

Common Domains of a Functional Assessment

  • Physical Abilities: Assessing strength, range of motion , coordination, and balance.
  • Cognitive Abilities : Evaluating memory, attention, problem-solving, and judgment.
  • Sensory Abilities : Testing vision, hearing, and touch.
  • Communication Skills : Assessing understanding and expression capabilities.
  • Emotional and Psychosocial Well-being : Examining mood, coping skills, and social support.

Challenges of Functional Assessment

  • Subjectivity : Some aspects, like pain or fatigue, are subjective and challenging to measure.
  • Patient Cooperation : Illness, fatigue, or cognitive impairment may hinder cooperation.
  • Time Constraints : Nurses often face limited time for comprehensive assessments.

Strategies for Overcoming Challenges

  • Use Diverse Assessment Tools : Combine tools for a comprehensive understanding.
  • Involve Caregivers : Gather insights from caregivers regarding a patient’s capabilities at home.
  • Be Flexible : Adapt assessments to individual patient needs and abilities.
  • Document Carefully : Thorough documentation ensures the effective use of assessment findings in care planning.

Benefits of Functional Assessment in Nursing

Functional assessment improves patient care by allowing healthcare providers to tailor interventions based on individual needs. It enhances patient independence and contributes to better overall outcomes. Customized care plans address specific functional limitations, promoting a faster recovery.

Adaptations and Modifications in Nursing Care

Nurses implement various adaptations and modifications in care based on functional assessments. This may include the use of assistive devices, environmental adjustments, and patient education to ensure a conducive and supportive healthcare environment.

Training and Education for Nurses

Given the evolving nature of healthcare practices, continuous training and education are essential for nurses. Staying informed about the latest assessment tools and techniques ensures the delivery of high-quality care aligned with current standards.

Integration of Technology in Functional Assessment

The integration of technology in functional assessment is a growing trend. Digital tools and electronic health records streamline the assessment process , making it more efficient and improving the accuracy of data collection.

Future Trends in Functional Assessment

The future holds promising advancements in assessment tools and methodologies. Ongoing research and innovations aim to refine functional assessment practices, contributing to more accurate and personalized patient care.

Ensuring Ethical Considerations

Ethical considerations, including privacy and confidentiality, are paramount in functional assessment. Nurses must adhere to ethical standards, ensuring patient information is handled with utmost care and obtaining informed consent before assessments.

Patient and Family Involvement

Incorporating patient input and involving families in the functional assessment process are crucial components. Understanding the patient’s perspective and having family support contribute to a more holistic approach to care .

Measuring Success in Functional Assessment

Success in functional assessment is measured through patient feedback and continuous improvement. Regular assessments of the effectiveness of interventions ensure that care plans are adaptive and responsive to changing patient needs.

In Functional Assessment in Nursing conclusion, functional assessment is integral to nursing care. Accurate evaluations enable the development of personalized care plans, enhance patient safety and independence, and ultimately contribute to improved patient outcomes.

Is functional assessment only for elderly patients?

No, functional assessment applies to patients of all ages, ensuring tailored care plans.

How often should functional assessments be conducted?

Assessment frequency varies but should be regular for effective care planning.

Do all healthcare providers use the same functional assessment tools?

While there are common tools, healthcare providers may use different assessments based on their specialty and patient population.

Please note that this article is for informational purposes only and should not substitute professional medical advice.

slkn

Leave a Reply Cancel reply

Recent articles, 10 importance of psychology in nursing, cultural competence in nursing, developing a nursing care plan for patients with typhoid fever, benefits and elements of primary health care, common cold upper respiratory tract, the uses of microbiology in nursing, download nursing notes pdf, sensory system and sense organs pdf, male and female reproductive system pdf, primary health care nursing notes pdf, nursing assignment on sciatic nerve pdf, nursing assignment on bed sore pdf, case study on appendicitis nursing assignment, study material nurse recruitment exam solved paper pdf – i, child pediatric health nursing notes -bsc nursing, more like this, gifts for nursing home residents, gift ideas for nursing students, crystalloid and colloid: differences and when to use each, how to insert a catheter in a female patient -female catheterization, mental health nursing diagnosis care plan pdf, mid-wifery pdf notes for nursing students, national health programmes in india pdf, reproductive system nursing notes pdf, psychology note nursing pdf, nursingenotes.com.

  • STUDY NOTES
  • SUBJECT NOTES

A Digital Platform For Nursing Study Materials

Latest Articles

Most popular.

© Nursingenotes.com | All rights reserved |

  • Using Product Master Data Management

Default Catalog Assignment

You can assign a catalog to a functional area such as Purchasing. When a catalog is assigned to a functional area, the catalog will act based on the rules you defined for that functional area.

Only one default catalog can be assigned to a functional area. During item creation, if certain operational attributes have specific values, then the item being created is assigned to the catalog assigned to the functional area, and then to the default category for the catalog.

To assign a default catalog:

Create a catalog based on functional area rules.

Create a category and assign it as the default category for this catalog.

Assign the catalog to the chosen functional area. Select the Manage Functional Area Catalogs task in the Setup and Maintenance work area, edit a functional area, then select a catalog name.

Each functional area has specific rules that the catalog must adhere to, so the assignment process may fail if the catalog does not meet the functional area rules.

Some functional areas do not allow the catalog assigned to their area to be changed.

Some functional areas allow the catalog to be changed only if no items are assigned to the categories in the catalog.

For example, if values of the operational attributes Purchased and Internally Transferable have been set to Yes, the item being created will be assigned to the default category of the catalog assigned to the Purchasing functional area.

Related Topics

  • Catalog Details
  • Catalog Formatting

IMAGES

  1. How To Use A Functional Assessment Like The Experts (PRO Version

    what is a functional assignment

  2. Functional Analysis Assignment by My Assignment Services in 2020

    what is a functional assignment

  3. Functional Analysis Assignment Help Online

    what is a functional assignment

  4. Functional Analysis Assignment Help Online

    what is a functional assignment

  5. What Is A Functional Assessment Structured Interview

    what is a functional assignment

  6. Functional Behaviour Assessment (FBA)

    what is a functional assignment

VIDEO

  1. Shape Of You

  2. Video Assignment 1: Functional Movement Analysis Video

  3. Functional Activity Analysis Assignment (Hip Joint)

  4. Functional Analysis Assignment SPCE 611

  5. Use Destructuring Assignment to Pass an Object as a Function's Parameters (ES6) freeCodeCamp

  6. GENOME ANNOTATION (Student's Presentation)

COMMENTS

  1. PDF Who Does What? Functional Assignment Challenges and How to ...

    Functional Assignment Process Sector ministries map key ministries' functions at national and sub national deconcentrationline departments and offices Sector ministries identify which functions shall be transferred to sub national administration along with well resources (personnel and finances) Functional mapping Functional review Effecting

  2. Functional assignments

    An important concept that is used to assess the appropriateness of a country's territorial-administrative structure and its functional assignments is the subsidiarity principle. The subsidiarity principle states that public goods and services should be provided by the lowest level of government that can do so efficiently. Adherence to the ...

  3. Functional Programming 101 · GitHub

    In functional programming, everything is a function. Functional programming tries to keep data and behavior separate, and OOP brings those concepts together. "Functional programming [is] a paradigm that forces us to make the complex parts of our system explicit, and that's an important guideline when writing software.".

  4. Programming Assignment: Building a functional program Solution

    Task 1: Build a function-based console log message generator. In this exercise, your task is to code a function named consoleStyler, which accepts four parameters: color. background. fontSize. txt. Inside the body of the consoleStyler () function declaration, you need to do the following: Create a new variable named message, and assign the ...

  5. functional programming

    Immutability (what you call single assignment), simplifies a lot of things because it takes out the "time" variable from your programs. For example, in mathematics if you say. x = y. You can replace x for y, everywhere. In operational programming languages you can't ensure that this equality holds: there is a "time" (state) associated with each ...

  6. Functional Assignment: Some Thoughts on the Evolving Subject

    Simply put, "Functional Assignment" is the process of identifying and allocating responsibilities (Functions), personnel (Functionaries) and resources (Funds) to different tiers of government by applying principles of good management and decentralisation. Substantively, this means: 1.

  7. Functional Assignment

    Functional assignment refers to the annotation of biological function to genetic elements identified during structural annotation and feature curation. In most cases it is not feasible to establish function experimentally for the majority of genome features identified. As such, most annotations are putative and rely upon either:

  8. Intro to Functional Programming: JavaScript Paradigms

    PREVIOUSLY AT. Functional programming is a paradigm of building computer programs using expressions and functions without mutating state and data. By respecting these restrictions, functional programming aims to write code that is clearer to understand and more bug resistant. This is achieved by avoiding using flow-control statements ( for ...

  9. (PDF) Functional Assignment in Multi-Level Government Volume I

    assign ments and other forms of reg ulation (e.g., borrow- ing) t hat make ava ilable fina ncial resou rces to subnationa l government. is may fit wit hin a context of low or wide

  10. Functional programming

    Functional programs do not have assignment statements, that is, the value of a variable in a functional program never changes once defined. This eliminates any chances of side effects because any variable can be replaced with its actual value at any point of execution. So, functional programs are referentially transparent.

  11. Assessing the performance of different approaches for functional and

    Metagenomes can be analysed using different approaches and tools. One of the most important distinctions is the way to perform taxonomic and functional assignment, choosing between the use of assembly algorithms or the direct analysis of raw sequence reads instead by homology searching, k-mer analysys, or detection of marker genes. Many instances of each approach can be found in the literature ...

  12. FUNCTIONAL CLASSIFICATION

    Other--Not elsewhere classified. This category is to be used for: (1) Positions with highly specialized activities which are not covered in any of the categories; (2) Positions of such generalized nature that a primary function cannot be identified; and (3) Trainee positions for which functional assignments have not been made. 06/01/1972

  13. Functional assignment of multiple catabolic pathways for d -apiose

    Our functional assignment strategy is based on (1) identifying the ligand for a SBP of an ABC, TRAP, or TCT transport system (Fig. 1c) and (2) discovering the ligand's catabolic pathway by using ...

  14. Functional Designation Part 1: Choosing a New Career Path

    Functional Designation Part 1: Choosing a New Career Path. By: CoCMD & PLT LDR. This is the first in a multi-part series about officers who have chosen to transition into a functional area. These pieces will discuss some of the motivations behind transitioning to a functional area and the opportunities associated with such a move.

  15. Global assignment

    Finally, functional assignments resemble technical assignments but differ in one important respect. Technical assignments do not require the assignee to interact extensively with employees in the host country but this is a requirement of functional assignments and for this reason assignees are often prepared through cross-cultural training.

  16. Chapter 2: The Methodology of Functional Assessment

    Abstract: This chapter defines functional assessment and describes why this approach is useful. It focuses on the methodology of functional assessment, including surveys, rating scales, observations, and experimental approaches to determine the function of behavior. The step-by-step process of functional assessment and ethical considerations ...

  17. PDF ASSIGNMENT OF FUNCTIONAL CATEGORIES

    ASSIGNMENT OF FUNCTIONAL CATEGORIES. Employee's Name: Job Title:Department/Service Assigned: An Assignment of Functional Category is a classification of an employee by their supervisor indicating their level of access to Individually Identifiable Health Information (IIHI) and/or Protected Health Information (PHI). This form must be completed 1 ...

  18. Functional Programming Paradigm

    Functional programming is a programming paradigm in which we try to bind everything in pure mathematical functions style. It is a declarative type of programming style. ... Functional programs do not have assignment statements. If we have to store some value, we define new variables instead. This eliminates any chances of side effects because ...

  19. Assignment

    The Assignment Management System (AMS) is a web application that houses multiple applications in support of officer assignments, enlisted assignments, commander responsibilities, and individual Air Force members. Users have access to a portion of their own personnel data and the ability to use manning tools, volunteer for available assignments, and review career field information using AMS.

  20. Functional Assessment in Nursing: A Cornerstone of Care

    Importance of Functional Assessment in Nursing. Strengths and Weaknesses: Functional assessments offer insights into a patient's abilities and limitations, enabling nurses to create personalized care plans. Risk Mitigation: Understanding mobility and balance limitations helps implement preventive measures, reducing the risk of falls and injuries.

  21. What is the functional form of the assignment operator

    Is there a functional form of the assignment operator? I would like to be able to call assignment with lapply, and if that's a bad idea I'm curious anyways. Edit: This is a toy example, and obviously there are better ways to go about doing this: Let's say I have a list of data.frames, dat, each corresponding to a one run of an experiment.

  22. Functional Form

    Functional form is the mathematical representation or structure of a function. It depicts how variables (response variables and regressors) in a mathematical equation are organized and interrelated. ... In situations where an assignment of the treatment lacks randomness within a subgroup or the distribution of untreated potential outcomes is ...

  23. Default Catalog Assignment

    Assign the catalog to the chosen functional area. Select the Manage Functional Area Catalogs task in the Setup and Maintenance work area, edit a functional area, then select a catalog name. Each functional area has specific rules that the catalog must adhere to, so the assignment process may fail if the catalog does not meet the functional area ...

  24. A direct consumption PO with Account Assignment category K

    Dear Experts, A direct consumption PO with Account Assignment category K was created. A GR was posted in January (closed period now). The user wants to cancel this GRN document for to post two GRNs according to the two vendor invoices. Cancelling the January GRN isn't possible because the period is ...