​R语言阈值置信区间怎么计算

发布时间:2022-03-19 10:01:03 作者:iii
来源:亿速云 阅读:235

这篇“R语言阈值置信区间怎么计算”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“R语言阈值置信区间怎么计算”文章吧。

R语言源代码

####################################
Arg<-commandArgs(TRUE)
###########input###############################################
individual_analysis<- c(Arg[1])
reprication<-c(Arg[2])
filter_value<-c(Arg[3])
population_structure<-c(Arg[4]) #RIL or F2
depth_analysis<-c(1:300)
###########input###############################################


###########genotype#############################
genotype<-function(){
count<-0


if (population_structure=="RIL"){
x<-runif(1) 
if (x<=0.5){
count<-1
}else{
count<-0
}

}else{
for(i in 1:2){
x<-runif(1) 
if (x<=0.5){
number<-0.5
}else{
number<-0
}
if(number == 0.5){
count<- count+0.5
}
}
}
return(count)
}
############################################################

###########caluclate of genotype ratio#########################
individuals_genotype<-function(number_of_total_individuals){

ratio_of_genotype<-c()
for(i in 1:number_of_total_individuals){
ratio_of_genotype<-c(ratio_of_genotype,genotype())

}
return(mean(ratio_of_genotype))
}
############################################################

###########SNP_index_caluclation#########################
snp_index<-function(read_depth,ratio_of_genotype_in_the_population_in_A){
x1<-rbinom(1,read_depth,ratio_of_genotype_in_the_population_in_A)
return(x1/read_depth)
}
############################################################
####################################





for (key_individual in individual_analysis){
   individual_number<-key_individual
    
    depth_data<-c()
    p_l_data_95<-c()
    p_h_data_95<-c()
    p_l_data_99<-c()
    p_h_data_99<-c()
    for (key_depth in depth_analysis){
        depth_data<-c(depth_data,key_depth)
        depth<-key_depth
    
        data_of_delta_snp_index<-c()
        
        for(i in 1:reprication){    
        ##########gene_frequency######################
ratio_of_genotype_in_the_population_in_A<-individuals_genotype(key_individual)
Snp_index_of_A<-snp_index(key_depth,ratio_of_genotype_in_the_population_in_A)

ratio_of_genotype_in_the_population_in_B<-individuals_genotype(key_individual)
Snp_index_of_B<-snp_index(key_depth,ratio_of_genotype_in_the_population_in_B)

if(Snp_index_of_A >= filter_value | Snp_index_of_B >=filter_value){
delta_snp_index<-Snp_index_of_A-Snp_index_of_B
data_of_delta_snp_index<-c(data_of_delta_snp_index,delta_snp_index)
}

##########gene_frequency######################
        }
        
        order_data_of_delta_snp_index<-sort(data_of_delta_snp_index)
        length_data_of_delta_snp_index<-length(data_of_delta_snp_index)
        ##########snp_index_probabirity_0.05######################       
        snp_cutoff_low_0.025<-order_data_of_delta_snp_index[floor(0.025*length_data_of_delta_snp_index)]
snp_cutoff_up_0.975<-order_data_of_delta_snp_index[ceiling(0.975*length_data_of_delta_snp_index)]
p_l_data_95<-c(p_l_data_95,snp_cutoff_low_0.025)
        p_h_data_95<-c(p_h_data_95,snp_cutoff_up_0.975)   
        ##########snp_index_probabirity_0.05######################
        
        ##########snp_index_probabirity_0.01###################### 
        if (floor(0.005*length_data_of_delta_snp_index)>0){
        snp_cutoff_low_0.005<-order_data_of_delta_snp_index[floor(0.005*length_data_of_delta_snp_index)]
        }else{
        snp_cutoff_low_0.005<-order_data_of_delta_snp_index[1]
        }      
        
        if (ceiling(0.995*length_data_of_delta_snp_index)<length_data_of_delta_snp_index){
snp_cutoff_up_0.995<-order_data_of_delta_snp_index[ceiling(0.995*length_data_of_delta_snp_index)]
}else{
snp_cutoff_up_0.995<-order_data_of_delta_snp_index[length_data_of_delta_snp_index]
}
p_l_data_99<-c(p_l_data_99,snp_cutoff_low_0.005)
        p_h_data_99<-c(p_h_data_99,snp_cutoff_up_0.995) 
        ##########snp_index_probabirity_0.01######################      
               
            
     
     
    }
            
    FINAL_DATA<-data.frame(DEPTH=depth_data,P_L_95=p_l_data_95,P_H_95=p_h_data_95,P_L_99=p_l_data_99,P_H_99=p_h_data_99)
    table_name<-paste("./",population_structure,"_",individual_number,"_individuals.txt",sep="")
    
    write.table(FINAL_DATA,table_name,sep="\t", quote=F, append=F,row.name=F)
    
}

以上就是关于“R语言阈值置信区间怎么计算”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. R语言计算移动平均的方法
  2. R语言计算IV值及使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:GATK Hard-filter过滤变异结果实例分析

下一篇:eclipse当中出现中文乱码怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》