Question: How to find the unique list of mismatches of reads with the reference genome
0
gravatar for Sama
17 months ago by
Sama50
Sama50 wrote:

Hi,

I have Illumina reads and a reference genome. I aligned reads to the genome and I have .bam and .sam files. I want the list of the mismatches of the reads with the reference genome but if one mismatch happened in multiple reads, I want it to be reported only once. For example if two reads have the mismatch of A->G on position 1000 of the reference genome, I want something like this: G,1000,2

I want the output file to be something like this:

Mismatch,Position,Frequency
G,1000,2
A,3278,7
G,78732,5
T,89783,8
C,87494,8
A,13732,5
...

Is there any tool available for doing that?

alignment next-gen genome • 1.0k views
ADD COMMENTlink modified 10 weeks ago by RamRS20k • written 17 months ago by Sama50

Hi Pierre Lindenbaum,

I read all your documentation and all other posts on biostars! sam2tsv's a nice tool and serves my need. However, I have trouble understanding what each alphabet stands for in Read-Qual column and one important question is is that what does 'M' exactly mean? Match or a mismatch? and if it represents Mismatches, then the first line in the output has T's in both ref and alt. Shouldn't it be a match? I apologize if my questions are too naive. I thinking I'm missing out on a detail here. I would greatly appreciate your help on this.

$ java -jar dist/sam2tsv.jar -A  \
    -r samtools-0.1.18/examples/toy.fa 
      samtools-0.1.18/examples/toy.sam
r001    163 ref 0   T   .   7   T   M
r001    163 ref 1   T   .   8   T   M
r001    163 ref 2   A   .   9   A   M

Thanks in advance!

ADD REPLYlink modified 10 weeks ago • written 11 weeks ago by bioinfo08490

You should use ADD COMMENT/ADD REPLY to add this comment under @Pierre's answer.

ADD REPLYlink written 11 weeks ago by genomax63k
3
gravatar for pfs
17 months ago by
pfs250
USA/Boston
pfs250 wrote:

It looks like you need to implement a variant calling step and then do some data parsing to get your desired out put format. See http://www.htslib.org/workflow/

ADD COMMENTlink written 17 months ago by pfs250
3
gravatar for Pierre Lindenbaum
17 months ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum118k wrote:

using sam2tsv: http://lindenb.github.io/jvarkit/Sam2Tsv.html


   $ java -jar dist/sam2tsv.jar -R ref.fa in.bam | awk '$8!=$5 && ($9=="M" || $9=="X")' | cut -f 3,4,5 | sort | uniq -c


      2 ref2    0   A
      1 ref2    0   C
      1 ref2    0   G
      2 ref2    0   T
      3 ref2    10  A
      2 ref2    10  T
      3 ref2    11  A
      1 ref2    11  C
      1 ref2    11  G
      1 ref2    12  A
      2 ref2    12  C
      2 ref2    12  T
      4 ref2    13  A
      2 ref2    13  C
      3 ref2    14  A
      1 ref2    14  C
      1 ref2    14  G
      1 ref2    14  T
      5 ref2    15  A
      1 ref2    15  T
      1 ref2    16  A
      1 ref2    16  C
      2 ref2    16  G
      2 ref2    16  T
      4 ref2    17  A
      1 ref2    17  C
      1 ref2    17  T
      4 ref2    18  A
      2 ref2    18  G
      3 ref2    19  A
      1 ref2    19  C
      1 ref2    19  G
      1 ref2    19  T
ADD COMMENTlink written 17 months ago by Pierre Lindenbaum118k

Thank you for your reply. I have a question. What are first and third columns?

ADD REPLYlink written 17 months ago by Sama50
1

in the final output ? occurence/chromosome/position/alt

ADD REPLYlink written 17 months ago by Pierre Lindenbaum118k

This is 5 first lines of running your command on my data:

3242056 Escherichia 0   A
3435134 Escherichia 0   C
3169976 Escherichia 0   G
 85 Escherichia 0   N
2952800 Escherichia 0   T

It is weird if the frequency of A in first position is 3242056.

Also the third column numbers range is 0-100 but the reference genome is much longer than 100.

ADD REPLYlink modified 11 weeks ago by RamRS20k • written 17 months ago by Sama50

Also the third column numbers range is 0-100 but the reference genome is much longer than 100.

I wonder if the offsets of the columns in my 'cut' are the correct one, may be I've used the position in the read. Can you please check (i'm away from my tools) with

 java -jar dist/sam2tsv.jar -R ref.fa in.bam | more
ADD REPLYlink written 17 months ago by Pierre Lindenbaum118k

Hi Pierre,

I ran into the following error, which seems to be caused by java version.

$ module load java/jdk1.7.0_25 $ java -jar ./dist/sam2tsv.jar -R ref.fa chr1.bam Exception in thread "main" java.lang.UnsupportedClassVersionError: com/github/lindenb/jvarkit/tools/sam2tsv/Sam2Tsv : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

$ module unload java/jdk1.7.0_25 $ module load java/jdk1.8.0_60 $ java -jar ./dist/sam2tsv.jar -R ref.fa chr1.bam [SEVERE][Sam2Tsv]scan error: java.lang.ArrayIndexOutOfBoundsException: 0 at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.printAln(Sam2Tsv.java:326) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.scan(Sam2Tsv.java:468) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.doWork(Sam2Tsv.java:504) at com.github.lindenb.jvarkit.util.jcommander.Launcher.instanceMain(Launcher.java:1145) at com.github.lindenb.jvarkit.util.jcommander.Launcher.instanceMainWithExit(Launcher.java:1303) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.main(Sam2Tsv.java:528) [SEVERE][Sam2Tsv]0 java.lang.RuntimeException: 0 at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.scan(Sam2Tsv.java:476) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.doWork(Sam2Tsv.java:504) at com.github.lindenb.jvarkit.util.jcommander.Launcher.instanceMain(Launcher.java:1145) at com.github.lindenb.jvarkit.util.jcommander.Launcher.instanceMainWithExit(Launcher.java:1303) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.main(Sam2Tsv.java:528) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.printAln(Sam2Tsv.java:326) at com.github.lindenb.jvarkit.tools.sam2tsv.Sam2Tsv.scan(Sam2Tsv.java:468) ... 4 more

READ_NAME FLAG CHROM READ_POS BASE QUAL REF_POS REF OP

Can you tell me how to fix it?

Thanks a lot in advance.

ADD REPLYlink modified 11 weeks ago by RamRS20k • written 6 months ago by elzedleeu20

can you please try to validate your bam with picard: https://broadinstitute.github.io/picard/command-line-overview.html#ValidateSamFile

otherwise, submit a new issue with a minimal failing bam : https://github.com/lindenb/jvarkit/issues/

ADD REPLYlink written 6 months ago by Pierre Lindenbaum118k

according to ValidateSamFile, the following errors were detected:

' A record is missing a read group'
'ERROR: Read groups is empty'
'Maximum output of [100] errors reached.'

However, i found when i truncated bam/sam with the interval i am interested in, i.e., chr1:101-103, and loaded java/jdk-10.0.1, it works well.

this is a little wired.

ADD REPLYlink modified 11 weeks ago by RamRS20k • written 6 months ago by elzedleeu20

Hi Pierre Lindenbaum,

I read all your documentation and all other posts on biostars! sam2tsv's a nice tool and serves my need. However, I have trouble understanding what each alphabet stands for in Read-Qual column and one important question is is that what does 'M' exactly mean? Match or a mismatch? and if it represents Mismatches, then the first line in the output has T's in both ref and alt. Shouldn't it be a match? I apologize if my questions are too naive. I thinking I'm missing out on a detail here. I would greatly appreciate your help on this.

Thanks!

ADD REPLYlink written 10 weeks ago by bioinfo08490
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1594 users visited in the last hour