Tuesday, July 6, 2021

Mutect - java.lang.IllegalArgumentException: Comparison method violates its general contract!

 This is likely caused by you trying to use a decent version of java. At the time of this writing (July 2021) the latest version of mutect (1.1.4) still needs java 1.6.

Download and install the 1.6 Java Runtime Environment from here, and the problem will likely disappear. Here is the full stack trace I was getting:


##### ERROR ------------------------------------------------------------------------------------------
##### ERROR stack trace
java.lang.RuntimeException: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTect.map(MuTect.java:712)
at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTect.map(MuTect.java:34)
at org.broadinstitute.sting.gatk.traversals.TraverseLociNano$TraverseLociMap.apply(TraverseLociNano.java:243)
at org.broadinstitute.sting.gatk.traversals.TraverseLociNano$TraverseLociMap.apply(TraverseLociNano.java:231)
at org.broadinstitute.sting.utils.nanoScheduler.NanoScheduler.executeSingleThreaded(NanoScheduler.java:287)
at org.broadinstitute.sting.utils.nanoScheduler.NanoScheduler.execute(NanoScheduler.java:252)
at org.broadinstitute.sting.gatk.traversals.TraverseLociNano.traverse(TraverseLociNano.java:120)
at org.broadinstitute.sting.gatk.traversals.TraverseLociNano.traverse(TraverseLociNano.java:67)
at org.broadinstitute.sting.gatk.traversals.TraverseLociNano.traverse(TraverseLociNano.java:23)
at org.broadinstitute.sting.gatk.executive.LinearMicroScheduler.execute(LinearMicroScheduler.java:74)
at org.broadinstitute.sting.gatk.GenomeAnalysisEngine.execute(GenomeAnalysisEngine.java:281)
at org.broadinstitute.sting.gatk.CommandLineExecutable.execute(CommandLineExecutable.java:113)
at org.broadinstitute.sting.commandline.CommandLineProgram.start(CommandLineProgram.java:236)
at org.broadinstitute.sting.commandline.CommandLineProgram.start(CommandLineProgram.java:146)
at org.broadinstitute.sting.gatk.CommandLineGATK.main(CommandLineGATK.java:93)
Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(TimSort.java:747)
at java.util.TimSort.mergeAt(TimSort.java:483)
at java.util.TimSort.mergeCollapse(TimSort.java:410)
at java.util.TimSort.sort(TimSort.java:214)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at java.util.Collections.sort(Collections.java:217)
at org.broadinstitute.cga.tools.gatk.walkers.cancer.mutect.MuTect.map(MuTect.java:480)
... 14 more

Monday, October 30, 2017

CLion with Bazel - "Unknown Error" when trying to run the debugger on Ubuntu

I wasted one hour to figure this out, as I'll add another 5 mins to write this up.

If you want to run the debugger on some binary in CLion with Bazel, and just press the Debug button, nothing will happen and a small "Unknown error" toast window will appear at the bottom of your screen. The logs will show a NullPointerException:

java.lang.NullPointerException
        at com.jetbrains.cidr.execution.testing.CidrLauncher.startDebugProcess(CidrLauncher.java:33)
        at com.jetbrains.cidr.execution.CidrCommandLineState.startDebugProcess(CidrCommandLineState.java:30)
        at com.jetbrains.cidr.execution.CidrRunner$1.start(CidrRunner.java:58)
        at com.intellij.xdebugger.impl.XDebuggerManagerImpl.a(XDebuggerManagerImpl.java:217)

To fix this, click on Edit Configurations... and add another before launch task by pressing the green plus button, and select Bazel before-run task from the list. That's it. Happy debugging.

Friday, October 27, 2017

Clion with Bazel

If you're trying to make CLion work with Bazel and are wondering why it doesn't work, note that the latest Clion version usually doesn't usually work with the Bazel plugin.

This page describes which CLion version each Bazel plugin works with:

https://plugins.jetbrains.com/plugin/8609-bazel

In order to figure out the build number of your CLion installation, go to Help->About.

Sunday, July 17, 2011

Nice road bike tour: Zurich to Germany and back

Total distance: 62km
Roads: mostly car-free roads, a few sections on roads with bike lanes, one short section on roads with heavy traffic.
Elevation: mostly flat, a few mild hills
Way there: Zurich Oerlikon - Seebach - Ruemlang - Oberglatt - Buelach - Windlach - Eglisau - Hohentengen a.h. (DE)
Way back: Keiserstuhl - Weiach - Windlach - Stadel - Neerach - Niederglattt - Oberglatt - Ruemlang - Seebach - Zurich Oerlikon





Tour description

Oerlikon to Ruemlang

The tour starts in Zurich Oerlikon. Exit the train station towards track 6 (north side), and take Therese-Giesestrasse. After 150m you will reach a light, with a big Coop on your left and the Dance Academy on your right and a bike indicator on the stoplight. Follow the bike indicators towards Ruemlang until you reach the train tracks, and they suddenly disappear. After crossing the train track, turn left and at the roundabout turn right. On Birchstrasse make sure you turn left on Ruemlangstrasse and keep going north towards Ruemlang.

Ruemlang to Eglisau

In Ruemlang cross under the train tracks at the train station and continue north to Oberglatt. Follow the bike signs to Buelach and continue riding along a beautiful path that follows the Glatt river. If, like me, you miss the turn right to Buelach, continue along this beautiful path until it turns into gravel (close to Niederglatt) and then turn right on Forrbuckstrasse and ride up the hill. Stay on this street until you hit the train tracks and make sure you stay on the right side of the train tracks to avoid roads with traffic in Buelach. Keep going North-East until you hit Schaffhauserstrasse and then make sure you turn right on Unterweg. Follow the bike indicators until Eglisau.

Eglisau - Hohentengen a. H. (DE) - Keiserstuhl

Cross the Rhine on Schaffhauserstr. (take a picture, it's really pretty) and after the bridge make a right on Obergasse followed by a left on Steig to avoid the crowded Schaffhauserstrasse. Climb up until you can make a left turn to Huentwangerstrasse and follow the bike signs to Hohentengen a. H. Take pictures as you cross the border before and after Hohentengen a. H. so that you can show off to your friends.

Keiserstuhl to Oerlikon

From Keiserstuhl cross the train tracks, turn left on Bahnhofstr. and then merge into the unpleasant Hauptstrasse until the first main intersection, where you can turn right and follow the bike signs to Windlach/Stadel and then to Neerach/Niderglatt. Before Niederglatt (unlike me), turn left on Grafschaftstrasse, and then cross the river and the train tracks and merge back into Forrbuckstrasse and follow the way you came back to Oerlikon.

Friday, March 18, 2011

Zermatt, slope-by-slope description





Sunegga/Rothorn

Note: if don't like moguls, just go to the Gornergrat, Matterhorn/Schwarzsee or the Cervinia areas instead.

Slope no. 2

is an alternative way to get back into the village. It will eventually merge with  Slope no. 1 and continue down through the forrest as narrow and windy (and slushy late in the season) Slope no.
3. Slope no. 2 starts out nicely as fairly wide and not very steep; after a few hundred meters there's a stretch that beginners might find difficult, as it's not very wide, quite bumpy and a bit steep. After the difficult part is over, the slope turns into a narrow windy road through the forrest, very easy to tackle even by beginners, though passing slow skiers is going to be difficult because there's simply not much space.

Slope no. 3

is the last stretch that leads into the village of Zermatt. Even though it appears dotted on the map, it is most likely skiable even very late in the season, though the snow is going to be slushy. The slope is basically a narrow and gentle path through the forest, easy to tackle by everybody, though you might get annoyed at the slow skiers ahead of you, there's really no place to pass them. On the way down you will pass a few apres-ski bars, that could be a good choice if you wish to avoid the inevitable traffic jam (10 mins wait) at the elevators that take you down to the base of the Sunegga train.

Slope no. 7

is right off the funny A2 chairlift/gondola contraption, and a good warmup for beginners and intermediates to start the day. Don't be fooled by the fact that it is marked as Blue and Slow Skiing, it really is not much different from the red slopes in the area. Even intermediate skiers will find parts of the slope moderately challenging, but the fact that it is really wide and it alternates steep parts with gentle parts make it totally fine for beginners, too. Not recommended for total beginners.

Slope no. 8

is marked as blue on the map, but was marked as black on the signs, and the path marking poles were also black. This is strange, because the slope really is just red. It is definitely more difficult than 7, but it is by no means black. When we skied it late in March, the slope was really nice in the first half, but the 2nd half was basically scraped down by skiers to pure ice. Combine that with moderately large bumps, and it does result in a pretty unpleasant experience. Should be much better earlier in the season.

Slope no. 9

is a fairly easy red. It starts out as moderately wide, small bumps, not very steep, and continues this way until it reaches the forest, where it turns into a gentle windy path to the Patrullarve chairlift. From here you can either go back up to Blauherd, or wind down into the Zermatt village on slopes 1 or 2. There's also a restaurant in the middle of the slope where you can stop by for lunch or a quick snack. It is quite similar to no. 7 in difficulty.

Slope no. 11

connects Rothorn to Blauherd. Don't be discouraged by the fact that you need to take a cable car to reach it: the cable care is huge and very fast. Advanced intermediates will love this slope. It has steeper parts, it has moderate bumps to wind through and the snow is quite good late in the season. Intermediates and beginner intermediates might find it challenging to tackle a few short steeper and bumpy sections.

Slope no. 12

is mostly deserted, and this is just because nearby 13 and 14 are much better. It starts out moderately narrow, but fairly steep and bumpy, something only advanced skiers (and masochists) will enjoy. After 200 meters it turns into a boring blue, that could only make a beginner happy, and then it turns into a moderately bumpy (and icy late in the season) red. If you're a beginner, just take 14, if you are advanced intermediate, you are more likely to enjoy 13.

Slope no. 13

is ideal for advanced intermediates. It is marked as  black because of a short narrowish and quite steep stretch in the very middle of the slope, but that is actually the easiest part, as it's flat (as in not bumpy), so if you're good at slalom, you'll have no problems making quick turns down through it. The first and last part are just typical reds, with moderately sized bumps that you'll need to wind through.

Slope no. 14

is a pleasant advanced blue. The grade is not very steep, but the bumpy snow keeps it challenging and offers good practice for improving technique without getting too fast.

Slope no. 19

is marked as red but it approaches black-level difficulty in some stretches, especially in the sections approaching the Fluhalp restaurant and the end of the run near Gant. The difficulty arises from extremely bumpy snow creating irregular moguls, combined with steep grades. Many intermediate-level skiers were stopped along the difficult parts taking breaks and pumping themselves up to go the next couple hundred meters. Advanced-intermediates, however, may enjoy the slope's length and variety. Another thing to know about 19 is that until slope no. 21 opens from Gant to Findeln, there's no way to ski out from Gant (the endpoint of 19), and large crowds form to queue up at the lifts out -- the gondola to Blauherd and the cable car to Hohtälli.

Gornergrat

Slope no. 28

is a long, flat (not bumpy). Easiest to access via the high-capacity fast cable car from Gant. The slope starts off as quite narrow, but not very steep; beginners can snowplow through this part, while better skiers can just use quick, short turns. After the split from slope 44, it becomes a wide, flat, pleasant red and it continues this way until it turns into slope 26, which is mostly a boring winding road to Gant. The entire slope has a vertical drop of 1000 meters, so it's well worth the effort to take your skis off and take the cable car up to try this one.

Slope no. 29

is another flat (not bumpy), wide red slope. Even tentative intermediates will find this slope manageable. It eventually joins 28 for a pleasant ride down to Gant. If you plan to reach Riffelalp, make sure 27 is open - it was closed when I tried it.

Slope no. 35

is a bit tricky to find, as it doesn't show on the big signpost right off the M chairlift, and it doesn't show up at all on signs off the Gornergrat train. Just turn left as you get off the M chairlift, and you'll see the small sign for 35. If you took the Gornergrat train, follow the signs for 29, but make sure you turn left at the first fork a few hundred meters down.
The slope itself starts off as a nice red, followed by 200 meters of flat narrower road. At the end of the flat part, keep right (no signs, again!), or else you'll end up on the blue 36. The rest of 35 alternates between moderately steep, wide, bump-less parts with flat parts, so it should pose no problems even for tentative intermediate skiers.

Slopes no. 36,37,38

are all fairly easy blues. 36 is the widest (and the most crowded), while 37 is slightly narrower, but still within the means of a beginner.

Slope no. 39

Takes you down to Riffelalp and then down to the village. It starts off as a moderately narrow gentle slope, and when you start asking yourself 'why isn't this marked as blue?' it turns into a slightly steeper, but wider red. You can expect moderate bumps and at the end of the season the snow will be wet, icy, or a combination of both.

Slope no. 41,42

are a continuation of 39 down to Furi. They have moderately-sized bumps (bumps get larger when weather is bad and the other slopes are closed), and alternate narrow, flat and gentle parts with steeper, bumpy and wider ones. When the bumps grows large towards the end of the day, the slope will have challenging parts even for good skiers. Snow will be slushy late in the season. I (advanced intermediate) found the slope and the bumps manageable, my wife (tentative intermediate) did not enjoy it at all.
Warning: in order to get back to Zermatt, you will need to take the gondola from the bottom of 42 up to Furi. The gondola closes at 4pm, so if you miss it, you will have to walk ~15 mins up to Furi with the skis on your back.

Slope no. 44

is unpleasant. Not because it's hard - it isn't. It starts off the same as 28, as narrow and moderately steep (snowplow for beginners, quick short turns for intermediates), and then it continues as a slightly wider, but still quite narrow slope until the very bottom. It's so flat at the end that all you have to do is stand and go straight down. You'll even have to work your arms a little on some of the flat parts - when we tried it we were slowed down by wind and fresh snow, and had to push oursleves down the slope with our poles in 3 places.


Matterhorn/Schwarzsee

Slope no. 50

is the only way down from to Zermatt both from the Gornegrat and the Matterhorn skiing areas, and hence very crowded late in the day. It is narrow in places, bumpy and icy with 1 or 2 short steeper parts, a guaranteed dislike for beginners.

Slope no. 57

is a really great red. It is almost perfectly flat (not bumpy) but it does have a few steep enough parts to allow you to improve your technique. Since it's sort of out of the way, it is much emptier than the other slopes (my wife and I were the only skiers on it when we tried it). It is also very easy to miss: make sure you turn left right after 61 starts; there is absolutely no indicator to mark the fork.

Slope no. 61

is a very short, nice red. It connects a short section from Schrwarzsee to Furgg, and the only reason you might end up on it is because you wanted to try 57 and, like me, you missed the left turn. Note that unlike the other slopes, it goes from bottom to top on the map.

Slope no. 62

is a moderately difficult black. The slope is fairly narrow in some stretches, and being one out of 2 options to get back to Zermatt it tends to get quite crowded, which means it is most likely icy too, as hordes of skiers will have scraped the snow off of it. It is not terribly difficult, and most of it has no bumps, but you need to watch out for the lost beginners slowly criss-crossing the slope.

Slopes no. 63,64,65,66,67

are nice reds, steep in some short stretches, with small bumps and, except for a few short stretches, quite wide. 63 is a bit narrower and sometimes icy, but not as steep as 67.

Slope no. 69/71

is narrow, and, except for a short very steep, narrow, bumpy and icy stretch that all beginners and tentative intermediates are guaranteed to hate, not too steep or bumpy. If you've mastered rapid, shallow turns, you'll love it. It is slightly secluded from the rest of the slopes, and the scenery is stunning. You won't get closer to the Matterhorn on any other slope. You will also need to do a bit of poling at the end of a long flat part.
If you prefer wide, flat slopes, just turn right at the bifurcation and take 70 instead.

Slope no. 70

is my favorite red in the whole area. It is long, wide, almost free of bumps, and alternates steeper and gentler parts. The snow is great even late in the season.
If you want to connect with 52, 57 or 61, you actually need to take the gondola up for a brief stretch (from Furgg to Schwarzsee) - don't let the map fool you (I did).

Slope no. 72

is a pleasant, fairly easy, wide red. The left side is perhaps a bit steeper than the right side. It is almost perfectly flat and even though crowded, it is so wide that it's almost impossible to collide with another person. Off-piste fans will enjoy taking a ride on the left side of the slope, though wake up early if you want to find some fresh powder - it's quite popular.

Slope no. 73

Is a really easy blue, basically an ultra long bunny slope. It is perfectly flat and has long stretches where it's too flat to even require a turn.

Slope no. 80

Is a very easy red, could just as well have been marked as blue. Take this slope if you want to cross to Plan Maison on the Italian side and turn left at the bifurcation.

Slopes no. 83, 84 and 85

are nice, flat, wide reds. 85 has a short narrower part at the top, but apart from that, they should pose no problems even to tentative intermediates.
Note that you may need to wait in line 10 to 50 minutes when taking the O3 cable-car up - and if you only care about skiing, I think it's not worth it. The 70s slopes are at least as good. The view at the top is fantastic though, and might be worth the wait.

Slope no. 86

was closed when we were there (I suspect it may only be opened in the summer), but it looks like a total beginner blue. The incline is so gentle that you may need a second to figure out which way is up and which way down.

Slope no. 87

Totally flat, not really a slope. Only useful to transition from the X2 t-bar to the X3-5 t-bars.


Cervinia

If you enjoy wide, mogul-free slopes, you will love this place.
Warning: if you are staying in Zermatt, start heading back before 3pm, otherwise you risk being stuck in Italy. It's a 3.5h ride from Cervinia to Zermatt (~400EUR for a taxi), so it pays off to be extra-careful.

Slopes no. 3, 3 bis and 11

These are a continuation of 29 down to Breuil-Cervinia. Just like 29, they are nice, easy red slopes. 3 bis takes you down to the gondola for Plan Maison, while 3 ends at the chairlift for Plan Torette.


Slope no. 6

Nice, wide, mostly mogul-free red. Not as challenging as no. 7, but still a fairly pleasant ride. The only issue is that in order to go back up from Plan Maison you need to take 3 different chairlifts, and that's fairly slow.

Slope no. 7

Possibly the best intermediate slope in the whole region. Really wide, no moguls, a few fairly steep parts at the beginning, a guaranteed joy for advanced intermediates and a nice challenge for intermediates or lower intermediates. You can stop in the middle and go up with the huge, super-fast 140 person cable-car F  (it's more likely to wait for the cable car to fill up than to wait in line) or you can ski down to Cervinia on 7.0 and 33  which are also great.


Slopes no. 24, 29

Excellent red slopes, wide and flat (no bumps), not very steep. 24 has an optional black detour (steep, but wide and no bumps), marked as 24 bis. Even though the signs on the chairlift that takes you to the slopes claim it opens the bubble automatically, you actually do need to nudge the bubble up upon arrival.

Slopes no. 35-38

Are also wide, mogul-free reds. 37 has one pretty steep section, similar to no. 7. Unfortunately they are served by an ancient, primitive, slow chairlift (Z).

Restaurants

Self-service restaurant at Sunegga. Moderate variety (3 pastas, 4 soups, Rösti (hash browns) with egg or bacon, assorted sausage-type things, and a decent salad bar.

Self-service restaurant at Trockener Steg. Same as Sunegge: moderate variety, but food is fairly tasty. About 30CHF/person for a big lunch.

Cervinia

Restaurant at the bottom of cable car F: avoid. Run-down and doesn't even have a toilet.

Restaurant at the bottom of chairlift P: small, crowded and loud, but at least it has restrooms.

Bar & Paninoteca in Plan Maison: they serve a large variety of pastas, but don't be fooled. They simply microwave pre-packaged pastas, and serve it in the plastic container, with plastic cutlery. If you're not into airplane food, avoid.

Disclaimer

My wife and I are respectively beginner-intermediate and advanced-intermediate skiers. Depending on your level, you may disagree with some of our assessments. Feel free to leave comments about slopes/restaurants we haven't described here, and we'll include them in the blog.