i had ran a PI chip yesterday.And today i found that there was something wrong in the report.Just as shown in the pdf file,a short reads-about 30 bps was mixed into the final library.could anybody give me some suggestion about the origin of the short reads.Thanks!
Unconfigured Ad
Collapse
X
-
...for example, these are (humble) Python 3 scripts that use pysam, pandas and plotly:
first I would check the exact position of the short reads peak:
See exactly at which nucleotide the peak is, and then check if there is any similarity within the most common sequences...Code:import pysam import pandas as pd from plotly.offline import plot import plotly.graph_objs as go bamfiles = ['IonXpress_003.bam', 'IonXpress_004.bam', 'IonXpress_007.bam', 'IonXpress_005.bam' ] # length_data will hold data counts for every bam file length_data = [] # collect sequence length counts for file in bamfiles: print("Reading file: " + file) bam = pysam.AlignmentFile(file, "rb") selected = bam.fetch() # alen = length of the aligned reference segment # qlen = length of the aligned read segment # rlen = length of the aligned read segment, including soft-clipped bases reads_xlen = [read.alen for read in selected] counts = [(i, reads_xlen.count(i)) for i in range(min(reads_xlen), max(reads_xlen))] length_data.append(pd.DataFrame(counts)) # create traces data = [go.Scatter(x=bamdata[0], y=bamdata[1], mode = 'lines', name=bamfiles[i]) for i, bamdata in enumerate(length_data)] # plot data scatterplot = plot({'data': data})
Code:import pysam # choose a file that contains the peak, select the peak position file = 'IonXpress_004.bam' peakpos = 29 # let's say the peak was at 29 bases # retrieve all sequences from reads with the alignment length you specified bam = pysam.AlignmentFile(file, "rb") selected = bam.fetch() reads = [read for read in selected if read.alen == peakpos] reads_seq = [read.seq for read in reads] # you can count them print("Number of sequences retrieved:", len(reads_seq)) # see how many different entries you have entries = set(reads_seq) print("Number of different entries:", len(entries)) # categorize them cat_entries = [(entry, reads_seq.count(entry)) for entry in entries] cat_entries.sort(key = lambda x:x[1]) # print the 20 most common sequences print('\nMost common sequences:') print('[hits] sequence') for i in range(20): print('[{0}] {1}'.format(cat_entries[i][1], cat_entries[i][0]))Last edited by r.rosati; 08-23-2016, 12:20 PM.
Comment
-
Thanks for your help!I had send the bam files to the technical support.His anwser was that the short reads were primer dimers.He suggested us to optimize the experiment protocal.So we will improve the experiment pipeline and run one sample on the PGM to test the propose!
Comment
Latest Articles
Collapse
-
by SEQadmin2
Tumors contain complex mixtures of cell populations that evolve in response to treatment and host-specific factors. Tissue biopsies provide only static snapshots of a tumor’s state. But what if we could follow that evolution over time using a minimally invasive technique?
Liquid biopsies can detect tumor-derived material circulating in the bloodstream, providing a way to study treatment response, detect emerging resistance, and discover new biomarkers. Circulating...-
Channel: Articles
10-14-2026, 09:55 AM -
ad_right_rmr
Collapse
News
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Genome Sequencing Reveals Large, Repeat-Rich DNA in Trapdoor Spider Named for Stephen Colbert
by SEQadmin2
Started by SEQadmin2, 10-28-2026, 09:57 AM
|
0 responses
22 views
0 reactions
|
Last Post
by SEQadmin2
10-28-2026, 09:57 AM
|
||
|
Started by SEQadmin2, 10-28-2026, 09:51 AM
|
0 responses
14 views
0 reactions
|
Last Post
by SEQadmin2
10-28-2026, 09:51 AM
|
||
|
Started by SEQadmin2, 10-22-2026, 11:13 AM
|
0 responses
67 views
0 reactions
|
Last Post
by SEQadmin2
10-22-2026, 11:13 AM
|
||
|
Started by SEQadmin2, 10-22-2026, 10:48 AM
|
0 responses
47 views
0 reactions
|
Last Post
by SEQadmin2
10-22-2026, 10:48 AM
|
Comment