/// <summary> /// Write out the ploidy bed file if ploidy information is available from the vcf header /// Only create the normal XX or XY ploidy bed file so that Canvas can properly classify any abnormalities as variant. /// If ploidy Y is > 1 produce the XY ploidy bed file, otherwise produce the XX ploidy bed file /// </summary> public IFileLocation CreateGermlinePloidyBed(Vcf vcf, GenomeMetadata genomeMetadata, IDirectoryLocation sampleSandbox) { string sexKaryotype = PloidyCorrector.GetSexChromosomeKaryotypeFromVcfHeader(vcf.VcfFile.FullName); if (sexKaryotype == null) { _logger.Warn($"Sex chromosome ploidy not found in {vcf.VcfFile} header. No ploidy will be provided to Canvas."); return(null); } _logger.Info($"Found sex chromosome ploidy {PloidyCorrector.PrintPloidy(sexKaryotype)} in {vcf.VcfFile}"); var ploidyInfo = new SamplePloidyInfo(); IFileLocation ploidyBed = sampleSandbox.GetFileLocation("ploidy.bed.gz"); if (sexKaryotype.ToLower().Contains("y")) { ploidyInfo.ProvidedPloidy = SexPloidyInfo.NormalMale; _logger.Info($"Creating male ploidy bed file at {ploidyBed}."); } else { ploidyInfo.ProvidedPloidy = SexPloidyInfo.NormalFemale; _logger.Info($"Creating female ploidy bed file at {ploidyBed}."); } string headerLine = $"{PloidyCorrector.ReferenceSexChromosomeKaryotype}={PloidyCorrector.PrettyPrintPloidy(ploidyInfo.ProvidedPloidyX.Value, ploidyInfo.ProvidedPloidyY.Value)}"; _ploidyFixer.WritePloidyBedFile(ploidyInfo, genomeMetadata, _ploidyFixer.GetParRegions(genomeMetadata), ploidyBed.FullName, headerLine, ploidy => true); return(ploidyBed); }
public SpecialsController(Vcf vcf, Transform firstPersonTransform) { int specialsCount = vcf.Specials.Count; _specials = new Special[specialsCount]; List <SpecialType> specialsList = vcf.Specials; for (int i = 0; i < specialsCount; ++i) { _specials[i] = new Special(specialsList[i]); } if (firstPersonTransform != null) { _panel = new SpecialsPanel(firstPersonTransform); for (int i = 0; i < MaxSpecials; ++i) { if (i < specialsCount) { _panel.TryGetSpecialSprites(specialsList[i], out _specials[i].OnSprite, out _specials[i].OffSprite); _panel.SetSpecialHealthGroup(i, 0); _panel.SetSpecialAmmoCount(i, _specials[i].Ammo); } else { _panel.SetSpecialHealthGroup(i, 0); } } _panel.SetActiveSpecial(_activeSpecial, _specials); } }
/// <summary> /// Write out the ploidy vcf file if ploidy information is available from the vcf header /// </summary> public Vcf CreatePloidyVcf(SampleSet <SexPloidyInfo> ploidyInfos, GenomeMetadata genomeMetadata, IDirectoryLocation sampleSandbox) { var ploidyVcf = new Vcf(sampleSandbox.GetFileLocation(PloidyVcfName)); _ploidyFixer.WritePloidyVcfFile(ploidyVcf, ploidyInfos, genomeMetadata); return(ploidyVcf); }
public CanvasSmallPedigreeOutput( Vcf cnvVcf, SampleSet <IntermediateOutput> intermediateOutputs) { CnvVcf = cnvVcf; IntermediateOutputs = intermediateOutputs; }
public CanvasTumorNormalWgsInput(Bam tumorBam, Bam normalBam, Vcf normalVcf, Vcf somaticVcf, GenomeMetadata genomeMetadata) { TumorBam = tumorBam; NormalBam = normalBam; NormalVcf = normalVcf; SomaticVcf = somaticVcf; GenomeMetadata = genomeMetadata; }
public CanvasTumorNormalWgsInput(Bam tumorBam, Bam normalBam, Vcf normalVcf, Vcf somaticVcf, GenomeMetadata genomeMetadata, SexPloidyInfo sexPloidy) { TumorBam = tumorBam; NormalBam = normalBam; NormalVcf = normalVcf; SomaticVcf = somaticVcf; GenomeMetadata = genomeMetadata; SexPloidy = sexPloidy; }
public static Vcf ParseVcf(string filename) { var vcf = new Vcf(); using (var br = new Bwd2Reader(filename)) { br.FindNext("VCFC"); vcf.VariantName = br.ReadCString(16); vcf.VdfFilename = br.ReadCString(13); vcf.VtfFilename = br.ReadCString(13); vcf.EngineType = br.ReadUInt32(); vcf.SuspensionType = br.ReadUInt32(); vcf.BrakesType = br.ReadUInt32(); vcf.WdfFrontFilename = br.ReadCString(13); vcf.WdfMidFilename = br.ReadCString(13); vcf.WdfBackFilename = br.ReadCString(13); vcf.ArmorFront = br.ReadUInt32(); vcf.ArmorLeft = br.ReadUInt32(); vcf.ArmorRight = br.ReadUInt32(); vcf.ArmorRear = br.ReadUInt32(); vcf.ChassisFront = br.ReadUInt32(); vcf.ChassisLeft = br.ReadUInt32(); vcf.ChassisRight = br.ReadUInt32(); vcf.ChassisRear = br.ReadUInt32(); vcf.ArmorOrChassisLeftToAdd = br.ReadUInt32(); br.FindNext("WEPN"); vcf.Weapons = new List <VcfWeapon>(); while (br.Current != null && br.Current.Name != "EXIT") { var vcfWeapon = new VcfWeapon { MountPoint = (MountPoint)br.ReadUInt32(), GdfFilename = br.ReadCString(13) }; vcf.Weapons.Add(vcfWeapon); br.Next(); } } if (vcf.WdfFrontFilename.ToUpper() != "NULL") { vcf.FrontWheelDef = WdfParser.ParseWdf(vcf.WdfFrontFilename); } if (vcf.WdfMidFilename.ToUpper() != "NULL") { vcf.MidWheelDef = WdfParser.ParseWdf(vcf.WdfMidFilename); } if (vcf.WdfBackFilename.ToUpper() != "NULL") { vcf.BackWheelDef = WdfParser.ParseWdf(vcf.WdfBackFilename); } return(vcf); }
public static CanvasOutput GetFromStub(IFileLocation stub) { Vcf cnvVcf = Vcf.GetVcfFromStub(stub); IFileLocation coverageAndVariantFrequencies = stub.AppendName(".CoverageAndVariantFrequency.txt"); IFileLocation variantFrequencies = stub.AppendName(".VFResults.txt.gz"); IFileLocation variantFrequenciesBaf = stub.AppendName(".VFResults.baf"); IFileLocation partitioned = stub.AppendName(".partitioned"); return(new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned)); }
private CanvasOutput GetCanvasOutput(string sampleId, IDirectoryLocation sampleSandbox) { var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); var tempCnvDirectory = sampleSandbox.GetDirectoryLocation($"TempCNV_{sampleId}"); var variantFrequencies = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz"); var variantFrequenciesBaf = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz.baf"); IFileLocation coverageAndVariantFrequencies = sampleSandbox.GetFileLocation("CNV.CoverageAndVariantFrequency.txt"); IFileLocation tempStub = tempCnvDirectory.GetFileLocation($"{sampleId}"); IFileLocation partitioned = tempStub.AppendName(".partitioned"); return(new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned)); }
public IntermediateOutput(Vcf cnvVcf, IFileLocation coverageAndVariantFrequencies, IFileLocation variantFrequencies, IFileLocation variantFrequenciesBaf, IFileLocation partitioned, IFileLocation coverageBigwig, BgzfFile bAlleleBedgraph, BgzfFile copyNumberBedgraph) { CnvVcf = cnvVcf; #pragma warning disable CS0618 // Type or member is obsolete CoverageAndVariantFrequencies = coverageAndVariantFrequencies; VariantFrequencies = variantFrequencies; VariantFrequenciesBaf = variantFrequenciesBaf; Partitioned = partitioned; #pragma warning restore CS0618 // Type or member is obsolete CoverageBigwig = coverageBigwig; BAlleleBedgraph = bAlleleBedgraph; CopyNumberBedgraph = copyNumberBedgraph; }
public CanvasTumorNormalEnrichmentInput( Bam tumorBam, Bam normalBam, Vcf normalVcf, Vcf somaticVcf, GenomeMetadata genomeMetadata, NexteraManifest nexteraManifest) { TumorBam = tumorBam; NormalBam = normalBam; NormalVcf = normalVcf; SomaticVcf = somaticVcf; GenomeMetadata = genomeMetadata; NexteraManifest = nexteraManifest; }
private CanvasSmallPedigreeOutput GetCanvasOutput(SampleSet <Bam> pedigreeBams, IDirectoryLocation sampleSandbox) { var readGroupSamples = pedigreeBams.SelectData(GetReadGroupSample); var intermediateResults = readGroupSamples.SelectData(readGroupSample => { var variantFrequencies = SingleSampleCallset.GetVfSummaryPath(sampleSandbox, readGroupSample); var variantFrequenciesBaf = SingleSampleCallset.GetVfSummaryBafPath(sampleSandbox, readGroupSample); var partitioned = SingleSampleCallset.GetPartitionedPath(sampleSandbox, readGroupSample); var coverageAndVariantFrequencies = SingleSampleCallset.GetCoverageAndVariantFrequencyOutput(sampleSandbox, readGroupSample); return(new IntermediateOutput(coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned)); }); var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); return(new CanvasSmallPedigreeOutput(cnvVcf, intermediateResults)); }
public CanvasOutput( Vcf cnvVcf, IFileLocation coverageAndVariantFrequencies, IFileLocation variantFrequencies = null, IFileLocation variantFrequenciesBaf = null, IFileLocation partitioned = null, IFileLocation binSize = null, IFileLocation normalBinned = null) { CnvVcf = cnvVcf; CoverageAndVariantFrequencies = coverageAndVariantFrequencies; VariantFrequencies = variantFrequencies; VariantFrequenciesBaf = variantFrequenciesBaf; Partitioned = partitioned; }
/// <summary> /// Write out the ploidy bed file if ploidy information is available from the vcf header /// </summary> public IFileLocation CreatePloidyBed(Vcf vcf, GenomeMetadata genomeMetadata, IDirectoryLocation sampleSandbox) { IFileLocation ploidyBed = sampleSandbox.GetFileLocation("ploidy.bed.gz"); string fastaPath = genomeMetadata.Sequences.First().FastaPath; if (_ploidyFixer.GeneratePloidyBedFileFromVcf( genomeMetadata, fastaPath, vcf.VcfFile.FullName, ploidyBed.FullName, sampleSandbox.FullName, _logger, _workManager)) { return(ploidyBed); } _logger.Warn($"Sex chromosome ploidy not found in {vcf.VcfFile} header. No ploidy will be provided to Canvas."); return(null); }
private CanvasSmallPedigreeOutput GetCanvasOutput(SampleSet <CanvasPedigreeSample> pedigreeSamples, IDirectoryLocation sampleSandbox) { var intermediateResults = pedigreeSamples.SelectSamples(sampleInfo => { var sampleId = sampleInfo.Id; var variantFrequencies = SingleSampleCallset.GetVfSummaryPath(sampleSandbox, sampleId); var variantFrequenciesBaf = SingleSampleCallset.GetVfSummaryBafPath(sampleSandbox, sampleId); var partitioned = SingleSampleCallset.GetPartitionedPath(sampleSandbox, sampleId); var coverageAndVariantFrequencies = SingleSampleCallset.GetCoverageAndVariantFrequencyOutput(sampleSandbox, sampleId); var singleSampleVcf = SingleSampleCallset.GetVcfOutput(sampleSandbox, sampleId); var coverageBigwig = SingleSampleCallset.GetCoverageBigWig(sampleSandbox, sampleId); var bAlleleBedgraph = SingleSampleCallset.GetBAlleleBedGraph(sampleSandbox, sampleId); var copyNumberBedgraph = SingleSampleCallset.GetCopyNumberBedGraph(sampleSandbox, sampleId); return(new IntermediateOutput(new Vcf(singleSampleVcf), coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned, coverageBigwig, bAlleleBedgraph, copyNumberBedgraph)); }); var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); return(new CanvasSmallPedigreeOutput(cnvVcf, intermediateResults)); }
private CanvasEnrichmentOutput GetCanvasOutput(string sampleId, IDirectoryLocation sampleSandbox) { var cnvVcf = new Vcf(sampleSandbox.GetFileLocation("CNV.vcf.gz")); var tempCnvDirectory = sampleSandbox.GetDirectoryLocation($"TempCNV_{sampleId}"); var variantFrequencies = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz"); var variantFrequenciesBaf = tempCnvDirectory.GetFileLocation($"VFResults{sampleId}.txt.gz.baf"); IFileLocation coverageAndVariantFrequencies = sampleSandbox.GetFileLocation("CNV.CoverageAndVariantFrequency.txt"); IFileLocation tempStub = tempCnvDirectory.GetFileLocation($"{sampleId}"); IFileLocation partitioned = tempStub.AppendName(".partitioned"); var canvasOutput = new CanvasOutput(cnvVcf, coverageAndVariantFrequencies, variantFrequencies, variantFrequenciesBaf, partitioned); IFileLocation binSize = tempStub.AppendName(".binsize"); IFileLocation normalBinned = tempStub.AppendName(".normal.binned"); IFileLocation unsmoothedCnd = tempStub.AppendName(".ratio.binned.cnd"); if (!binSize.Exists) { binSize = null; } return(new CanvasEnrichmentOutput(canvasOutput, binSize, normalBinned, unsmoothedCnd)); }
private CanvasSmallPedigreeOutput Load(CanvasSmallPedigreeInput input) { var intermediateOutputs = input.Samples.SelectData((info, sample) => { var stub = GetSingleSampleOutputStub(info); var coverageAndVariantFrequency = SingleSampleCallset.GetCoverageAndVariantFrequencyOutput(stub); var singleSampleVcf = new Vcf(SingleSampleCallset.GetVcfOutput(stub)); var partitioned = SingleSampleCallset.GetPartitionedPath(stub); var variantFrequencies = SingleSampleCallset.GetVfSummaryPath(stub); var variantFrequenciesBaf = SingleSampleCallset.GetVfSummaryBafPath(stub); var coverageBigwig = SingleSampleCallset.GetCoverageBigWig(stub); var bAlleleBedgraph = SingleSampleCallset.GetBAlleleBedGraph(stub); var copyNumberBedgraph = SingleSampleCallset.GetCopyNumberBedGraph(stub); return(new IntermediateOutput(singleSampleVcf, coverageAndVariantFrequency, variantFrequencies, variantFrequenciesBaf, partitioned, coverageBigwig, bAlleleBedgraph, copyNumberBedgraph)); }); return(new CanvasSmallPedigreeOutput(new Vcf(GetPedigreeVcf()), intermediateOutputs)); }
public void Configure(Vdf vdf, Vcf vcf) { Vdf = vdf; Vcf = vcf; _vehicleHealthGroups = Vdf.PartsThirdPerson.Count; int systemCount = (int)SystemType.TotalSystems; _vehicleHitPoints = new int[systemCount]; _vehicleStartHitPoints = new int[systemCount]; _vehicleStartHitPoints[(int)SystemType.Vehicle] = VehicleStartHealth; _vehicleStartHitPoints[(int)SystemType.Suspension] = CoreStartHealth; _vehicleStartHitPoints[(int)SystemType.Brakes] = CoreStartHealth; _vehicleStartHitPoints[(int)SystemType.Engine] = CoreStartHealth; _vehicleStartHitPoints[(int)SystemType.FrontArmor] = (int)vcf.ArmorFront; _vehicleStartHitPoints[(int)SystemType.RightArmor] = (int)vcf.ArmorRight; _vehicleStartHitPoints[(int)SystemType.BackArmor] = (int)vcf.ArmorRear; _vehicleStartHitPoints[(int)SystemType.LeftArmor] = (int)vcf.ArmorLeft; _vehicleStartHitPoints[(int)SystemType.FrontChassis] = (int)vcf.ChassisFront; _vehicleStartHitPoints[(int)SystemType.RightChassis] = (int)vcf.ChassisRight; _vehicleStartHitPoints[(int)SystemType.BackChassis] = (int)vcf.ChassisRear; _vehicleStartHitPoints[(int)SystemType.LeftChassis] = (int)vcf.ChassisLeft; _vehicleStartHitPoints[(int)SystemType.TireFL] = TireStartHealth; _vehicleStartHitPoints[(int)SystemType.TireFR] = TireStartHealth; _vehicleStartHitPoints[(int)SystemType.TireBL] = TireStartHealth; _vehicleStartHitPoints[(int)SystemType.TireBR] = TireStartHealth; for (int i = 0; i < systemCount; ++i) { _vehicleHitPoints[i] = _vehicleStartHitPoints[i]; } }
public CanvasSmallPedigreeInput(GenomeMetadata genomeMetadata, SampleSet <CanvasPedigreeSample> samples, Vcf vcf) { GenomeMetadata = genomeMetadata; Samples = samples; Vcf = vcf; }
public GameObject ImportVcf(string filename, bool importFirstPerson, out Vdf vdf) { Vcf vcf = VcfParser.ParseVcf(filename); vdf = VdfParser.ParseVdf(vcf.VdfFilename); Vtf vtf = VtfParser.ParseVtf(vcf.VtfFilename); Car carObject = Object.Instantiate(_carPrefab); carObject.Configure(vdf, vcf); carObject.gameObject.name = vdf.Name + " (" + vcf.VariantName + ")"; foreach (VLoc vLoc in vdf.VLocs) { GameObject vlocGo = new GameObject("VLOC"); vlocGo.transform.parent = carObject.transform; vlocGo.transform.localRotation = Quaternion.LookRotation(vLoc.Forward, vLoc.Up); vlocGo.transform.localPosition = vLoc.Position; } GameObject chassis = new GameObject("Chassis"); chassis.transform.parent = carObject.transform; GameObject thirdPerson = new GameObject("ThirdPerson"); thirdPerson.transform.parent = chassis.transform; Transform[] weaponMountTransforms = new Transform[vdf.HLocs.Count]; for (int i = 0; i < vdf.HLocs.Count; ++i) { HLoc hloc = vdf.HLocs[i]; Transform mountPoint = new GameObject(hloc.Label).transform; mountPoint.parent = thirdPerson.transform; mountPoint.localRotation = Quaternion.LookRotation(hloc.Forward, hloc.Up); mountPoint.localPosition = hloc.Position; weaponMountTransforms[i] = mountPoint; } Dictionary <string, GameObject> partDict = new Dictionary <string, GameObject>(); for (int i = 0; i < vdf.PartsThirdPerson.Count; ++i) { GameObject healthObject = new GameObject("Health " + i); healthObject.transform.SetParent(thirdPerson.transform); ImportCarParts(partDict, healthObject, vtf, vdf.PartsThirdPerson[i], _noColliderPrefab, false, false, i); if (i != 0) { healthObject.SetActive(false); } } MeshFilter[] meshFilters = thirdPerson.GetComponentsInChildren <MeshFilter>(); Bounds bounds = new Bounds(); bounds.SetMinMax(Vector3.one * float.MaxValue, Vector3.one * float.MinValue); foreach (MeshFilter meshFilter in meshFilters) { Vector3 min = Vector3.Min(bounds.min, meshFilter.transform.position + meshFilter.sharedMesh.bounds.min) - thirdPerson.transform.position; Vector3 max = Vector3.Max(bounds.max, meshFilter.transform.position + meshFilter.sharedMesh.bounds.max) - thirdPerson.transform.position; bounds.SetMinMax(min, max); } GameObject chassisCollider = new GameObject("ChassisColliders"); chassisCollider.transform.parent = carObject.transform; ImportCarParts(partDict, chassisCollider, vtf, vdf.PartsThirdPerson[0], _carBodyPrefab, true); for (int i = 0; i < vcf.Weapons.Count; ++i) { VcfWeapon weapon = vcf.Weapons[i]; int mountPoint = weapon.MountPoint; HLoc hloc = vdf.HLocs[mountPoint]; weapon.RearFacing = hloc.FacingDirection == 2; SdfPart[] partsArray; switch (hloc.MeshType) { case HardpointMeshType.Top: partsArray = weapon.Gdf.TopParts; break; case HardpointMeshType.Side: partsArray = weapon.Gdf.SideParts; break; case HardpointMeshType.Inside: partsArray = weapon.Gdf.InsideParts; break; case HardpointMeshType.Turret: partsArray = weapon.Gdf.TurretParts; break; default: partsArray = null; break; } if (partsArray != null) { Transform weaponTransform = new GameObject(weapon.Gdf.Name).transform; weaponTransform.SetParent(weaponMountTransforms[i]); weaponTransform.localPosition = Vector3.zero; weaponTransform.localRotation = Quaternion.identity; ImportCarParts(partDict, weaponTransform.gameObject, vtf, partsArray, _noColliderPrefab, false); weapon.Transform = weaponTransform; // Disable depth test for 'inside' weapons, otherwise they are obscured. if (hloc.MeshType == HardpointMeshType.Inside) { MeshRenderer weaponRenderer = weaponTransform.GetComponentInChildren <MeshRenderer>(); if (weaponRenderer != null) { weaponRenderer.sharedMaterial.shader = Shader.Find("Custom/CutOutWithoutZ"); } } } else { weapon.Transform = chassis.transform; } } // Note: The following is probably how I76 does collision detection. Two large boxes that encapsulate the entire vehicle. // Right now this won't work with Open76's raycast suspension, so I'm leaving this off for now. Investigate in the future. //var innerBox = chassisCollider.AddComponent<BoxCollider>(); //innerBox.center = vdf.BoundsInner.center; //innerBox.size = vdf.BoundsInner.size; //var outerBox = chassisCollider.AddComponent<BoxCollider>(); //outerBox.center = vdf.BoundsOuter.center; //outerBox.size = vdf.BoundsOuter.size; RaySusp[] frontWheels = null; if (vcf.FrontWheelDef != null) { frontWheels = CreateWheelPair(partDict, "Front", 0, carObject.gameObject, vdf, vtf, vcf.FrontWheelDef); carObject.Movement.FrontWheels = frontWheels; } if (vcf.MidWheelDef != null) { CreateWheelPair(partDict, "Mid", 2, carObject.gameObject, vdf, vtf, vcf.MidWheelDef); } RaySusp[] rearWheels = null; if (vcf.BackWheelDef != null) { rearWheels = CreateWheelPair(partDict, "Back", 4, carObject.gameObject, vdf, vtf, vcf.BackWheelDef); carObject.Movement.RearWheels = rearWheels; } if (importFirstPerson) { GameObject firstPerson = new GameObject("FirstPerson"); firstPerson.transform.parent = chassis.transform; ImportCarParts(partDict, firstPerson, vtf, vdf.PartsFirstPerson, _noColliderPrefab, false, true, 0, LayerMask.NameToLayer("FirstPerson")); carObject.InitPanels(); firstPerson.SetActive(false); } carObject.Movement.Initialise(chassis.transform, frontWheels, rearWheels); return(carObject.gameObject); }
public StringBuilder GetMultiSampleCommandLine(SampleSet <CanvasPedigreeSample> samples, GenomeMetadata genomeMetadata, Vcf vcf, IDirectoryLocation sampleSandbox) { StringBuilder commandLine = new StringBuilder(); foreach (var sampleKvp in samples) { var sampleId = sampleKvp.Key.Id; var sample = sampleKvp.Value; commandLine.Append($" --bam \"{sample.Bam.BamFile}\""); if (sample.SampleType != SampleType.Other) { commandLine.Append($" --{sample.SampleType.GetOptionName()} {sampleId}"); } } IFileLocation kmerFasta = _annotationFileProvider.GetKmerFasta(genomeMetadata); commandLine.Append($" --reference \"{kmerFasta}\""); IDirectoryLocation wholeGenomeFasta = new FileLocation(genomeMetadata.Sequences.First().FastaPath).Directory; commandLine.Append($" --genome-folder \"{wholeGenomeFasta}\""); IFileLocation filterBed = _annotationFileProvider.GetFilterBed(genomeMetadata); commandLine.Append($" --filter-bed \"{filterBed}\""); commandLine.Append($" --output \"{sampleSandbox}\""); return(commandLine); }
public CanvasResequencingInput(Bam bam, Vcf vcf, GenomeMetadata genomeMetadata) { Bam = bam; GenomeMetadata = genomeMetadata; Vcf = vcf; }
public WeaponsController(Car car, Vcf vcf, Transform firstPersonTransform) { _car = car; int weaponCount = vcf.Weapons.Count; _weapons = new Weapon[weaponCount]; _weaponAudio = car.gameObject.AddComponent <AudioSource>(); _weaponAudio.volume = 0.5f; _weaponEmptySound = CacheManager.Instance.GetAudioClip("cammo.gpw"); _weaponBrokenSound = CacheManager.Instance.GetAudioClip("cwstat.gpw"); _firingWeapons = new List <Weapon>(5); _weaponGroups = new List <int>(); List <VcfWeapon> weaponsList = vcf.Weapons; weaponsList.Sort((x, y) => { int compare = x.RearFacing.CompareTo(y.RearFacing); if (compare != 0) { return(compare); } return(x.Gdf.WeaponGroup.CompareTo(y.Gdf.WeaponGroup)); }); int seperatorIndex = -1; for (int i = 0; i < weaponCount; ++i) { AudioClip fireSound = CacheManager.Instance.GetAudioClip(weaponsList[i].Gdf.SoundName); _weapons[i] = new Weapon(weaponsList[i].Gdf, weaponsList[i].Transform) { FireSound = fireSound, RearFacing = weaponsList[i].RearFacing, Index = i }; if (_weapons[i].RearFacing) { if (seperatorIndex == -1) { seperatorIndex = i; } _weapons[i].WeaponGroupOffset += 100; } if (!_weaponGroups.Contains(_weapons[i].WeaponGroupOffset)) { _weaponGroups.Add(_weapons[i].WeaponGroupOffset); } } if (firstPersonTransform != null) { _panel = new WeaponsPanel(firstPersonTransform); _panel.SetWeaponCount(weaponCount); for (int i = 0; i < weaponCount; ++i) { _panel.SetWeaponHealthGroup(i, 0); _panel.SetWeaponAmmoCount(i, _weapons[i].Ammo); _panel.TryGetWeaponSprites(weaponsList[i].Gdf, out _weapons[i].OnSprite, out _weapons[i].OffSprite); } if (seperatorIndex != -1) { _panel.SeparatorIndex = seperatorIndex; } if (_weaponGroups.Count > 0) { _panel.UpdateActiveWeaponGroup(_weaponGroups[_activeGroup], _weapons); } } }
public StringBuilder GetMultiSampleCommandLine(SampleSet <CanvasPedigreeSample> samples, GenomeMetadata genomeMetadata, Vcf vcf, IDirectoryLocation sampleSandbox) { StringBuilder commandLine = new StringBuilder(); // move proband to the front of collection (enum Proband gets the lowest int value ) var sortedBySampleTypeSamples = samples.OrderBy(sample => sample.Value.SampleType); foreach (var sampleKvp in sortedBySampleTypeSamples) { var sampleId = sampleKvp.Key.Id; var sample = sampleKvp.Value; commandLine.Append($" --bam \"{sample.Bam.BamFile}\" {sample.SampleType} {sampleId}"); } IFileLocation kmerFasta = _annotationFileProvider.GetKmerFasta(genomeMetadata); commandLine.Append($" --reference \"{kmerFasta}\""); IDirectoryLocation wholeGenomeFasta = new FileLocation(genomeMetadata.Contigs().First().FastaPath).Directory; commandLine.Append($" --genome-folder \"{wholeGenomeFasta}\""); IFileLocation filterBed = _annotationFileProvider.GetFilterBed(genomeMetadata); commandLine.Append($" --filter-bed \"{filterBed}\""); commandLine.Append($" --output \"{sampleSandbox}\""); return(commandLine); }