The Bone Collector

The film begins in late 1999. Tetraplegic forensics expert Lincoln Rhyme (Denzel Washington) and a patrol cop, Amelia Donaghy (Angelina Jolie), team up to solve a string of murders connected to a serial killer by his signature: a single shard of bone removed from each of the victims. Rhyme was paralyzed from the neck down in an earlier accident and is bed-bound and completely reliant on machines and his nurse Thelma (Queen Latifah).
The killer poses as a New York City taxi driver and abducts and kills those who get in his taxi. The first victims are a married couple named Alan and Lindsay Rubin that the killer picked up at the airport. Amelia finds Alan's body buried in a Civil War-era railroad bed. She also finds a collection of clues including a pile of piece-ground oyster shells, which eventually leads Amelia - now working with Rhyme - to Alan's wife, and a scrap of paper. The detectives find Mrs. Rubin, too late, at a steam junction in a below-ground services area of a building in the Financial District, secured using old antique handcuffs or shackles at the mouth of a pipe which emits steam. She has been scalded to death from the steam. The killer has also removed a bit of flesh and bone from her arm. Amelia finds another scrap of paper at the scene.
The killer then abducts an NYU student, who is taken to a derelict slaughterhouse where he is tied to a pole. Part of his thigh bone is surgically removed, and he is left for rats to feed on. Amelia and Rhyme, using the clues left by the killer at the scene of Lindsay Rubin's death, find the victim dead. Again, the killer has removed a piece of the victim's bone. Amelia is able to collect the evidence, including another scrap of paper. The pressure of the tense investigation and bureaucratic challenges to both Amelia's and Rhyme's involvement with the case are having serious impacts on Rhyme's health and stability.
After piecing together the message the killer was sending using the scraps of paper, Amelia and Rhyme are led to an old crime novel, whose crimes the killer was replicating. This leads them to his next victims, a grandfather and granddaughter tied to a pier as the tide rises. The girl is the first victim they manage to save, but her grandfather dies. At the scene, Amelia finds another bone, part of an old police badge, and an old subway map. These clues, and an earlier clue left by the killer at the scene of Mrs. Rubin's death (asbestos) lead Amelia to an abandoned subway station, in which Amelia sees some numbers which have been tampered with to spell out Rhyme's police badge number. Amelia then figures out that the killer is after Rhyme.
The killer arrives at Rhyme's house, and after killing Rhyme's nurse, Thelma, and Captain Howard Cheney (Michael Rooker), it is revealed that he is the medical technician who cares for Rhyme's medical equipment, Richard Thompson (Leland Orser). Richard's real name is Marcus Andrews. An ex-forensic cop whom Rhyme's testimony helped convict of planting false evidence at crime scenes, Marcus intends to exact his revenge. Rhyme manages to crush Marcus's right hand by suddenly dropping his bed horizontally, and in the struggle to free himself, Marcus pulls Rhyme with him and they both collapse to the floor. Rhyme then manages to bite Marcus in the neck, causing massive bleeding. Marcus once again manages to free himself, grabbing his knife. As Marcus raises the knife for a killing blow, Amelia suddenly arrives at the apartment and shoots Marcus who falls down dead.
The film ends at a Christmas celebration at Rhyme's apartment. Rhyme, having given up his plans to commit suicide, faces his sister and niece coming to visit him along with Amelia and his other colleagues on Christmas Eve. It is implied that Rhyme and Amelia have a relationship.

Question: Who kills Marcus?
Answer: Amelia