Integrated Analysis of SNPs and Structural Variations via High-depth Whole-genome Sequencing Reveals the Genetic Architecture and Optimizes Genomic Prediction in Chickens.
The 3 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
- [1] § Materials and methods › Genomic prediction ↔ running_function.py, lines 251–295 · score 0.81 · AdamW, model parameters, Elastic, MSE, loss, optimized
- [2] § Materials and methods › Genomic prediction ↔ running_function.py, lines 74–116 · score 0.53 · layer normalization, LCL, kernel, GPDLBP, weight, linear
- [3] § Materials and methods › Genomic prediction ↔ run_GPDLBP.sh, the whole file · a weak match · score 0.52 · L1, L2, iteratively, GPDLBP, layers, training
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 324 lines · 11 KB · MIT · 2 matches
- import torch
- import os,time
- from torch import nn
- import torch.nn.functional as F
- import torch.optim as optim
- import numpy as np
- from tqdm import tqdm
- from torch.utils.data import Dataset
- from torch.utils.data import DataLoader
- import random
- class LocalLinear(nn.Module):
- def __init__(self,out_size,mask,bias=True):
- super(LocalLinear,self).__init__()
- self.mask = mask
- self.register_buffer('mask_buffer', mask.bool())
- #variant_num = self.mask.shape[0]
- group_num = self.mask.shape[1]
- self.group_num = group_num
- local_features_numberlist = torch.sum(self.mask,dim=0)
- self.weights = nn.ParameterList([
- nn.Parameter(torch.randn(int(local_features_num.tolist()),out_size))
- for local_features_num in local_features_numberlist
- ])
- if bias:
- self.biases = nn.ParameterList([
- nn.Parameter(torch.randn(out_size))
- for _ in range(group_num)
- ])
- else:
- self.biases = None
- for weight in self.weights:
- nn.init.xavier_uniform_(weight)
- if bias:
- for bias_param in self.biases:
- nn.init.constant_(bias_param,0.0)
- def forward(self,x:torch.Tensor):
- #x_unfold = [x.to(torch.float)[:,self.mask[:,i].nonzero(as_tuple=True)[0]] for i in range(self.mask.shape[1])]
- outputs = []
- for i in range(self.group_num):
- #temp_x = x_unfold[i]
- idx = self.mask_buffer[:, i].nonzero(as_tuple=True)[0]
- temp_x = x[:, idx].float()
- weight = self.weights[i]
- temp_output = torch.matmul(temp_x,weight)
- if self.biases:
- temp_output += self.biases[i]
- outputs.append(temp_output)
- out = torch.cat(outputs,dim=-1)
- return out
- class LocalLinear2(nn.Module):
- def __init__(self,in_features,local_features,kernel_size,stride=1,bias=True):
- super(LocalLinear2, self).__init__()
- self.kernel_size = kernel_size
- self.stride = stride
- self.padding = kernel_size - 1
- fold_num = (in_features+self.padding -self.kernel_size)//self.stride+1
- self.weight = nn.Parameter(torch.randn(fold_num,kernel_size,local_features))
- self.bias = nn.Parameter(torch.randn(fold_num,local_features)) if bias else None
- nn.init.xavier_uniform_(self.weight)
- nn.init.constant_(self.bias, 0.0)
- def forward(self, x:torch.Tensor):
- x = F.pad(x,[0, self.padding],value=0)
- x = x.unfold(-1,size=self.kernel_size,step=self.stride)
- x = torch.matmul(x.unsqueeze(2),self.weight).squeeze(2)+self.bias
- return x.squeeze(2)
- class GPDLBP_model(nn.Module):
- def __init__(self, mask,num_gebvs,outsize=1):
- super(GPDLBP_model, self).__init__()
- #self.mask = mask
- self.register_buffer('mask', mask.float())
- self.outsize = outsize
- variant_num = self.mask.shape[0]
- group_num = self.mask.shape[1]
- self.num_gebvs = num_gebvs
- if self.num_gebvs > 0:
- self.weights_y = nn.Parameter(torch.ones(num_gebvs, 1) + 0.01 * torch.randn(num_gebvs, 1))
- self.bias_outlay = nn.Parameter(torch.randn(1))
- self.fcl = nn.Linear(self.mask.shape[1],outsize)
- self.shortcut = nn.Linear(variant_num, group_num, bias=False)
- ##set LCL
- self.encoder = nn.Sequential(
- LocalLinear(1,self.mask),
- nn.LayerNorm(self.mask.shape[1]),
- nn.GELU(),
- LocalLinear2(self.mask.shape[1],1, kernel_size=5,stride=1)
- )
- self._init_weights()
- def _init_weights(self):
- # weight init
- for m in self.modules():
- if isinstance(m, (nn.GroupNorm, nn.LayerNorm)):
- nn.init.constant_(m.weight, 1.0)
- nn.init.constant_(m.bias, 0.0)
- elif isinstance(m, (nn.Linear)):
- nn.init.xavier_uniform_(m.weight)
- if m.bias is not None:
- nn.init.constant_(m.bias, 0.0)
- def forward(self,X,extra_y):
- feat = self.encoder(X) + self.shortcut(X)
- temp_out = self.fcl(feat)
- if self.num_gebvs > 0:
- #[Batch, num_gebvs] * [num_gebvs, 1] = [Batch, 1]
- y_combined = torch.matmul(extra_y, self.weights_y)
- output = temp_out + y_combined + self.bias_outlay
- else:
- output = temp_out + self.bias_outlay
- return output.squeeze(1)
- def predictive_ability(true, pred):
- pred_mean = pred.mean()
- true_mean = true.mean()
- f1 = torch.sum((pred - pred_mean) * (true - true_mean))
- f2 = torch.sqrt(torch.sum((pred - pred_mean)**2) * torch.sum((true - true_mean)**2))
- if f2 == 0:
- return 0
- cor = f1/f2
- return float(cor)
- class PearsonLoss(nn.Module):
- def __init__(self):
- super(PearsonLoss, self).__init__()
- def forward(self, y_pred, y_true):
- y_pred = y_pred.view(-1)
- y_true = y_true.view(-1)
- mean_pred = torch.mean(y_pred)
- mean_true = torch.mean(y_true)
- cov = torch.mean((y_pred - mean_pred) * (y_true - mean_true))
- var_pred = torch.mean((y_pred - mean_pred) ** 2)
- var_true = torch.mean((y_true - mean_true) ** 2)
- pearson = cov / (torch.sqrt(var_pred) * torch.sqrt(var_true) + 1e-8)
- return 1 - pearson
- class def_dataset(Dataset):
- def __init__(self,X,extra_y,ids,y=None):
- self.X = X
- self.y = y
- self.ids = ids
- self.extra_y = extra_y
- def __len__(self):
- return len(self.ids)
- def __getitem__(self,idx):
- if self.y is not None:
- return{
- 'X':self.X[idx],'y':self.y[idx],
- 'extra_y':self.extra_y[idx],
- 'id':self.ids[idx]
- }
- else:
- return{
- 'X':self.X[idx],
- 'extra_y':self.extra_y[idx],
- 'id':self.ids[idx]
- }
- def load_dataset(raw_path,phen_path,gebv_paths,col = 1):
- raw_file = open(raw_path) # SNP
- SNPs = next(raw_file).split()[6:]
- train_ids = []
- with open(phen_path) as phen_file:
- phen = {}
- for line in phen_file:
- line_ = line.split()
- phen[line_[0]] = float(line_[col])
- train_ids.append(line_[0])
- gebv_dicts = []
- for path in gebv_paths:
- d = {}
- with open(path) as f:
- for line in f:
- l = line.split()
- d[l[0]] = float(l[1])
- gebv_dicts.append(d)
- train_X = []
- test_X = []
- train_y = []
- train_extra = []
- test_y = []
- test_extra = []
- test_ids = []
- for line in tqdm(raw_file):
- line_ = line.split()
- current_extra_vec = [d.get(line_[1], 0.0) for d in gebv_dicts]
- if line_[1] in train_ids:
- train_X.append(line_[6:])
- train_y.append(phen[line_[1]])
- train_extra.append(current_extra_vec)
- else:
- test_X.append(line_[6:])
- test_ids.append(line_[1])
- test_extra.append(current_extra_vec)
- train_X = torch.from_numpy(np.array(train_X, dtype=np.float32))
- train_y = torch.tensor(train_y, dtype=torch.float32)
- train_extra = torch.tensor(train_extra, dtype=torch.float32)
- train_ids = np.array(train_ids,dtype=str)
- test_X = torch.from_numpy(np.array(test_X, dtype=np.float32))
- test_extra = torch.tensor(test_extra, dtype=torch.float32)
- test_ids = np.array(test_ids,dtype=str)
- train_dataset = def_dataset(train_X,train_extra,train_ids, train_y)
- test_dataset = def_dataset(test_X, test_extra, test_ids)
- return train_dataset,test_dataset
- def mask_read(mask_path):
- mask_mat = []
- with open(mask_path) as mask_file:
- for line in mask_file:
- line_ = line.split()
- mask_mat.append(line_)
- mask_mat = torch.from_numpy(np.array(mask_mat,dtype=np.int32))
- return mask_mat
- def train_model(model,train_dataloader,save_path,lr1,lr2,num_epochs, l1_lambda, l2_lambda, device):
- model._init_weights()
- #optimizer = optim.AdamW(model.parameters(), lr=lr)
- param_groups = [
- {'params': model.encoder.parameters()},
- {'params': model.fcl.parameters()},
- {'params': [model.bias_outlay], 'lr': lr2}
- ]
- if model.num_gebvs > 0:
- param_groups.append({'params': [model.weights_y], 'lr': lr2})
- optimizer = optim.AdamW(param_groups, lr=lr1)
- lossfun = nn.MSELoss()
- s_time = time.time()
- for epoch in range(num_epochs):
- model.train() ########
- train_loss = 0.0 #############
- for i,data in enumerate(train_dataloader):
- # forward
- X = data['X'].to(device)
- phen_y = data['y'].to(device)
- extra_y = data['extra_y'].to(device)
- outputs = model(X, extra_y)
- loss = lossfun(outputs,phen_y)
- l1_norm = sum(p.abs().sum() for p in model.parameters() if p.requires_grad)
- l2_norm = sum(p.pow(2).sum() for p in model.parameters() if p.requires_grad)
- elastic_net_penalty = l1_lambda * l1_norm + l2_lambda * l2_norm
- total_loss = loss + elastic_net_penalty
- pcor = predictive_ability(outputs,phen_y)
- monitor = f'epoch {epoch+1} ({i+1}/{len(train_dataloader)}): loss ({round(float(loss),3)}), p.a ({round(float(pcor),3)})'
- print(monitor+' '*10,end='\r')
- # backward
- optimizer.zero_grad()
- total_loss.backward()
- optimizer.step()
- current_epoch = epoch + 1
- if current_epoch % 10 ==0 and current_epoch < num_epochs:
- filename = f'epoch_{current_epoch}.pth'
- torch.save(model.state_dict(), os.path.join(save_path,filename))
- running_time = time.time() - s_time
- torch.save(model.state_dict(), os.path.join(save_path,f'last.pth'))
- del loss, optimizer
- return running_time
- def test_model(model,test_dataloader,save_path,device):
- #model.load_state_dict(torch.load(model_path))
- model.eval()
- s_time = time.time()
- pred_y = []
- ids = []
- print("Testing...")
- for data in tqdm(test_dataloader):
- X = data['X'].to(device)
- extra_y = data['extra_y'].to(device)
- with torch.no_grad():
- batch_pred_y = model(X,extra_y)
- #batch_pred_y = batch_pred_y - model.bias_outlay
- pred_y.append(batch_pred_y)
- ids.append(data['id'])
- pred_y = torch.cat(pred_y)
- ids = np.concatenate(ids)
- running_time = time.time() - s_time
- with open(os.path.join(save_path,f'sol.txt'),'w') as save:
- save.write('IDS\tPre_Value\n')
- for id,py in zip(ids,pred_y):
- save.write(f'{id}\t{py}\n')
- return running_time
running_function.py at commit d2aed22, under MIT · at the source
Overview
- Department of Animal Genetics, Breeding and Reproduction, College of Animal Science, South China Agricultural University, Guangzhou 510642, China
- Guangdong Provincial Key Lab of Agro-Animal Genomics and Molecular Breeding and Key Lab of Chicken Genetics, Breeding and Reproduction, Ministry of Agriculture and Rural Affair, South China Agricultural University, Guangzhou 510642, China
- Fujian Key Laboratory of Animal Genetics and Breeding, Institute of Animal Husbandry and Veterinary Medicine, Fujian Academy of Agricultural Sciences, Fuzhou, Fujian, 350013, China
- Agriculture Research Group, Organization of African Academic Doctors (OAAD), Off Kamiti Road, P. O. Box 25305-00100, Nairobi, Kenya
Abstract
The characterization of genetic architecture and the optimization of genomic prediction are pivotal for the genetic improvement of complex traits in poultry. In this study, we investigated the genetic basis of 15 growth and carcass traits in an F2 chicken population (n = 877) using high-depth whole-genome sequencing with an average coverage of 31.2 × . By implementing an ensemble strategy involving four independent callers, we identified 35,924 high-confidence structural variations (SVs), with deletions being the most prevalent type. Combining SNPs and SVs enhanced genomic heritability for 14 out of 15 traits compared to SNPs alone. SNP-based GWAS corroborated well-known genes, including the prominent QTL cluster on chromosome 1, the NCAPG-LCORL locus on chromosome 4, and IGF2BP1 on chromosome 27. Notably, SV-based analysis unveiled additional candidate genes, such as ZNF385D, MYH10, and MOB1B. To gain functional insights, eQTL-GWAS colocalization analysis integrating SNP-based GWAS signals with tissue-specific eQTL data identified significant colocalization signals for ITM2B in brain tissue, potentially implicating excitatory synaptic transmission, and TRIM13 in blood, potentially implicating inflammatory and immune regulation. To optimize genomic breeding value estimation through the effective utilization of multi-type markers, we developed GPDLBP, a hybrid deep learning framework that integrates locally connected networks to capture SV effects with the GBLUP model for SNP effects. Compared with the traditional SNP-only model, GPDLBP improved prediction accuracy for most traits, with gains exceeding 2% for BW21 (body weight at 21 days of age), BW49 (body weight at 49 days of age), EW (eviscerated weight), LMW (leg muscle weight), and AFW (abdominal fat weight); for example, prediction accuracy increased from 0.512 to 0.532 for BW49 and from 0.471 to 0.491 for EW. These findings show that SVs complement SNPs in both genetic dissection and genomic prediction of economically important traits in chickens. The integration of multiple variant types provides a practical strategy for accelerating precision breeding in high-depth sequencing-based poultry programs.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.
jasmine/jasmine
390d31e48106dd0d0b6dbcf5cf9071650fb2b4bf, 19 August 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
287 files
- lib/
jasmine-core.js , JavaScript, 93 lines - lib/
jasmine-core/ , JavaScript, 51 linesboot.js - lib/
jasmine-core/ , JavaScript, 24 linesexample/ node_example/ lib/ jasmine_examples/ Player.js - lib/
jasmine-core/ , JavaScript, 8 linesexample/ node_example/ lib/ jasmine_examples/ Song.js - lib/
jasmine-core/ , JavaScript, 15 linesexample/ node_example/ spec/ helpers/ jasmine_examples/ SpecHelper.js - lib/
jasmine-core/ , JavaScript, 61 linesexample/ node_example/ spec/ jasmine_examples/ PlayerSpec.js - lib/
jasmine-core/ , JavaScript, 58 linesexample/ spec/ PlayerSpec.js - lib/
jasmine-core/ , JavaScript, 15 linesexample/ spec/ SpecHelper.js - lib/
jasmine-core/ , JavaScript, 22 linesexample/ src/ Player.js - lib/
jasmine-core/ , JavaScript, 6 linesexample/ src/ Song.js - lib/
jasmine-core/ , JavaScript, 1,554 linesjasmine-html.js - lib/
jasmine-core/ , JavaScript, 7,117 linesjasmine.js - scripts/
buildDistribution.js , JavaScript, 3 lines - scripts/
buildStandaloneDist.js , JavaScript, 85 lines - scripts/
lib/ , JavaScript, 137 linesbuildDistribution.js - scripts/
runSpecsInNode.js , JavaScript, 29 lines - scripts/
runSpecsInParallel.js , JavaScript, 28 lines - spec/
core/ , JavaScript, 679 linesAsyncExpectationSpec.js - spec/
core/ , JavaScript, 182 linesCallTrackerSpec.js - spec/
core/ , JavaScript, 1,266 linesClockSpec.js - spec/
core/ , JavaScript, 131 linesCompleteOnFirstErrorSkip PolicySpec.js - spec/
core/ , JavaScript, 196 linesConfigurationSpec.js - spec/
core/ , JavaScript, 387 linesDelayedFunctionScheduler Spec.js - spec/
core/ , JavaScript, 335 linesDeprecatorSpec.js - spec/
core/ , JavaScript, 901 linesEnvSpec.js - spec/
core/ , JavaScript, 536 linesExceptionFormatterSpec.j s - spec/
core/ , JavaScript, 51 linesExceptionsSpec.js - spec/
core/ , JavaScript, 118 linesExpectationFilterChainSp ec.js - spec/
core/ , JavaScript, 664 linesExpectationSpec.js - spec/
core/ , JavaScript, 795 linesGlobalErrorsSpec.js - spec/
core/ , JavaScript, 198 linesMockDateSpec.js - spec/
core/ , JavaScript, 183 linesParallelReportDispatcher Spec.js - spec/
core/ , JavaScript, 666 linesPrettyPrintSpec.js - spec/
core/ , JavaScript, 982 linesQueueRunnerSpec.js - spec/
core/ , JavaScript, 207 linesReportDispatcherSpec.js - spec/
core/ , JavaScript, 557 linesRunableResourcesSpec.js - spec/
core/ , JavaScript, 506 linesRunnerSpec.js - spec/
core/ , JavaScript, 84 linesSkipAfterBeforeAllErrorP olicySpec.js - spec/
core/ , JavaScript, 745 linesSpecSpec.js - spec/
core/ , JavaScript, 729 linesSpyRegistrySpec.js - spec/
core/ , JavaScript, 309 linesSpySpec.js - spec/
core/ , JavaScript, 315 linesSpyStrategySpec.js - spec/
core/ , JavaScript, 306 linesStackClearerSpec.js - spec/
core/ , JavaScript, 276 linesStackTraceSpec.js - spec/
core/ , JavaScript, 406 linesSuiteBuilderSpec.js - spec/
core/ , JavaScript, 466 linesSuiteSpec.js - spec/
core/ , JavaScript, 37 linesTimerSpec.js - spec/
core/ , JavaScript, 298 linesTreeProcessorSpec.js - spec/
core/ , JavaScript, 744 linesTreeRunnerSpec.js - spec/
core/ , JavaScript, 50 linesUserContextSpec.js - spec/
core/ , JavaScript, 170 linesUtilSpec.js - spec/
core/ , JavaScript, 63 linesasymmetric_equality/ AllOfSpec.js - spec/
core/ , JavaScript, 83 linesasymmetric_equality/ AnySpec.js - spec/
core/ , JavaScript, 68 linesasymmetric_equality/ AnythingSpec.js - spec/
core/ , JavaScript, 74 linesasymmetric_equality/ ArrayContainingSpec.js - spec/
core/ , JavaScript, 64 linesasymmetric_equality/ ArrayWithExactContentsSp ec.js - spec/
core/ , JavaScript, 48 linesasymmetric_equality/ EmptySpec.js - spec/
core/ , JavaScript, 38 linesasymmetric_equality/ FalsySpec.js - spec/
core/ , JavaScript, 30 linesasymmetric_equality/ IsSpec.js - spec/
core/ , JavaScript, 163 linesasymmetric_equality/ MapContainingSpec.js - spec/
core/ , JavaScript, 50 linesasymmetric_equality/ NotEmptySpec.js - spec/
core/ , JavaScript, 211 linesasymmetric_equality/ ObjectContainingSpec.js - spec/
core/ , JavaScript, 115 linesasymmetric_equality/ SetContainingSpec.js - spec/
core/ , JavaScript, 27 linesasymmetric_equality/ StringContainingSpec.js - spec/
core/ , JavaScript, 29 linesasymmetric_equality/ StringMatchingSpec.js - spec/
core/ , JavaScript, 61 linesasymmetric_equality/ TruthySpec.js - spec/
core/ , JavaScript, 186 linesbaseSpec.js - spec/
core/ , JavaScript, 89 linesbuildExpectationResultSp ec.js - spec/
core/ , JavaScript, 13 linesformatErrorMsgSpec.js - spec/
core/ , JavaScript, 223 linesintegration/ AsymmetricEqualityTester sSpec.js - spec/
core/ , JavaScript, 151 linesintegration/ CustomAsyncMatchersSpec. js - spec/
core/ , JavaScript, 269 linesintegration/ CustomMatchersSpec.js - spec/
core/ , JavaScript, 77 linesintegration/ CustomObjectFormatterSpe c.js - spec/
core/ , JavaScript, 119 linesintegration/ CustomSpyStrategiesSpec. js - spec/
core/ , JavaScript, 127 linesintegration/ DefaultSpyStrategySpec.j s - spec/
core/ , JavaScript, 316 linesintegration/ DeprecationSpec.js - spec/
core/ , JavaScript, 3,927 linesintegration/ EnvSpec.js - spec/
core/ , JavaScript, 1,240 linesintegration/ GlobalErrorHandlingSpec. js - spec/
core/ , JavaScript, 888 linesintegration/ MatchersSpec.js - spec/
core/ , JavaScript, 162 linesintegration/ ParallelSpec.js - spec/
core/ , JavaScript, 1,522 linesintegration/ SpecRunningSpec.js - spec/
core/ , JavaScript, 123 linesjasmineNamespaceSpec.js - spec/
core/ , JavaScript, 270 linesmatchers/ DiffBuilderSpec.js - spec/
core/ , JavaScript, 142 linesmatchers/ MismatchTreeSpec.js - spec/
core/ , JavaScript, 7 linesmatchers/ NullDiffBuilderSpec.js - spec/
core/ , JavaScript, 47 linesmatchers/ ObjectPathSpec.js - spec/
core/ , JavaScript, 45 linesmatchers/ async/ toBePendingSpec.js - spec/
core/ , JavaScript, 35 linesmatchers/ async/ toBeRejectedSpec.js - spec/
core/ , JavaScript, 238 linesmatchers/ async/ toBeRejectedWithErrorSpe c.js - spec/
core/ , JavaScript, 78 linesmatchers/ async/ toBeRejectedWithMatching Spec.js - spec/
core/ , JavaScript, 101 linesmatchers/ async/ toBeRejectedWithSpec.js - spec/
core/ , JavaScript, 42 linesmatchers/ async/ toBeResolvedSpec.js - spec/
core/ , JavaScript, 99 linesmatchers/ async/ toBeResolvedToSpec.js - spec/
core/ , JavaScript, 1,079 linesmatchers/ matchersUtilSpec.js - spec/
core/ , JavaScript, 8 linesmatchers/ nothingSpec.js - spec/
core/ , JavaScript, 151 linesmatchers/ toBeCloseToSpec.js - spec/
core/ , JavaScript, 13 linesmatchers/ toBeDefinedSpec.js - spec/
core/ , JavaScript, 19 linesmatchers/ toBeFalseSpec.js - spec/
core/ , JavaScript, 47 linesmatchers/ toBeFalsySpec.js - spec/
core/ , JavaScript, 29 linesmatchers/ toBeGreaterThanOrEqualSp ec.js - spec/
core/ , JavaScript, 18 linesmatchers/ toBeGreaterThanSpec.js - spec/
core/ , JavaScript, 241 linesmatchers/ toBeInstanceOfSpec.js - spec/
core/ , JavaScript, 29 linesmatchers/ toBeLessThanOrEqualSpec. js - spec/
core/ , JavaScript, 18 linesmatchers/ toBeLessThanSpec.js - spec/
core/ , JavaScript, 37 linesmatchers/ toBeNaNSpec.js - spec/
core/ , JavaScript, 32 linesmatchers/ toBeNegativeInfinitySpec .js - spec/
core/ , JavaScript, 13 linesmatchers/ toBeNullSpec.js - spec/
core/ , JavaScript, 57 linesmatchers/ toBeNullishSpec.js - spec/
core/ , JavaScript, 32 linesmatchers/ toBePositiveInfinitySpec .js - spec/
core/ , JavaScript, 87 linesmatchers/ toBeSpec.js - spec/
core/ , JavaScript, 13 linesmatchers/ toBeTrueSpec.js - spec/
core/ , JavaScript, 47 linesmatchers/ toBeTruthySpec.js - spec/
core/ , JavaScript, 13 linesmatchers/ toBeUndefinedSpec.js - spec/
core/ , JavaScript, 25 linesmatchers/ toContainSpec.js - spec/
core/ , JavaScript, 1,188 linesmatchers/ toEqualSpec.js - spec/
core/ , JavaScript, 131 linesmatchers/ toHaveBeenCalledBeforeSp ec.js - spec/
core/ , JavaScript, 122 linesmatchers/ toHaveBeenCalledOnceWith Spec.js - spec/
core/ , JavaScript, 65 linesmatchers/ toHaveBeenCalledSpec.js - spec/
core/ , JavaScript, 103 linesmatchers/ toHaveBeenCalledTimesSpe c.js - spec/
core/ , JavaScript, 120 linesmatchers/ toHaveBeenCalledWithSpec .js - spec/
core/ , JavaScript, 50 linesmatchers/ toHaveClassSpec.js - spec/
core/ , JavaScript, 48 linesmatchers/ toHaveClassesSpec.js - spec/
core/ , JavaScript, 154 linesmatchers/ toHaveNoOtherSpyInteract ionsSpec.js - spec/
core/ , JavaScript, 138 linesmatchers/ toHaveSizeSpec.js - spec/
core/ , JavaScript, 115 linesmatchers/ toHaveSpyInteractionsSpe c.js - spec/
core/ , JavaScript, 37 linesmatchers/ toMatchSpec.js - spec/
core/ , JavaScript, 338 linesmatchers/ toThrowErrorSpec.js - spec/
core/ , JavaScript, 89 linesmatchers/ toThrowMatchingSpec.js - spec/
core/ , JavaScript, 107 linesmatchers/ toThrowSpec.js - spec/
core/ , JavaScript, 7 linesversionNumberSpec.js - spec/
fixtures/ , JavaScript, 48 linesreset.js - spec/
helpers/ , JavaScript, 16 linesBrowserFlags.js - spec/
helpers/ , JavaScript, 5 linescallerFilenameShim.js - spec/
helpers/ , JavaScript, 11 linesdefineJasmineUnderTest.j s - spec/
helpers/ , JavaScript, 20 linesdomHelpers.js - spec/
helpers/ , JavaScript, 18 linesenvironments.js - spec/
helpers/ , JavaScript, 1 lineinit.js - spec/
helpers/ , JavaScript, 55 linesintegrationMatchers.js - spec/
helpers/ , JavaScript, 67 linesmonkeyPatchingSpecs.js - spec/
helpers/ , JavaScript, 35 linesnodeDefineJasmineUnderTe st.js - spec/
helpers/ , JavaScript, 8 linesresetEnv.js - spec/
html/ , JavaScript, 1,449 linesHtmlReporterV2Spec.js - spec/
html/ , JavaScript, 70 linesHtmlReporterV2UrlsSpec.j s - spec/
html/ , JavaScript, 70 linesHtmlSpecFilterV2Spec.js - spec/
html/ , JavaScript, 107 linesPerformanceViewSpec.js - spec/
html/ , JavaScript, 47 linesPrettyPrintHtmlSpec.js - spec/
html/ , JavaScript, 88 linesQueryStringSpec.js - spec/
html/ , JavaScript, 62 linesResultsNodeSpec.js - spec/
html/ , JavaScript, 25 linesSpyRegistryHtmlSpec.js - spec/
html/ , JavaScript, 97 linesTabBarSpec.js - spec/
npmPackage/ , JavaScript, 155 linesnpmPackageSpec.js - spec/
npmPackage/ , JavaScript, 34 linesresetSpec.js - spec/
performance/ , JavaScript, 33 lineslarge_object_test.js - spec/
performance/ , JavaScript, 10 linesperformance_test.js - spec/
support/ , JavaScript, 13 linesci.js - spec/
support/ , JavaScript, 49 linesjasmine-browser.js - spec/
support/ , JavaScript, 11 lineslocalJasmineBrowser.js - src/
boot/ , JavaScript, 27 linesboot.js - src/
boot/ , JavaScript, 69 linesjasmine-core.js - src/
core/ , JavaScript, 141 linesCallTracker.js - src/
core/ , JavaScript, 351 linesClock.js - src/
core/ , JavaScript, 53 linesCompleteOnFirstErrorSkip Policy.js - src/
core/ , JavaScript, 246 linesConfiguration.js - src/
core/ , JavaScript, 40 linesCurrentRunableTracker.js - src/
core/ , JavaScript, 202 linesDelayedFunctionScheduler .js - src/
core/ , JavaScript, 92 linesDeprecator.js - src/
core/ , JavaScript, 862 linesEnv.js - src/
core/ , JavaScript, 140 linesExceptionFormatter.js - src/
core/ , JavaScript, 269 linesExpectation.js - src/
core/ , JavaScript, 51 linesExpectationFilterChain.j s - src/
core/ , JavaScript, 93 linesExpector.js - src/
core/ , JavaScript, 303 linesGlobalErrors.js - src/
core/ , JavaScript, 109 linesMockDate.js - src/
core/ , JavaScript, 13 linesNeverSkipPolicy.js - src/
core/ , JavaScript, 45 linesOrder.js - src/
core/ , JavaScript, 97 linesParallelReportDispatcher .js - src/
core/ , JavaScript, 372 linesPrettyPrinter.js - src/
core/ , JavaScript, 300 linesQueueRunner.js - src/
core/ , JavaScript, 82 linesReportDispatcher.js - src/
core/ , JavaScript, 159 linesRunableResources.js - src/
core/ , JavaScript, 190 linesRunner.js - src/
core/ , JavaScript, 40 linesSkipAfterBeforeAllErrorP olicy.js - src/
core/ , JavaScript, 392 linesSpec.js - src/
core/ , JavaScript, 215 linesSpy.js - src/
core/ , JavaScript, 79 linesSpyFactory.js - src/
core/ , JavaScript, 282 linesSpyRegistry.js - src/
core/ , JavaScript, 182 linesSpyStrategy.js - src/
core/ , JavaScript, 157 linesStackClearer.js - src/
core/ , JavaScript, 133 linesStackTrace.js - src/
core/ , JavaScript, 405 linesSuite.js - src/
core/ , JavaScript, 345 linesSuiteBuilder.js - src/
core/ , JavaScript, 49 linesTimer.js - src/
core/ , JavaScript, 225 linesTreeProcessor.js - src/
core/ , JavaScript, 291 linesTreeRunner.js - src/
core/ , JavaScript, 17 linesUserContext.js - src/
core/ , JavaScript, 29 linesasymmetric_equality/ AllOf.js - src/
core/ , JavaScript, 47 linesasymmetric_equality/ Any.js - src/
core/ , JavaScript, 15 linesasymmetric_equality/ Anything.js - src/
core/ , JavaScript, 38 linesasymmetric_equality/ ArrayContaining.js - src/
core/ , JavaScript, 38 linesasymmetric_equality/ ArrayWithExactContents.j s - src/
core/ , JavaScript, 30 linesasymmetric_equality/ Empty.js - src/
core/ , JavaScript, 15 linesasymmetric_equality/ Falsy.js - src/
core/ , JavaScript, 19 linesasymmetric_equality/ Is.js - src/
core/ , JavaScript, 47 linesasymmetric_equality/ MapContaining.js - src/
core/ , JavaScript, 31 linesasymmetric_equality/ NotEmpty.js - src/
core/ , JavaScript, 70 linesasymmetric_equality/ ObjectContaining.js - src/
core/ , JavaScript, 45 linesasymmetric_equality/ SetContaining.js - src/
core/ , JavaScript, 26 linesasymmetric_equality/ StringContaining.js - src/
core/ , JavaScript, 21 linesasymmetric_equality/ StringMatching.js - src/
core/ , JavaScript, 15 linesasymmetric_equality/ Truthy.js - src/
core/ , JavaScript, 518 linesbase.js - src/
core/ , JavaScript, 83 linesbuildExpectationResult.j s - src/
core/ , JavaScript, 30 lineserrors.js - src/
core/ , JavaScript, 13 linesformatErrorMsg.js - src/
core/ , JavaScript, 115 linesmatchers/ DiffBuilder.js - src/
core/ , JavaScript, 58 linesmatchers/ MismatchTree.js - src/
core/ , JavaScript, 13 linesmatchers/ NullDiffBuilder.js - src/
core/ , JavaScript, 47 linesmatchers/ ObjectPath.js - src/
core/ , JavaScript, 33 linesmatchers/ async/ toBePending.js - src/
core/ , JavaScript, 34 linesmatchers/ async/ toBeRejected.js - src/
core/ , JavaScript, 62 linesmatchers/ async/ toBeRejectedWith.js - src/
core/ , JavaScript, 124 linesmatchers/ async/ toBeRejectedWithError.js - src/
core/ , JavaScript, 64 linesmatchers/ async/ toBeRejectedWithMatching .js - src/
core/ , JavaScript, 42 linesmatchers/ async/ toBeResolved.js - src/
core/ , JavaScript, 66 linesmatchers/ async/ toBeResolvedTo.js - src/
core/ , JavaScript, 686 linesmatchers/ matchersUtil.js - src/
core/ , JavaScript, 23 linesmatchers/ nothing.js - src/
core/ , JavaScript, 20 linesmatchers/ requireAsyncMatchers.js - src/
core/ , JavaScript, 48 linesmatchers/ requireMatchers.js - src/
core/ , JavaScript, 39 linesmatchers/ toBe.js - src/
core/ , JavaScript, 52 linesmatchers/ toBeCloseTo.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeDefined.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeFalse.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeFalsy.js - src/
core/ , JavaScript, 24 linesmatchers/ toBeGreaterThan.js - src/
core/ , JavaScript, 24 linesmatchers/ toBeGreaterThanOrEqual.j s - src/
core/ , JavaScript, 67 linesmatchers/ toBeInstanceOf.js - src/
core/ , JavaScript, 24 linesmatchers/ toBeLessThan.js - src/
core/ , JavaScript, 24 linesmatchers/ toBeLessThanOrEqual.js - src/
core/ , JavaScript, 33 linesmatchers/ toBeNaN.js - src/
core/ , JavaScript, 33 linesmatchers/ toBeNegativeInfinity.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeNull.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeNullish.js - src/
core/ , JavaScript, 33 linesmatchers/ toBePositiveInfinity.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeTrue.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeTruthy.js - src/
core/ , JavaScript, 23 linesmatchers/ toBeUndefined.js - src/
core/ , JavaScript, 25 linesmatchers/ toContain.js - src/
core/ , JavaScript, 34 linesmatchers/ toEqual.js - src/
core/ , JavaScript, 51 linesmatchers/ toHaveBeenCalled.js - src/
core/ , JavaScript, 97 linesmatchers/ toHaveBeenCalledBefore.j s - src/
core/ , JavaScript, 110 linesmatchers/ toHaveBeenCalledOnceWith .js - src/
core/ , JavaScript, 77 linesmatchers/ toHaveBeenCalledTimes.js - src/
core/ , JavaScript, 108 linesmatchers/ toHaveBeenCalledWith.js - src/
core/ , JavaScript, 38 linesmatchers/ toHaveClass.js - src/
core/ , JavaScript, 38 linesmatchers/ toHaveClasses.js - src/
core/ , JavaScript, 87 linesmatchers/ toHaveNoOtherSpyInteract ions.js - src/
core/ , JavaScript, 70 linesmatchers/ toHaveSize.js - src/
core/ , JavaScript, 80 linesmatchers/ toHaveSpyInteractions.js - src/
core/ , JavaScript, 36 linesmatchers/ toMatch.js - src/
core/ , JavaScript, 82 linesmatchers/ toThrow.js - src/
core/ , JavaScript, 203 linesmatchers/ toThrowError.js - src/
core/ , JavaScript, 83 linesmatchers/ toThrowMatching.js - src/
core/ , JavaScript, 98 linesreporterEvents.js - src/
core/ , JavaScript, 145 linesrequireCore.js - src/
core/ , JavaScript, 578 linesrequireInterface.js - src/
core/ , JavaScript, 43 linesrequireSuffix.js - src/
core/ , JavaScript, 86 linesutil.js - src/
html/ , JavaScript, 118 linesAlertsView.js - src/
html/ , JavaScript, 130 linesBanner.js - src/
html/ , JavaScript, 166 linesFailuresView.js - src/
html/ , JavaScript, 281 linesHtmlReporterV2.js - src/
html/ , JavaScript, 75 linesHtmlReporterV2Urls.js - src/
html/ , JavaScript, 41 linesHtmlSpecFilterv2.js - src/
html/ , JavaScript, 117 linesOverallStatusBar.js - src/
html/ , JavaScript, 98 linesPerformanceView.js - src/
html/ , JavaScript, 87 linesQueryString.js - src/
html/ , JavaScript, 25 linesResultsNode.js - src/
html/ , JavaScript, 87 linesResultsStateBuilder.js - src/
html/ , JavaScript, 113 linesSummaryTreeView.js - src/
html/ , JavaScript, 77 linesTabBar.js - src/
html/ , JavaScript, 52 lineshtmlReporterUtils.js - src/
html/ , JavaScript, 41 linesrequireHtml.js - src/
html/ , JavaScript, 4 linesrequireSuffix.js - src/
version.js , JavaScript, 3 lines - LICENSE, License, 21 lines
- README.md, Text, 62 lines
HaoqiangYe/GPDLBP
d2aed220e6a9d77a3b852677a9f9e894e8d67c99, 28 February 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
5 files
- GPDLBP.py, Python, 74 lines
- run_GPDLBP.sh, Shell, 52 lines, 1 match
- running_function.py, Python, 324 lines, 2 matches
- LICENSE, License, 21 lines
- README.md, Text, 57 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 288 scripts, each with its path and the digest of its content;
- 3 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Availability of Data and Materials
The source code for the GPDLBP algorithm is publicly available on GitHub at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 3, 28 September 2026
- Authors: added Semiu Folaniyi Bello (0000-0003-3982-4624); removed Semiu Folaniyi Bello
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 8 authors, 5 keywords, 4 funders, 95 references.
Cite
This paper
Ye, H., Zhang, S., Qi, L., Liu, X., Bello, S. F., Zhao, C., Luo, W., & Nie, Q. (2026). Integrated Analysis of SNPs and Structural Variations via High-depth Whole-genome Sequencing Reveals the Genetic Architecture and Optimizes Genomic Prediction in Chickens. Poultry science, 105(11), 107561. https://
BibTeX
@article{ye2026integrate
author = {Ye, Haoqiang and Zhang, Siyu and Qi, Lin and Liu, Xiaoqi and Bello, Semiu Folaniyi and Zhao, Changbin and Luo, Wen and Nie, Qinghua},
title = {{Integrated Analysis of SNPs and Structural Variations via High-depth Whole-genome Sequencing Reveals the Genetic Architecture and Optimizes Genomic Prediction in Chickens}},
journal = {Poultry science},
year = {2026},
month = aug,
volume = {105},
number = {11},
pages = {107561},
publisher = {Elsevier},
issn = {0032-5791},
doi = {10.1016/
url = {https://
pmid = {42603395},
pmcid = {PMC13499392}
}
RIS
TY - JOUR
AU - Ye, Haoqiang
AU - Zhang, Siyu
AU - Qi, Lin
AU - Liu, Xiaoqi
AU - Bello, Semiu Folaniyi
AU - Zhao, Changbin
AU - Luo, Wen
AU - Nie, Qinghua
TI - Integrated Analysis of SNPs and Structural Variations via High-depth Whole-genome Sequencing Reveals the Genetic Architecture and Optimizes Genomic Prediction in Chickens
T2 - Poultry science
J2 - Poult Sci
PY - 2026
DA - 2026/
VL - 105
IS - 11
SP - 107561
SN - 0032-5791
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "Integrated Analysis of SNPs and Structural Variations via High-depth Whole-genome Sequencing Reveals the Genetic Architecture and Optimizes Genomic Prediction in Chickens",
"container-title": "Poultry science",
"author": [
{
"family": "Ye",
"given": "Haoqiang"
},
{
"family": "Zhang",
"given": "Siyu"
},
{
"family": "Qi",
"given": "Lin"
},
{
"family": "Liu",
"given": "Xiaoqi"
},
{
"family": "Bello",
"given": "Semiu Folaniyi"
},
{
"family": "Zhao",
"given": "Changbin"
},
{
"family": "Luo",
"given": "Wen"
},
{
"family": "Nie",
"given": "Qinghua"
}
],
"container-title-short":
"volume": "105",
"issue": "11",
"page": "107561",
"DOI": "10.1016/
"PMID": "42603395",
"PMCID": "PMC13499392",
"ISSN": "0032-5791",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
3
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1186/s12711-026-01078-1 [code]
- Functional genomic dissection and prediction of body size traits in pigs.Journal: Genetics, selection, evolution : GSEIn common: other, genetics / omics, cellular / molecular, 2 references
- [2] doi:10.3390/biom16081187
- Genetic Diversity and Runs of Homozygosity in Three Masu Salmon (&
lt;i& gt;Oncorhynchus masou& lt;/ i& gt;) Populations Based on Whole-Genome Resequencing Data. Journal: BiomoleculesIn common: other, genetics / omics, cellular / molecular, 3 references - [3] doi:10.1038/s41586-026-10391-0 [code]
- Cell-type-targeted mitochondrial transplantation rescues cell degeneration.Journal: NatureIn common: PyTorch, NumPy, cellular / molecular, 2 references
- [4] doi:10.1093/g3journal/jkag095
- Non-uniform chromosomal SNP density biases sites of meiotic crossovers in Drosophila melanogaster.Journal: G3 (Bethesda, Md.)In common: other, genetics / omics, 3 references
- [5] doi:10.1038/s41467-026-73902-7 [code]
- GWAS on short tandem repeats identifies genetic mechanisms in Alzheimer's disease.Journal: Nature communicationsIn common: NumPy, genetics / omics, cellular / molecular, 2 references
- [6] doi:10.1038/s41586-026-10629-x [code]
- Whole-genome duplication shaped cell-type evolution in the vertebrate brain.Journal: NatureIn common: NumPy, other, genetics / omics, cellular / molecular, 2 references
- [7] doi:10.1186/s12864-026-12683-1
- A new chromosome-level genome assembly for western painted turtle Chrysemys picta bellii, a model for extreme physiological adaptations.Journal: BMC genomicsIn common: other, cellular / molecular, 3 references
- [8] doi:10.1093/nargab/lqag046 [code]
- Beyond chromatin accessibility: bulk ATAC-seq as an integrative assay to portray genomes and epigenomes.Journal: NAR genomics and bioinformaticsIn common: genetics / omics, 3 references
- [9] doi:10.3389/fnbeh.2026.1878769 [code]
- &
lt;i& gt;ADAMTS18& lt;/ i& gt; as a candidate gene linking social stress and depression: a cross-species study in African wild dogs (& lt;i& gt;Lycaon pictus& lt;/ i& gt;) and humans. Journal: Frontiers in behavioral neuroscienceIn common: other, genetics / omics, cellular / molecular, 2 references - [10] doi:10.1093/molbev/msag035 [code]
- Mammalian mitochondrial DNA accumulates insertions and deletions with age in energetically demanding tissues.Journal: Molecular biology and evolutionIn common: NumPy, genetics / omics, cellular / molecular, 2 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 288 scripts, and 3 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:dc4340d1ba185a13…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
