Skip to content

Commit

Permalink
Merge pull request #44 from rust-bio/update_rust_htslib
Browse files Browse the repository at this point in the history
closes #43
  • Loading branch information
dlaehnemann authored Feb 28, 2020
2 parents 133caff + ab57edb commit d2a7750
Show file tree
Hide file tree
Showing 11 changed files with 75 additions and 62 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ readme = "README.md"


[dependencies]
bio = "0.27"
bio = "0.30"
clap = { version = "2.31", features = ["yaml", "color", "suggestions"]}
indicatif = "0.11"
itertools = "0.6"
log = "0.4.6"
fern = "0.5.7"
rust-htslib = "0.24"
rust-htslib = "0.26"
csv = "1.0.2"
rustc-serialize = "0.3"
quick-error = "1.2"
Expand Down
8 changes: 6 additions & 2 deletions src/bam/call_consensus_reads/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ mod pipeline;
use log::info;
use pipeline::CallConsensusRead;
use rust_htslib::bam;
use rust_htslib::bam::{Header, Read};
use rust_htslib::bam::{Format, Header, Read};
use std::error::Error;

pub fn call_consensus_reads_from_paths(
Expand All @@ -16,7 +16,11 @@ pub fn call_consensus_reads_from_paths(
info!("Reading input files:\n {}", bam_in);
info!("Writing output to:\n {}", bam_out);
let bam_reader = bam::Reader::from_path(bam_in)?;
let bam_writer = bam::Writer::from_path(bam_out, &Header::from_template(bam_reader.header()))?;
let bam_writer = bam::Writer::from_path(
bam_out,
&Header::from_template(bam_reader.header()),
Format::BAM,
)?;
CallConsensusRead::new(bam_reader, bam_writer, seq_dist, verbose_read_names)
.call_consensus_reads()
}
6 changes: 3 additions & 3 deletions src/bam/call_consensus_reads/pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ impl CallConsensusRead {
Some(record_pair) => {
//For right record save end position and duplicate group ID
group_end_idx
.entry(record.cigar_cached().unwrap().end_pos()? - 1)
.entry(record.cigar_cached().unwrap().end_pos() - 1)
.or_insert_with(HashSet::new)
.insert(duplicate_id.integer());
match record_pair {
Expand All @@ -86,7 +86,7 @@ impl CallConsensusRead {
if !record.is_paired() || record.is_mate_unmapped() {
//If right or single record save end position and duplicate group ID
group_end_idx
.entry(record.cigar_cached().unwrap().end_pos()? - 1)
.entry(record.cigar_cached().unwrap().end_pos() - 1)
.or_insert_with(HashSet::new)
.insert(duplicate_id.integer());
record_storage.insert(
Expand Down Expand Up @@ -314,7 +314,7 @@ pub fn calc_consensus_complete_groups(
}

fn calc_overlap(l_rec: &bam::Record, r_rec: &bam::Record) -> Result<i32, Box<dyn Error>> {
let l_end_pos = l_rec.cigar_cached().unwrap().end_pos()?;
let l_end_pos = l_rec.cigar_cached().unwrap().end_pos();
let r_start_pos = r_rec.pos();
let l_softclips = count_softclips(l_rec.cigar_cached().unwrap().into_iter().rev())?;
let r_softclips = count_softclips(r_rec.cigar_cached().unwrap().into_iter())?;
Expand Down
18 changes: 8 additions & 10 deletions src/bcf/annotate_dgidb.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use itertools::Itertools;
use regex::Regex;
use reqwest;
use rust_htslib::bcf;
use rust_htslib::bcf::Read;
use rust_htslib::bcf::{Format, Read};
use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet};
use std::error::Error;
Expand Down Expand Up @@ -97,19 +97,16 @@ fn collect_genes(vcf_path: &str) -> Result<HashSet<String>, Box<dyn Error>> {
Ok(total_genes)
}

//TODO Remove split by ',' when updating to latest htslib release
fn extract_genes<'a>(
rec: &'a mut bcf::Record,
) -> Result<Option<impl Iterator<Item = String> + 'a>, Box<dyn Error>> {
let annotation = rec.info("ANN".as_bytes()).string()?;
match annotation {
Some(transcripts) => Ok(Some(transcripts[0].split(|c| *c == b',').map(
|transcript| {
str::from_utf8(transcript.split(|c| *c == b'|').nth(3).unwrap())
.unwrap()
.to_owned()
},
))),
Some(transcripts) => Ok(Some(transcripts.into_iter().map(|transcript| {
str::from_utf8(transcript.split(|c| *c == b'|').nth(3).unwrap())
.unwrap()
.to_owned()
}))),
None => Ok(None),
}
}
Expand All @@ -122,7 +119,7 @@ fn modify_vcf_entries(
let mut reader = bcf::Reader::from_path(vcf_path)?;
let mut header = bcf::header::Header::from_template(reader.header());
header.push_record(format!("##INFO=<ID={},Number=.,Type=String,Description=\"Combination of gene, drug, interaction types extracted from dgiDB. Each combination is pipe-seperated annotated as GENE|DRUG|TYPE\">", field_name).as_bytes());
let mut writer = bcf::Writer::from_stdout(&header, true, true)?;
let mut writer = bcf::Writer::from_stdout(&header, true, Format::VCF)?;
match gene_drug_interactions_opt {
None => {
for result in reader.records() {
Expand All @@ -137,6 +134,7 @@ fn modify_vcf_entries(
writer.translate(&mut rec);
let genes = extract_genes(&mut rec)?.map(|genes| genes.collect_vec());
if let Some(mut genes) = genes {
genes.sort();
genes.dedup();
let field_entries = build_dgidb_field(&gene_drug_interactions, genes)?;
let field_entries: Vec<&[u8]> =
Expand Down
6 changes: 3 additions & 3 deletions src/bcf/baf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
use itertools::repeat_n;
use itertools::Itertools;
use rust_htslib::bcf;
use rust_htslib::bcf::Read;
use rust_htslib::prelude::*;
use rust_htslib::bcf::record::Numeric;
use rust_htslib::bcf::{Format, Read};
use std::error::Error;
use std::f32;

Expand All @@ -19,7 +19,7 @@ pub fn calculate_baf() -> Result<(), Box<dyn Error>> {
let mut header = bcf::Header::from_template(reader.header());
header.push_record(b"##FORMAT=<ID=BAF,Number=A,Type=Float,Description=\"b-allele frequency\">");

let mut writer = bcf::Writer::from_stdout(&header, false, false)?;
let mut writer = bcf::Writer::from_stdout(&header, false, Format::BCF)?;

for record in reader.records() {
let mut record = record?;
Expand Down
40 changes: 25 additions & 15 deletions src/bcf/fix_iupac_alleles.rs
Original file line number Diff line number Diff line change
@@ -1,35 +1,45 @@
use std::error::Error;

use itertools::Itertools;
use bio::alphabets::dna::n_alphabet;
use rust_htslib::bcf::{self, Read};
use itertools::Itertools;
use rust_htslib::bcf::{self, Format, Read};

pub fn fix_iupac_alleles() -> Result<(), Box<dyn Error>> {
let mut inbcf = bcf::Reader::from_stdin()?;
let mut outbcf = bcf::Writer::from_stdout(&bcf::Header::from_template(inbcf.header()), false, false)?;
let mut outbcf = bcf::Writer::from_stdout(
&bcf::Header::from_template(inbcf.header()),
false,
Format::BCF,
)?;
let valid_alphabet = n_alphabet();

for res in inbcf.records() {
let mut rec = res?;

let alleles = rec.alleles();
if !alleles.iter().all(|allele| valid_alphabet.is_word(*allele)) {
let fixed = alleles.into_iter().map(|allele| {
let fixed = allele.into_iter().map(|base| {
if valid_alphabet.is_word(&[*base]) {
*base
} else {
b'N'
}
}).collect_vec();
fixed
}).collect_vec();
let fixed = alleles
.into_iter()
.map(|allele| {
let fixed = allele
.into_iter()
.map(|base| {
if valid_alphabet.is_word(&[*base]) {
*base
} else {
b'N'
}
})
.collect_vec();
fixed
})
.collect_vec();

rec.set_alleles(&fixed.iter().map(|allele| allele.as_slice()).collect_vec())?;
}

outbcf.write(&rec)?;
}

Ok(())
}
}
26 changes: 12 additions & 14 deletions src/bcf/match_variants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use itertools::Itertools;
use log::{info, warn};
use quick_error::quick_error;
use rust_htslib::bcf;
use rust_htslib::bcf::Read;
use rust_htslib::bcf::{Format, Read};
use std::collections::{btree_map, BTreeMap, HashMap};
use std::error::Error;
use std::str;
Expand All @@ -29,12 +29,11 @@ impl VarIndex {
let mut i = 0;
let mut rec = reader.empty_record();
loop {
if let Err(e) = reader.read(&mut rec) {
if e.is_eof() {
break;
}
return Err(Box::new(e));
}
match reader.read(&mut rec) {
Ok(true) => (),
Ok(false) => break,
Err(e) => return Err(Box::new(e)),
};
if let Some(rid) = rec.rid() {
let chrom = reader.header().rid2name(rid)?;
let recs = inner.entry(chrom.to_owned()).or_insert(BTreeMap::new());
Expand Down Expand Up @@ -74,18 +73,17 @@ pub fn match_variants(
alternative allele separately). For indels, matching is fuzzy: distance of centres <= {}, difference of \
lengths <= {}\">", max_dist, max_len_diff).as_bytes()
);
let mut outbcf = bcf::Writer::from_path(&"-", &header, false, false)?;
let mut outbcf = bcf::Writer::from_path(&"-", &header, false, Format::BCF)?;
let index = VarIndex::new(bcf::Reader::from_path(matchbcf)?, max_dist)?;

let mut rec = inbcf.empty_record();
let mut i = 0;
loop {
if let Err(e) = inbcf.read(&mut rec) {
if e.is_eof() {
break;
}
return Err(Box::new(e));
}
match inbcf.read(&mut rec) {
Ok(true) => (),
Ok(false) => break,
Err(e) => return Err(Box::new(e)),
};
outbcf.translate(&mut rec);

if let Some(rid) = rec.rid() {
Expand Down
2 changes: 1 addition & 1 deletion src/bcf/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! Tools that work on VCF and BCF files.
pub mod annotate_dgidb;
pub mod baf;
pub mod fix_iupac_alleles;
pub mod match_variants;
pub mod to_txt;
pub mod fix_iupac_alleles;
13 changes: 5 additions & 8 deletions src/bcf/to_txt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,11 @@ pub fn to_txt(
writer.newline()?;
let mut rec = reader.empty_record();
loop {
if let Err(e) = reader.read(&mut rec) {
if e.is_eof() {
break;
} else {
return Err(Box::new(e));
}
}

match reader.read(&mut rec) {
Ok(true) => (),
Ok(false) => break,
Err(e) => return Err(Box::new(e)),
};
let alleles = rec
.alleles()
.into_iter()
Expand Down
2 changes: 1 addition & 1 deletion tests/expected/annotate_dgidb_test.vcf
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,4 @@
##INFO=<ID=dbNSFP_M_CAP_score,Number=.,Type=Float,Description="Field 'M-CAP_score' from dbNSFP">
##INFO=<ID=dgiDB_drugs,Number=.,Type=String,Description="Combination of gene, drug, interaction types extracted from dgiDB. Each combination is pipe-seperated annotated as GENE|DRUG|TYPE">
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT normal tumor
8 27461737 . C G . . SVLEN=.;PROB_SOMATIC_NORMAL=18.3288;PROB_ABSENT=987.672;PROB_GERMLINE_HET=349.144;PROB_ARTIFACT=272.885;PROB_SOMATIC_TUMOR_MEDIUM=0.168458;PROB_SOMATIC_TUMOR_HIGH=16.3168;PROB_SOMATIC_TUMOR_LOW=59.5167;PROB_GERMLINE_HOM=5489.1;ANN=G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000240132.7|protein_coding|7/7|c.1437G>C|p.Lys479Asn|1601/1735|1437/1545|479/514||,G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000407991.2|protein_coding|7/7|c.1482G>C|p.Lys494Asn|2091/4067|1482/1590|494/529||,G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000520933.7|protein_coding|7/7|c.1416G>C|p.Lys472Asn|1858/2497|1416/1524|472/507||,G|3_prime_UTR_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000523695.5|nonsense_mediated_decay|7/7|c.*884G>C|||||2108|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000346049.9|protein_coding||c.*3228C>G|||||2351|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000397501.5|protein_coding||c.*3228C>G|||||2347|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000517339.5|protein_coding||c.*3228C>G|||||2351|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000522245.1|retained_intron||n.*3263C>G|||||3263|,G|downstream_gene_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000522008.1|retained_intron||n.*1891G>C|||||1891|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000420218.3|protein_coding||c.*3228C>G|||||2346|,G|downstream_gene_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000637241.1|nonsense_mediated_decay||c.*7916G>C|||||1654|,G|non_coding_transcript_exon_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000520600.1|retained_intron|2/2|n.307G>C||||||;dbNSFP_DEOGEN2_score=0.805964,.,.;dbNSFP_Ensembl_proteinid=ENSP00000385026,ENSP00000429616,ENSP00000240132;dbNSFP_Ensembl_transcriptid=ENST00000407991,ENST00000520933,ENST00000240132;dbNSFP_FATHMM_score=-0.7,.,-0.7;dbNSFP_LRT_score=0;dbNSFP_M_CAP_score=0.225545;dbNSFP_MPC_score=0.77049,.,.;dbNSFP_MVP_score=0.925048,0.925048,0.925048;dbNSFP_MetaLR_score=0.5717;dbNSFP_MetaSVM_score=0.1915;dbNSFP_MutPred_score=0.803;dbNSFP_MutationAssessor_score=3.385,.,.;dbNSFP_MutationTaster_score=0.999992,0.999992,0.999992;dbNSFP_PROVEAN_score=-4.7,.,-4.7;dbNSFP_Polyphen2_HDIV_score=0.972,.,.;dbNSFP_Polyphen2_HVAR_score=0.968,.,.;dbNSFP_PrimateAI_score=0.582399;dbNSFP_REVEL_score=0.629;dbNSFP_SIFT4G_score=0.011,0.01,0.01;dbNSFP_SIFT_score=0.001,.,0;dbNSFP_Uniprot_acc=Q15822,A0A0X1KG79,Q15822-2;dbNSFP_Uniprot_entry=ACHA2_HUMAN,A0A0X1KG79_HUMAN,ACHA2_HUMAN;dbNSFP_VEST4_score=0.431,0.426,0.641;dgiDB_drugs=CHRNA2|METOCURINE IODIDE|antagonist,CHRNA2|GALLAMINE TRIETHIODIDE|antagonist,CHRNA2|MECAMYLAMINE HYDROCHLORIDE|inhibitor,CHRNA2|PROCAINE|antagonist,CHRNA2|ATRACURIUM BESYLATE|inhibitor,CHRNA2|DOXACURIUM CHLORIDE|antagonist,CHRNA2|TUBOCURARINE|antagonist,CHRNA2|MIVACURIUM|antagonist,CHRNA2|DECAMETHONIUM|antagonist,CHRNA2|DECAMETHONIUM|partial agonist,CHRNA2|METOCURINE|antagonist,CHRNA2|PIPECURONIUM|antagonist,CHRNA2|EPIBATIDINE|agonist,CHRNA2|CP-601927|agonist,CHRNA2|HEXAMETHONIUM|channel blocker,CHRNA2|ATRACURIUM|.,CHRNA2|CISATRACURIUM BESYLATE|.,CHRNA2|DOXACURIUM|.,CHRNA2|CARBACHOL|antagonist,CHRNA2|ROCURONIUM|antagonist,CHRNA2|PANCURONIUM|.,CHRNA2|VECURONIUM|antagonist,CHRNA2|GANTACURIUM|.,CHRNA2|NICOTINE|.,CHRNA2|BIPERIDEN|.,CHRNA2|LEVALLORPHAN|antagonist,PTK2B|LEFLUNOMIDE|antagonist,PTK2B|GENISTEIN|.,PTK2B|CHEMBL509485|.,PTK2B|ALOISINE|inhibitor,PTK2B|CHEMBL458997|inhibitor,PTK2B|PF-562271|inhibitor,PTK2B|RUXOLITINIB PHOSPHATE|inhibitor,PTK2B|PIBOSEROD|inhibitor,PTK2B|DEFACTINIB|inhibitor,CHRNA2|METOCURINE IODIDE|antagonist,CHRNA2|GALLAMINE TRIETHIODIDE|antagonist,CHRNA2|MECAMYLAMINE HYDROCHLORIDE|inhibitor,CHRNA2|PROCAINE|antagonist,CHRNA2|ATRACURIUM BESYLATE|inhibitor,CHRNA2|DOXACURIUM CHLORIDE|antagonist,CHRNA2|TUBOCURARINE|antagonist,CHRNA2|MIVACURIUM|antagonist,CHRNA2|DECAMETHONIUM|antagonist,CHRNA2|DECAMETHONIUM|partial agonist,CHRNA2|METOCURINE|antagonist,CHRNA2|PIPECURONIUM|antagonist,CHRNA2|EPIBATIDINE|agonist,CHRNA2|CP-601927|agonist,CHRNA2|HEXAMETHONIUM|channel blocker,CHRNA2|ATRACURIUM|.,CHRNA2|CISATRACURIUM BESYLATE|.,CHRNA2|DOXACURIUM|.,CHRNA2|CARBACHOL|antagonist,CHRNA2|ROCURONIUM|antagonist,CHRNA2|PANCURONIUM|.,CHRNA2|VECURONIUM|antagonist,CHRNA2|GANTACURIUM|.,CHRNA2|NICOTINE|.,CHRNA2|BIPERIDEN|.,CHRNA2|LEVALLORPHAN|antagonist,PTK2B|LEFLUNOMIDE|antagonist,PTK2B|GENISTEIN|.,PTK2B|CHEMBL509485|.,PTK2B|ALOISINE|inhibitor,PTK2B|CHEMBL458997|inhibitor,PTK2B|PF-562271|inhibitor,PTK2B|RUXOLITINIB PHOSPHATE|inhibitor,PTK2B|PIBOSEROD|inhibitor,PTK2B|DEFACTINIB|inhibitor,CHRNA2|METOCURINE IODIDE|antagonist,CHRNA2|GALLAMINE TRIETHIODIDE|antagonist,CHRNA2|MECAMYLAMINE HYDROCHLORIDE|inhibitor,CHRNA2|PROCAINE|antagonist,CHRNA2|ATRACURIUM BESYLATE|inhibitor,CHRNA2|DOXACURIUM CHLORIDE|antagonist,CHRNA2|TUBOCURARINE|antagonist,CHRNA2|MIVACURIUM|antagonist,CHRNA2|DECAMETHONIUM|antagonist,CHRNA2|DECAMETHONIUM|partial agonist,CHRNA2|METOCURINE|antagonist,CHRNA2|PIPECURONIUM|antagonist,CHRNA2|EPIBATIDINE|agonist,CHRNA2|CP-601927|agonist,CHRNA2|HEXAMETHONIUM|channel blocker,CHRNA2|ATRACURIUM|.,CHRNA2|CISATRACURIUM BESYLATE|.,CHRNA2|DOXACURIUM|.,CHRNA2|CARBACHOL|antagonist,CHRNA2|ROCURONIUM|antagonist,CHRNA2|PANCURONIUM|.,CHRNA2|VECURONIUM|antagonist,CHRNA2|GANTACURIUM|.,CHRNA2|NICOTINE|.,CHRNA2|BIPERIDEN|.,CHRNA2|LEVALLORPHAN|antagonist DP:AF:OBS:SB 116:0:83N-33N+:. 145:0.227034:91N-23V-21N+10V+:.
8 27461737 . C G . . SVLEN=.;PROB_SOMATIC_NORMAL=18.3288;PROB_ABSENT=987.672;PROB_GERMLINE_HET=349.144;PROB_ARTIFACT=272.885;PROB_SOMATIC_TUMOR_MEDIUM=0.168458;PROB_SOMATIC_TUMOR_HIGH=16.3168;PROB_SOMATIC_TUMOR_LOW=59.5167;PROB_GERMLINE_HOM=5489.1;ANN=G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000240132.7|protein_coding|7/7|c.1437G>C|p.Lys479Asn|1601/1735|1437/1545|479/514||,G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000407991.2|protein_coding|7/7|c.1482G>C|p.Lys494Asn|2091/4067|1482/1590|494/529||,G|missense_variant|MODERATE|CHRNA2|ENSG00000120903|transcript|ENST00000520933.7|protein_coding|7/7|c.1416G>C|p.Lys472Asn|1858/2497|1416/1524|472/507||,G|3_prime_UTR_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000523695.5|nonsense_mediated_decay|7/7|c.*884G>C|||||2108|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000346049.9|protein_coding||c.*3228C>G|||||2351|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000397501.5|protein_coding||c.*3228C>G|||||2347|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000517339.5|protein_coding||c.*3228C>G|||||2351|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000522245.1|retained_intron||n.*3263C>G|||||3263|,G|downstream_gene_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000522008.1|retained_intron||n.*1891G>C|||||1891|,G|downstream_gene_variant|MODIFIER|PTK2B|ENSG00000120899|transcript|ENST00000420218.3|protein_coding||c.*3228C>G|||||2346|,G|downstream_gene_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000637241.1|nonsense_mediated_decay||c.*7916G>C|||||1654|,G|non_coding_transcript_exon_variant|MODIFIER|CHRNA2|ENSG00000120903|transcript|ENST00000520600.1|retained_intron|2/2|n.307G>C||||||;dbNSFP_DEOGEN2_score=0.805964,.,.;dbNSFP_Ensembl_proteinid=ENSP00000385026,ENSP00000429616,ENSP00000240132;dbNSFP_Ensembl_transcriptid=ENST00000407991,ENST00000520933,ENST00000240132;dbNSFP_FATHMM_score=-0.7,.,-0.7;dbNSFP_LRT_score=0;dbNSFP_M_CAP_score=0.225545;dbNSFP_MPC_score=0.77049,.,.;dbNSFP_MVP_score=0.925048,0.925048,0.925048;dbNSFP_MetaLR_score=0.5717;dbNSFP_MetaSVM_score=0.1915;dbNSFP_MutPred_score=0.803;dbNSFP_MutationAssessor_score=3.385,.,.;dbNSFP_MutationTaster_score=0.999992,0.999992,0.999992;dbNSFP_PROVEAN_score=-4.7,.,-4.7;dbNSFP_Polyphen2_HDIV_score=0.972,.,.;dbNSFP_Polyphen2_HVAR_score=0.968,.,.;dbNSFP_PrimateAI_score=0.582399;dbNSFP_REVEL_score=0.629;dbNSFP_SIFT4G_score=0.011,0.01,0.01;dbNSFP_SIFT_score=0.001,.,0;dbNSFP_Uniprot_acc=Q15822,A0A0X1KG79,Q15822-2;dbNSFP_Uniprot_entry=ACHA2_HUMAN,A0A0X1KG79_HUMAN,ACHA2_HUMAN;dbNSFP_VEST4_score=0.431,0.426,0.641;dgiDB_drugs=CHRNA2|METOCURINE IODIDE|antagonist,CHRNA2|GALLAMINE TRIETHIODIDE|antagonist,CHRNA2|MECAMYLAMINE HYDROCHLORIDE|inhibitor,CHRNA2|PROCAINE|antagonist,CHRNA2|ATRACURIUM BESYLATE|inhibitor,CHRNA2|DOXACURIUM CHLORIDE|antagonist,CHRNA2|TUBOCURARINE|antagonist,CHRNA2|MIVACURIUM|antagonist,CHRNA2|DECAMETHONIUM|antagonist,CHRNA2|DECAMETHONIUM|partial agonist,CHRNA2|METOCURINE|antagonist,CHRNA2|PIPECURONIUM|antagonist,CHRNA2|EPIBATIDINE|agonist,CHRNA2|CP-601927|agonist,CHRNA2|HEXAMETHONIUM|channel blocker,CHRNA2|ATRACURIUM|.,CHRNA2|CISATRACURIUM BESYLATE|.,CHRNA2|DOXACURIUM|.,CHRNA2|CARBACHOL|antagonist,CHRNA2|ROCURONIUM|antagonist,CHRNA2|PANCURONIUM|.,CHRNA2|VECURONIUM|antagonist,CHRNA2|GANTACURIUM|.,CHRNA2|NICOTINE|.,CHRNA2|BIPERIDEN|.,CHRNA2|LEVALLORPHAN|antagonist,PTK2B|LEFLUNOMIDE|antagonist,PTK2B|GENISTEIN|.,PTK2B|CHEMBL509485|.,PTK2B|ALOISINE|inhibitor,PTK2B|CHEMBL458997|inhibitor,PTK2B|PF-562271|inhibitor,PTK2B|RUXOLITINIB PHOSPHATE|inhibitor,PTK2B|PIBOSEROD|inhibitor,PTK2B|DEFACTINIB|inhibitor DP:AF:OBS:SB 116:0:83N-33N+:. 145:0.227034:91N-23V-21N+10V+:.
Loading

0 comments on commit d2a7750

Please sign in to comment.