use of io.repseq.gen.VDJTrimming in project repseqio by repseqio.
the class IndependentVDJTrimmingModel method create.
@Override
public VDJTrimmingGenerator create(RandomGenerator random, List<VDJCGene> vGenes, List<VDJCGene> dGenes, List<VDJCGene> jGenes, List<VDJCGene> cGenes) {
final Map<VDJCGene, GeneTrimmingGenerator> vGenerators = new HashMap<>();
final Map<VDJCGene, DTrimmingGenerator> dGenerators = new HashMap<>();
final Map<VDJCGene, GeneTrimmingGenerator> jGenerators = new HashMap<>();
for (VDJCGene gene : vGenes) vGenerators.put(gene, v.create(random, gene));
for (VDJCGene gene : dGenes) dGenerators.put(gene, d.create(random, gene));
for (VDJCGene gene : jGenes) jGenerators.put(gene, j.create(random, gene));
return new VDJTrimmingGenerator() {
@Override
public VDJTrimming sample(VDJCGenes genes) {
if (genes.d == null)
return new VDJTrimming(vGenerators.get(genes.v).sample(), jGenerators.get(genes.j).sample());
else
return new VDJTrimming(vGenerators.get(genes.v).sample(), jGenerators.get(genes.j).sample(), dGenerators.get(genes.d).sample());
}
};
}
use of io.repseq.gen.VDJTrimming in project repseqio by repseqio.
the class BasicGGeneModel method create.
@Override
public GGeneGenerator create(RandomGenerator random, VDJCLibrary library) {
final VDJCGenesGenerator vdjcGenesGenerator = vdjcGenesModel.create(random, library);
List<VDJCGene> vGenes = vdjcGenesGenerator.genes(GeneType.Variable);
List<VDJCGene> dGenes = vdjcGenesGenerator.genes(GeneType.Diversity);
List<VDJCGene> jGenes = vdjcGenesGenerator.genes(GeneType.Joining);
List<VDJCGene> cGenes = vdjcGenesGenerator.genes(GeneType.Constant);
final VDJTrimmingGenerator trimmingGenerator = trimmingModel.create(random, vGenes, dGenes, jGenes, cGenes);
final InsertGenerator vInsertGenerator = vInsertModel.create(random, true, vGenes, dGenes, jGenes, cGenes);
final InsertGenerator djInsertGenerator = dGenes.isEmpty() ? null : djInsertModel.create(random, false, vGenes, dGenes, jGenes, cGenes);
return new GGeneGenerator() {
@Override
public GGene generate() {
VDJCGenes vdjcGenes = vdjcGenesGenerator.sample();
VDJTrimming trimming = trimmingGenerator.sample(vdjcGenes);
assert !vdjcGenes.isDDefined() || (vdjcGenes.isDDefined() && djInsertGenerator != null);
NucleotideSequence vInsert;
NucleotideSequence djInsert;
if (vdjcGenes.isDDefined()) {
assert djInsertGenerator != null;
GGene tempGene = new GGene(null, vdjcGenes, trimming, NucleotideSequence.EMPTY, NucleotideSequence.EMPTY);
vInsert = vInsertGenerator.generate(tempGene);
djInsert = djInsertGenerator.generate(tempGene);
} else {
GGene tempGene = new GGene(null, vdjcGenes, trimming, NucleotideSequence.EMPTY, null);
vInsert = vInsertGenerator.generate(tempGene);
djInsert = null;
}
return new GGene(null, vdjcGenes, trimming, vInsert, djInsert);
}
};
}
use of io.repseq.gen.VDJTrimming in project repseqio by repseqio.
the class BasicGCloneModelTest method test1.
@Test
public void test1() throws Exception {
GGeneModel geneModel = new BasicGGeneModel(new IndependentVDJCGenesModel(b("TRBV12-2*00", 1.0).put("TRBV12-3*00", 0.0).get(), b("TRBD1*00", 1.0).put("TRBD2*00", 0.0).get(), b("TRBJ1-2*00", 1.0).put("TRBJ1-3*00", 0.0).get(), b("TRBC1*00", 1.0).put("TRBC2*00", 0.0).get()), new IndependentVDJTrimmingModel(new CommonCategoricalGeneTrimmingModel(b(-1, 1.0).get()), new CommonCategoricalDGeneTrimmingModel(b("-2|-3", 1.0).get()), new CommonCategoricalGeneTrimmingModel(b(-4, 1.0).get())), new FixedInsertModel(new NucleotideSequence("ATTA")), new FixedInsertModel(new NucleotideSequence("GACA")));
BasicGCloneModel model = new BasicGCloneModel(new VDJCLibraryId("default", 9606), new FixedRealModel(1.0), b("TRB", geneModel).get());
TestUtil.assertJson(model);
GCloneGenerator gen = model.create(new Well19937c(123), VDJCLibraryRegistry.getDefault());
GClone clone = gen.sample();
TestUtil.assertJson(clone);
GGene trb = clone.genes.get("TRB");
assertEquals(trb.vdjcGenes.v.getName(), "TRBV12-2*00");
assertEquals(trb.vdjcGenes.d.getName(), "TRBD1*00");
assertEquals(trb.vdjcGenes.j.getName(), "TRBJ1-2*00");
assertEquals(trb.vdjcGenes.c.getName(), "TRBC1*00");
assertEquals(new VDJTrimming(-1, -4, -2, -3), trb.vdjTrimming);
assertEquals(new NucleotideSequence("ATTA"), trb.vInsert);
assertEquals(new NucleotideSequence("GACA"), trb.djInsert);
}
Aggregations