Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • zcm2403
    Junior Member
    • Dec 2014
    • 9

    ion torrent proton short reads contamination

    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!
    Attached Files
  • r.rosati
    Member
    • Aug 2015
    • 95

    #2
    It might be spurious amplification... have you considered extracting those short-length reads from the BAM file, i.e. with a Python script, and see where they map?

    Comment

    • r.rosati
      Member
      • Aug 2015
      • 95

      #3
      ...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:

      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})
      See exactly at which nucleotide the peak is, and then check if there is any similarity within the most common sequences...

      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

      • zcm2403
        Junior Member
        • Dec 2014
        • 9

        #4
        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

        ad_right_rmr

        Collapse

        News

        Collapse

        Topics Statistics Last Post
        Started by SEQadmin2, 06-05-2026, 10:09 AM
        0 responses
        14 views
        0 reactions
        Last Post SEQadmin2  
        Started by SEQadmin2, 06-04-2026, 08:59 AM
        0 responses
        26 views
        0 reactions
        Last Post SEQadmin2  
        Started by SEQadmin2, 06-02-2026, 12:03 PM
        0 responses
        33 views
        0 reactions
        Last Post SEQadmin2  
        Started by SEQadmin2, 06-02-2026, 11:40 AM
        0 responses
        23 views
        0 reactions
        Last Post SEQadmin2  
        Working...