Skip to content

Automatic adapter detection detects ~1000x fewer adapter trimmed reads compared to specifying TruSeq adapters manually #673

Description

@pmoris

I encountered a few oddly behaving samples where automatic adapter detection seems to miss the majority of adapters.

Automatic detection finds ~173,660 adapter trimmed reads and retains 41M reads after filtering, whereas providing the TruSeq adapters via --adapter_sequence=AGATCGGAAGAGCACACGTCTGAACTCCAGTCA --adapter_sequence_r2=AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT results in ~66M adapter trimmed reads and only 701,128 reads remain after filtering.

	"command": "fastp --in1 bb_sample_1.hostremoval.fq.gz --in2 bb_sample_2.hostremoval.fq.gz --out1 ./out_bb_sample_1.auto.fq.gz --out2 ./out_bb_sample_2.auto.fq.gz --trim_poly_x --trim_poly_g --thread 2 --json out_bb_sample.auto.json --verbose "

	"summary": {
		"fastp_version": "0.24.0",
		"sequencing": "paired end (150 cycles + 150 cycles)",
		"before_filtering": {
			"total_reads":133570850,
			"total_bases":20035627500,
			"q20_bases":19432311088,
			"q30_bases":18848090065,
			"q20_rate":0.969888,
			"q30_rate":0.940729,
			"read1_mean_length":150,
			"read2_mean_length":150,
			"gc_content":0.869149
		},
		"after_filtering": {
			"total_reads":41267932,
			"total_bases":2978659410,
			"q20_bases":2655644424,
			"q30_bases":2457715637,
			"q20_rate":0.891557,
			"q30_rate":0.825108,
			"read1_mean_length":64,
			"read2_mean_length":79,
			"gc_content":0.67889
		}
	},
	"filtering_result": {
		"passed_filter_reads": 41267932,
		"low_quality_reads": 363662,
		"too_many_N_reads": 388,
		"too_short_reads": 91938868,
		"too_long_reads": 0
	},
	"duplication": {
		"rate": 0.783437
	},
	"insert_size": {
		"peak": 0,
		"unknown": 10500167,
		"histogram": [22827736,69,69,3,11,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,9,2,0,0,5,8,5,2,2,8,6,11,1,5,3,41,82,5,45,7,7,1,15,14,19,34,60,32,60,85,1149,262,242,1028,39190,803,22,10,8,21,73,6,12,12,15,15,11,17,22,15,9,24,12,15,16,28,21,14,14,20,23,36,26,48,22,21,56,26,49,49,110,35,39,73,68,1077,38,27,43,41,106,266,1491,183,44,21,38,30,35,45,269,39,69,125,53,196,276,1450,113,205,116,1410,313,108,798,1073,1982,1707,1009,115,44,34,28,38,33,40,39,43,455,29,41,46,42,29,40,45,36,30,43,54,45,29,53,37,39,41,45,31,42,48,35,28,51,36,34,43,33,70,53,34,31,47,32,31,35,51,47,36,25,45,47,34,46,38,48,33,24,46,51,27,40,35,42,43,50,40,34,51,24,41,40,44,37,63,45,45,54,31,25,38,34,42,41,27,38,42,50,47,35,41,24,31,36,22,35,49,31,39,28,44,42,33,29,37,40,37,38,37,33,36,42,38,36,40,31,36,54,49,40,47,33,44,38,26,49,27,36,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
	},
	"adapter_cutting": {
		"adapter_trimmed_reads": 173660,
		"adapter_trimmed_bases": 7099869,
		"read1_adapter_sequence": "unspecified",
		"read2_adapter_sequence": "unspecified",
		"read1_adapter_counts": {"AGATCGGAAGAGCACACGTCTGAACTCCAGTCACTTGGAATGGTATCT":948, "others":85564},
		"read2_adapter_counts": {"C":2675, "CGATC":1737, "CGCTC":1525, "CGGTC":2003, "CGGTCT":1019, "CGATCGGAA":2310, "CGCTCGGAA":1392, "CGGTCGGAA":1278, "others":72891}
	},
	"polyx_trimming": 	{
		"total_polyx_trimmed_reads": 1131079,
		"polyx_trimmed_reads":{"A": 234071, "T": 83902, "C": 129582, "G": 683524},
		"total_polyx_trimmed_bases": 31474811,
		"polyx_trimmed_bases":{"A": 2042823, "T": 1077599, "C": 1666300, "G": 26688089}
	},

vs

	"command": "fastp --in1 bb_sample_1.hostremoval.fq.gz --in2 bb_sample_2.hostremoval.fq.gz --out1 ./out_bb_sample_1.adapter.fq.gz --out2 ./out_bb_sample_2.adapter.fq.gz --trim_poly_x --trim_poly_g --adapter_sequence=AGATCGGAAGAGCACACGTCTGAACTCCAGTCA --adapter_sequence_r2=AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT --thread 2 --json out_bb_sample.adapter.json --verbose "

	"summary": {
		"fastp_version": "0.24.0",
		"sequencing": "paired end (150 cycles + 150 cycles)",
		"before_filtering": {
			"total_reads":133570850,
			"total_bases":20035627500,
			"q20_bases":19432311088,
			"q30_bases":18848090065,
			"q20_rate":0.969888,
			"q30_rate":0.940729,
			"read1_mean_length":150,
			"read2_mean_length":150,
			"gc_content":0.869149
		},
		"after_filtering": {
			"total_reads":701128,
			"total_bases":54433681,
			"q20_bases":47954426,
			"q30_bases":41785382,
			"q20_rate":0.88097,
			"q30_rate":0.767638,
			"read1_mean_length":69,
			"read2_mean_length":85,
			"gc_content":0.63706
		}
	},
	"filtering_result": {
		"passed_filter_reads": 701128,
		"low_quality_reads": 329342,
		"too_many_N_reads": 8,
		"too_short_reads": 132540372,
		"too_long_reads": 0
	},
	"duplication": {
		"rate": 0.783437
	},
	"insert_size": {
		"peak": 0,
		"unknown": 10500167,
		"histogram": [22827736,69,69,3,11,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,9,2,0,0,5,8,5,2,2,8,6,11,1,5,3,41,82,5,45,7,7,1,15,14,19,34,60,32,60,85,1149,262,242,1028,39190,803,22,10,8,21,73,6,12,12,15,15,11,17,22,15,9,24,12,15,16,28,21,14,14,20,23,36,26,48,22,21,56,26,49,49,110,35,39,73,68,1077,38,27,43,41,106,266,1491,183,44,21,38,30,35,45,269,39,69,125,53,196,276,1450,113,205,116,1410,313,108,798,1073,1982,1707,1009,115,44,34,28,38,33,40,39,43,455,29,41,46,42,29,40,45,36,30,43,54,45,29,53,37,39,41,45,31,42,48,35,28,51,36,34,43,33,70,53,34,31,47,32,31,35,51,47,36,25,45,47,34,46,38,48,33,24,46,51,27,40,35,42,43,50,40,34,51,24,41,40,44,37,63,45,45,54,31,25,38,34,42,41,27,38,42,50,47,35,41,24,31,36,22,35,49,31,39,28,44,42,33,29,37,40,37,38,37,33,36,42,38,36,40,31,36,54,49,40,47,33,44,38,26,49,27,36,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
	},
	"adapter_cutting": {
		"adapter_trimmed_reads": 66049042,
		"adapter_trimmed_bases": 2115760613,
		"read1_adapter_sequence": "AGATCGGAAGAGCACACGTCTGAACTCCAGTCA",
		"read2_adapter_sequence": "AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT",
		"read1_adapter_counts": {"AGATCGGAAGAGCACACGTCTGAACTCCAGTC":65820410, "others":136992},
		"read2_adapter_counts": {"C":2675, "CGATC":1737, "CGCTC":1525, "CGGTC":2003, "CGGTCT":1019, "CGATCGGAA":2581, "CGCTCGGAA":1392, "CGGTCGGAA":1278, "AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTG":1120, "others":75992}
	},
	"polyx_trimming": 	{
		"total_polyx_trimmed_reads": 776022,
		"polyx_trimmed_reads":{"A": 233968, "T": 71893, "C": 129568, "G": 340593},
		"total_polyx_trimmed_bases": 26910713,
		"polyx_trimmed_bases":{"A": 2041943, "T": 962832, "C": 1666061, "G": 22239877}
	},

I have no idea what to make of this, so any help would be much appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions