Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

trio and family expr results #124

Open
luceamso opened this issue Mar 13, 2022 · 6 comments
Open

trio and family expr results #124

luceamso opened this issue Mar 13, 2022 · 6 comments

Comments

@luceamso
Copy link

Hi Brent,

I encountered the following issues and would like to ask you for help.
I ran --family-expr because I considered fam1(unaffected parents and 3 affected kids) as one cohort.
When using the --family-epxr, no any recessive variants were observed.
However, it was found when the trio vcf file(cut fam1 to trio) was input to check other conditions.

So I tested expression with following:
1)--family-expr with trio vcf file
2)--trio with fam1's vcf file

And the recessive variants were extracted from each.
Only in --family-expr with fam1's vcf file, the recessive variants doesn't appear.
(I also applied the same filter condition to all expressions.)

Thanks for your time,
Seoon.

--------------------------------PED-------------------------------------
#family_ID sample_ID paternal_ID maternal_ID sex affection
fam1 F7 0 0 1 1
fam1 F9 0 0 2 1
fam1 F8 F7 F9 2 2
fam1 F14 F7 F9 2 2
fam1 F15 F7 F9 1 2
fam2 F10 0 0 1 1
fam2 F11 F10 0 1 1
fam2 F16 F10 0 2 1

--------------------------------codes-------------------------------------
1)--family-epxr
slivar expr --js slivar-functions.js --vcf cs_affected_fam1_snpanno.vcf.gz --ped cs_two_fam.ped --info "(INFO['gnomAD_r2.1.1_merged_all'] < 0.01 || INFO['gnomAD_r2.1.1_merged_all'] == '.') && INFO.AC >1 && (INFO['Func.refGeneWithVer'] == 'exonic' || INFO['Func.refGeneWithVer'] == 'splicing') && INFO['ExonicFunc.refGeneWithVer'] != 'unknown' && variant.FILTER == 'PASS' && variant.ALT[0] != '*'" --family-expr "recessive:fam.every(segregating_recessive)"

2)--trio
slivar expr --js slivar-functions.js --vcf cs_affected_fam1_snpanno.vcf.gz --ped cs_two_fam.ped--info "(INFO['gnomAD_r2.1.1_merged_all'] < 0.01 || INFO['gnomAD_r2.1.1_merged_all'] == '.') && INFO.AC >1 && (INFO['Func.refGeneWithVer'] == 'exonic' || INFO['Func.refGeneWithVer'] == 'splicing') && INFO['ExonicFunc.refGeneWithVer'] != 'unknown' && variant.FILTER == 'PASS' && variant.ALT[0] != '*'" --trio "recessive:recessive(kid, mom, dad)"

@brentp
Copy link
Owner

brentp commented Mar 13, 2022

the --family-expr would require all the affected kids to share the same recessive variant whereas --trio would find variants where each kid individually had a recessive variant.
The intersection of the 3 trio expressions (where all 3 kids have the same variant) should match the recessive for the --family-expr -- that is, there should be no intersection. If that's not the case, you could paste the genotypes and variant and I can have a look.

@luceamso
Copy link
Author

Thanks for getting back to me so quickly.

No, you're right.
I thought --family-expr also showed every recessive variants.
Thanks very much.

@luceamso
Copy link
Author

luceamso commented May 9, 2022

Hi,
--family-expr require variants shared by all the affected kids, but my output doesn't. It shows that all the affected kids do not share the variant, but the slivar does.
I used the following codes:

--family-expr 'rec:fam.every(segregating_recessive) && (INFO["Func.refGeneWithVer"] == "splicing" || INFO["Func.refGeneWithVer"] == "exonic" || INFO["Func.refGeneWithVer"].match("x3bsplicing") != null)' \
--family-expr 'a:fam.every(function(s) {return (s.het || s.hom_ref) && s.GQ >= 20 }) && fam.some(function(s) { return s.het && s.affected }) && (INFO["Func.refGeneWithVer"] == "splicing" || INFO["Func.refGeneWithVer"].match("x3bsplicing") != null)' \
--family-expr 'b:fam.every(function(s) {return (s.het || s.hom_ref) && s.GQ >= 20 }) && fam.some(function(s) { return s.het && s.affected }) && (INFO["ExonicFunc.refGeneWithVer"]  == "stopgain" || INFO["ExonicFunc.refGeneWithVer"] == "frameshift_deletion" || INFO["ExonicFunc.refGeneWithVer"] == "frameshift_insertion")' \
--family-expr 'c:fam.every(function(s) {return (s.het || s.hom_ref) && s.GQ >= 20 }) && fam.some(function(s) { return s.het && s.affected }) && (INFO["Func.refGeneWithVer"] == "exonic" && (INFO.MetaSVM_pred == "D" || INFO.REVEL_rankscore >= 0.75))' \
--family-expr 'd:fam.every(function(s) {return (s.het || s.hom_ref) && s.GQ >= 20 }) && fam.some(function(s) { return s.het && s.affected }) && (INFO["ExonicFunc.refGeneWithVer"] == "nonframeshift_deletion" || INFO["ExonicFunc.refGeneWithVer"] == "nonframeshift_insertion")' \
--family-expr 'e:fam.every(function(s) {return (s.het || s.hom_ref) && s.GQ >= 20 }) && fam.some(function(s) { return s.het && s.affected }) && (INFO["Func.refGeneWithVer"] == "intronic" && (INFO.spliceAI_DS_AG > 0.5 || INFO.spliceAI_DS_AL > 0.5 || INFO.spliceAI_DS_DG > 0.5 || INFO.spliceAI_DS_DL > 0.5))' \

Could you please look at the attachment?
example.txt

@luceamso luceamso reopened this May 9, 2022
@brentp
Copy link
Owner

brentp commented May 9, 2022

can you show a single expression that doesn't work along with the family structure?
the best is a VCF file with a single variant and header along with the family/ped and a single expression.

@luceamso
Copy link
Author

luceamso commented May 10, 2022

cs_two.ped.txt
sample.txt

Here's the files. Thank you so much!
And I know I can use attributes of FORMAT when using trio.
Can't it be applied to sample in family?

@luceamso
Copy link
Author

Hi, Brent
Have you checked the file? Did you find any errors?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants